メインフレームから Pub/Sub にメッセージをパブリッシュする

Mainframe Connector を使用すると、メインフレームから Pub/Sub にメッセージをパブリッシュできます。この機能を使用すると、メインフレームを BigQuery または Cloud Storage と統合したり、Dataflow でメッセージデータを拡張したり、Cloud Run 関数をトリガーしたりできます。

始める前に

Pub/Sub トピックにメッセージをパブリッシュする

メインフレームから非構造化の Pub/Sub メッセージをパブリッシュするには、次のように pubsub topics publish コマンドを使用します。

//STEP01 EXEC BQSH
//STDIN DD *
pubsub topics publish TOPIC --data="Hello,World"
/*

TOPIC は、Pub/Sub トピックの名前に置き換えます。必要な形式は projects/{project}/topics/{topic} です。

Pub/Sub トピックにメッセージをパブリッシュする

Mainframe Connector を使用すると、メインフレームから Pub/Sub トピックに構造化されたメッセージをパブリッシュできます。たとえば、この機能を使用して、Pub/Sub を使用してキューされた順次アクセス方法(QSAM)レコードをメインフレームから BigQuery に転送できます。このアプローチを使用するメリットは次のとおりです。

  • Dataflow または Pub/Sub の同時マルチスレッド処理(SMT)を使用して、AI でデータを変換または拡張できます。
  • レコードをメインフレームから Cloud Storage に移動できます。
  • 変更データ キャプチャ(CDC)と同様に、メインフレーム アプリケーションの更新をクラウドベースのシステムと同期できます。

メインフレームから Pub/Sub トピックに構造化メッセージをパブリッシュする手順は次のとおりです。

  1. メッセージをパブリッシュする Pub/Sub トピックを作成します。必要に応じて、スキーマを使用してトピックを作成して、制限を追加できます。詳細については、トピックを作成するまたはトピックの作成時にスキーマを作成して関連付けるをご覧ください。
  2. トランスコードに失敗したレコードに関する情報をキャプチャする Pub/Sub トピックを作成します。このトピックはスピルオーバー トピックと呼ばれます。Pub/Sub トピックの作成については、トピックを作成するをご覧ください。
  3. (省略可)Pub/Sub に送信する前にレコードを JSON に変換するには、JSON 構成ファイルを構成します。構成ファイルを指定しない場合、デフォルトの JSON 構成が使用されます。
  4. (省略可)デフォルトでは、Pub/Sub メッセージには順序指定キーと属性が含まれません。スピルオーバー メッセージは、_spillover 接尾辞のスピルオーバー トピックに送信されます。デフォルトを変更するには、Pub/Sub パブリッシュ構成ファイルを構成します。たとえば、次のような構成を使用できます。

    {
      "spillover-configuration": {
        "name": SPILLOVER_TOPIC_NAME
      }
    }
    

    SPILLOVER_TOPIC_NAME は、手順 2 で作成したスピルオーバー トピックの名前に置き換えます。必要な形式は projects/{project}/topics/{topic} です。適切にデコードされていないメッセージに関する情報は、このスピルオーバー トピックに保存されます。

  5. qsam decode コマンドを使用してメインフレーム レコードを Pub/Sub にパブリッシュするには、次の JCL を実行します。

    //STEP01 EXEC BQSH
    //STDIN DD *
    qsam decode INPUT OUTPUT \
     --copybook COPYBOOK
     --transcode-configuration TRANSCODE-CONFIG
         --output-format=JSONL
         --input-parameter=json-dialect=JSON_CONFIGURATION
         --input-parameter=pubsub-publish-configuration=PUBSUB_CONFIGURATION
    /*
    

    次のように置き換えます。