Mainframe Connector API リファレンス

次の表に、Mainframe Connector で使用できる BigQuery、Cloud Storage、その他の Google Cloud コマンドを示します。

プロダクト コマンド 説明 リモートコード変換をサポート
BigQuery コマンド bq export このコマンドを使用して、バイナリ ファイルを作成します。このコマンドは、COPYCOPY DD を入力として受け取ります。

注: bq export コマンドは、大きな Bigtable テーブルのエクスポート リクエストに失敗します。エラーを回避するには、大きなテーブルをエクスポートするときに bq export コマンドに -allowLargeResults フラグを追加します。
bq load このコマンドを使用して、テーブルにデータを読み込みます。詳細については、bq load をご覧ください。 ×
bq mk このコマンドを使用して、パーティショニングとクラスタリングの設定が必要な BigQuery リソース(組み込みテーブルや外部テーブルなど)を作成します。詳細については、bq mk をご覧ください。 ×
bq query このコマンドを使用して、指定した SQL クエリを実行するクエリジョブを作成します。

選択したクエリの結果を表示するレポートを生成するには、--follow=true フラグを使用します。このレポートをメインフレーム内のファイルに書き込むには、監査ログレポートを含むファイルを指す DD ステートメント AUDITL を定義します。通常のロギング動作が必要な場合は、--follow フラグを使用しないでください。

クエリ結果によっては、多数の行、場合によっては数百万の行が返されることがあります。 出力が人が読めるようにするために、表示される行数には上限があります。表示される行数を制御するには、--report_row_limit フラグを使用します。たとえば、結果を 10 行に制限するには、--report_row_limit 10 を使用します。デフォルトでは、表示される行数は 30 行に制限されています。

詳細については、bq query をご覧ください。
bq rm このコマンドを使用して、BigQuery リソースを完全に削除します。このコマンドはリソースを完全に削除するため、慎重に使用することをおすすめします。詳細については、bq rm をご覧ください。 ×
Cloud Storage コマンド scp このコマンドを使用して、テキストまたはバイナリデータを Cloud Storage にコピーします。シンプルなバイナリコピー モードを使用すると、データ パイプラインの一部として変更せずに、IBM z/OS から Cloud Storage にデータセットをコピーできます。必要に応じて、文字エンコードを EBCDIC(拡張バイナリ コード)10 進数交換コード(EBCDIC)から ASCII UTF-8 に変換して、改行を追加できます。

このコマンドを使用して、ジョブ制御言語(JCL)で定義されたアプリケーション ソースコードをコピーすることもできます。
×
gsutil ユーティリティ gsutil cp このコマンドを使用して、データセットをコード変換し、Optimized Row Columnar(ORC)ファイル形式で Cloud Storage に書き込みます。このコマンドは、INFILE データセットからデータを読み取り、COPYCOPY DD からレコード レイアウトを読み取ります。 このコマンドは、Cloud Storage API に対して構成可能な数の並列接続を開き、COBOL データセットをカラム型および GZIP 圧縮 ORC ファイル形式にコード変換します。約 35% の圧縮率が想定されます。

必要に応じて、このコマンドを使用して、メインフレーム上の VM 上で実行されている Mainframe Connector の gRPC サービスを操作できます。これを行うには、SRVHOST および SRVPORT 環境変数を設定するか、コマンドライン オプションを使用してホスト名とポート番号を指定します。gRPC サービスを使用すると、入力データセットが最初に Mainframe Connector によって Cloud Storage にコピーされた後、リモート プロシージャ(RPC)呼び出しが行われ、gRPC サービスにファイルをコード変換するよう指示します。

gsutil cp コマンドでは、一部のパフォーマンス調整機能もサポートされています。詳細については、gsutil cp コマンドのパフォーマンス改善をご覧ください。
gsutil rm このコマンドを使用して、バケットまたはバケット内のオブジェクトを削除します。詳細については、rm - オブジェクトの削除をご覧ください。 ×
gszutil ユーティリティ gszutil gszutil ユーティリティは IBM JZOS Java SDK を使用して実行され、JCL を使用した gsutil と BigQuery コマンドラインの呼び出しを受け入れるシェル エミュレータを提供します。

gszutil ユーティリティは、COPYBOOK DD の形式でスキーマを受け入れることで、gsutil ユーティリティの機能を拡張します。これを使用して、Cloud Storage にアップロードする前に、COBOL データセットを直接 ORC にコード変換します。gszutil ユーティリティでは、JCL を使用して BigQuery の queryload を実行することもできます。

gszutil ユーティリティは gRPC サーバーで動作し、100 万命令/秒(MIPS)の消費量を削減できます。本番環境で gszutil ユーティリティを使用して、Cloud Storage のバイナリ ファイルを ORC 形式に変換することをおすすめします。
×
その他のコマンド gcloud pubsub topics send このコマンドを使用して、Pub/Sub トピックにメッセージを送信します。コマンドラインまたはデータセットを使用してメッセージを提供できます。 ×
gcloud dataflow flex-template run このコマンドを使用して、Dataflow Flex テンプレートの実行をトリガーします。このコマンドは、指定された Flex テンプレート パスからジョブを実行します。詳細については、gcloud dataflow flex-template run をご覧ください。 ×
curl このコマンドを使用して、ウェブサービスまたは REST API に対して HTTP リクエストを行います。 ×

gsutil cp コマンドのパフォーマンス調整の構成

Mainframe Connector は、gsutil cp コマンドに対して次のパフォーマンス調整の構成をサポートしています。

  • --parallelism フラグを使用してスレッド数を設定します。デフォルト値は 1(シングル スレッド)です。
  • --maxChunkSize 引数を使用して各チャンクの最大サイズを設定します。各チャンクには独自の Optimized Row Columnar(ORC)ファイルがあります。 この値を大きくすると、コード変換プロセス中に作成されるチャンクの数を減らすことができますが、その代わりにメモリ要件が増大します。詳細については、maxChunkSize 引数を解析するをご覧ください。 デフォルト値は 128 MiB です。
  • --preload_chunk_count 引数を使用して、すべてのワーカーがビジー状態の間にメモリにプリロードするデータの量を設定します。この引数を使用すると、メモリを犠牲にしてパフォーマンスを向上できます。デフォルト値は 2 です。

実行例

gsutil cp \
  --replace \
  --parser_type=copybook \
  --parallelism=8 \
  --maxChunkSize=256MiB \
  gs://$BUCKET/test.orc

この例では、大きなファイルを想定しているため、ラインレートに到達する 8 つのスレッドを使用しています。十分なメモリがある場合は、チャンクサイズを 256 MiB または 512 MiB に増やすことをおすすめします。これにより、オーバーヘッドの作成と Cloud Storage オブジェクトのファイナライズが可能になります。少ないスレッド数と小さいチャンクを使用する小さいファイルのほうが、良い結果が得られる可能性があります。

maxChunkSize 引数を解析する

maxChunkSize フラグには、量と測定単位の形式の値(5 MiB など)を指定できます。量と大きさの間に空白文字を使用できます。

値は次の形式で指定できます。

  • Java 形式: b/k/m/g/t(バイト、kibibyte、mebibyte、gibibyte、tebibyte 用)
  • 国際形式: KiB/MiB/GiB/TiB(kibibyte, mebibyte, gibibyte、tebibyte 用)
  • 指標形式: b/kb/mb/gb/tb(kilobyte、megabyte、gigabyte、terabyte 用)

データサイズの解析では、大文字と小文字は区別されません。部分的な量を指定することはできません。たとえば、0.7 MiB ではなく 716 KiB を使用します。