Mainframe Connector を使用すると、メインフレームから Pub/Sub にメッセージをパブリッシュできます。この機能を使用すると、メインフレームを BigQuery または Cloud Storage と統合したり、Dataflow でメッセージデータを拡張したり、Cloud Run 関数をトリガーしたりできます。
始める前に
- まだインストールしていない場合は、Mainframe Connector をメインフレームにインストールします。
- Pub/Sub コマンドを実行するには、ユーザー アカウントに Pub/Sub パブリッシャーのロールが割り当てられていることを確認します。ユーザー アカウントにロールを割り当てる方法については、IAM を使用したアクセス管理をご覧ください。
- アプリケーションのデフォルト認証情報を設定します。
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 トピックに構造化メッセージをパブリッシュする手順は次のとおりです。
- メッセージをパブリッシュする Pub/Sub トピックを作成します。必要に応じて、スキーマを使用してトピックを作成して、制限を追加できます。詳細については、トピックを作成するまたはトピックの作成時にスキーマを作成して関連付けるをご覧ください。
- トランスコードに失敗したレコードに関する情報をキャプチャする Pub/Sub トピックを作成します。このトピックはスピルオーバー トピックと呼ばれます。Pub/Sub トピックの作成については、トピックを作成するをご覧ください。
- (省略可)Pub/Sub に送信する前にレコードを JSON に変換するには、JSON 構成ファイルを構成します。構成ファイルを指定しない場合、デフォルトの JSON 構成が使用されます。
(省略可)デフォルトでは、Pub/Sub メッセージには順序指定キーと属性が含まれません。スピルオーバー メッセージは、
_spillover
接尾辞のスピルオーバー トピックに送信されます。デフォルトを変更するには、Pub/Sub パブリッシュ構成ファイルを構成します。たとえば、次のような構成を使用できます。{ "spillover-configuration": { "name": SPILLOVER_TOPIC_NAME } }
SPILLOVER_TOPIC_NAME
は、手順 2 で作成したスピルオーバー トピックの名前に置き換えます。必要な形式はprojects/{project}/topics/{topic}
です。適切にデコードされていないメッセージに関する情報は、このスピルオーバー トピックに保存されます。qsam decode
コマンドを使用してメインフレーム レコードを Pub/Sub にパブリッシュするには、次の JCL を実行します。//STEP01 EXEC BQSH //STDIN DD * qsam decode
INPUT
OUTPUT
\ --copybookCOPYBOOK
--transcode-configurationTRANSCODE-CONFIG
--output-format=JSONL --input-parameter=json-dialect=JSON_CONFIGURATION
--input-parameter=pubsub-publish-configuration=PUBSUB_CONFIGURATION
/*次のように置き換えます。
INPUT
: QSAM ファイルのデータパス。OUTPUT
: 手順 1 で作成した Pub/Sub トピックのデータパス。必要な形式はpubsub:projects/{project}/topics/{topic}
です。TRANSCODE-CONFIG
: トランスコーディング構成を含むファイルのデータパス。トランスコーダの構成形式の詳細については、トランスコーダの構成をご覧ください。JSON_CONFIGURATION
: (省略可)JSON 構成ファイルのデータパス。構成ファイルを指定しない場合、デフォルトの JSON 構成が使用されます。PUBSUB_CONFIGURATION
: (省略可)Pub/Sub パブリッシュ構成ファイルのデータパス。構成ファイルを指定しない場合、デフォルトの Pub/Sub 構成が使用されます。