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
INPUTOUTPUT\ --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 構成が使用されます。