Google Antigravity を使用してデータをトランスコードして移行する

このページでは、Mainframe Connector のエージェント機能を使用して、メインフレーム データを自動的にトランスコードして移行する方法について説明します。

エージェント統合の主なメリット

Mainframe Connector は、データ モダナイゼーションに使用できるエージェント サーフェスをサポートしています。エージェントを Mainframe Connector と組み合わせて使用すると、Cloud Storage とローカルにある既存のメインフレーム データをモダナイズできます。 また、Google Antigravity などのエージェント環境を使用して、メインフレーム データのトランスコードと移行に必要な Mainframe Connector 構成を作成することもできます。

トランスコードとデータ移行を自動化する

トランスコード構成を手動で記述すると、従来の COBOL 構造(REDEFINESCOMP-3PIC X など)と最新のクラウド データベース(BigQuery など)の不一致により、エラーが発生しやすく、複雑になる可能性があります。 このような複雑さにより、データ型のマッピング、バイト アライメント、パック 10 進数の変換でエラーが発生することがよくあります。

このプロセスを簡素化するため、Mainframe Connector はエージェント 機能をサポートしています。これは、Google Antigravity などの LLM を搭載したエージェントで使用するように設計された、一連の専用ツール(API エンドポイントと CLI エンドポイント)と 専用のスキルファイルです。 この統合により、エージェントはトランスコード構成ファイルを自律的に作成、厳密に検証、自己修正、テストできます。 その後、エージェントは生成された構成を使用して、既存のデータを Cloud Storage またはローカル ストレージから BigQuery や他のデータベースに移行できます。

Mainframe Connector でエージェント機能を使用すると、次のようなメリットがあります。

  • 自動ドラフト: Google Antigravity は、COBOL コピーブックとユーザー定義のビジネスルールに基づいて初期構成を生成できます。
  • 迅速なフィードバック ループ: 組み込みの検証ツールを使用すると、エージェントはデータを処理する前に構成を迅速にテストし、エラーを自己修正できます。
  • バイトレベルの検査: エージェントは、未加工のバイナリ データを検査して、アライメントとエンコードの問題を診断できます。
  • 決定論的なテスト: 軽量でシングルスレッドのコマンドは、エージェントの推論プロセスに信頼性の高いテスト環境を提供します。

始める前に

  • エージェント機能を使用するには、最新バージョンの Mainframe Connector をインストールする必要があります。エージェント機能はバージョン 5.20 以降で利用できます。
  • エージェント スキルを実行するには、Mainframe Connector をインストールしたのと同じマシンに、Google Antigravity などのエージェント CLI または環境をインストールする必要があります。
  • 次のコマンドを使用して、エージェント スキルファイルを環境のスキルフォルダに抽出します。

    java -jar mainframe-connector.jar agent skill-file --output-dir SKILLS_FOLDER_PATH
    

エージェント統合の仕組み

Mainframe Connector スキルファイルには、エージェントがトランスコード構成のメインフレーム コピーブックとデータファイルを作成、検証、テストするために必要なすべての情報が含まれています。 基盤となる Mainframe Connector CLI コマンドを抽象化し、エージェントがプロダクトとやり取りするためのシンプルなインターフェースを提供します。

スキルファイルを使用してエージェントにプロンプトを表示すると、エージェントは Mainframe Connector コマンドの AI 最適化バージョンを実行できます。 コピーブックとサンプルデータを提供すると、エージェントはトランスコード構成ファイルを作成し、実際のデータに対して検証できます。 プロンプトでは、エージェントにコンテキストと、トランスコードに適用する特別なルールを指定してください。

エージェント ワークフロー

エージェント ワークフローは 5 つのフェーズで構成されており、エージェントは最初のユーザー リクエストから、検証済みの構成に移行できます。 ユーザーのプロンプトの後、エージェントは次の手順を自律的に完了できます。

フェーズ 説明
開始 ユーザーはエージェントにトランスコード構成ファイルの作成を促します。 必要に応じて、COBOL コピーブック、カスタム ビジネス ルール(「すべての FILLER フィールドを削除する」など)、EBCDIC サンプルデータを提供できます。
ドラフト エージェントは configuration-doc リファレンスを 読み取ってフォーマット ルールを理解し、ドラフト構成 ファイルを生成します。
検証 エージェントはドラフトの構文と構造を検証するために validate-configurationを実行し、エラーを修正して 構造ブループリントを確認します。
テスト サンプルデータが提供されている場合、エージェントは simple-encode または simple-decode を実行して構成をテストし、 inspect-data を使用して出力が期待どおりであることを確認します。
最終処理 エージェントはターゲット DDL を generate-target-ddl を使用して生成し、動作する 構成と DDL をユーザーに提示します。

ユースケース

次の例は、エージェント機能を使用してデータをトランスコードして移行する方法を示しています。

例 1: コピーブックを使用して BigQuery のデータスキーマを生成する

次のプロンプトの例は、エージェント機能を使用してメインフレーム コピーブックからデータをトランスコードし、BigQuery テーブルを生成する方法を示しています。

プロンプトの例

Your task is to produce a transcode configuration file and target DDL for a
mainframe dataset using the Mainframe Connector skill.

You are migrating a master file from a European subsidiary's mainframe into
BigQuery. Each record holds a customer name, a city, and a price.
The source is an EBCDIC extract from a German z/OS system; the system metadata
gives its CCSID as 1140.

The data is staged here in this directory:

- `copybook.cpy`: the COBOL layout.
- `input.dat`: the binary extract itself (CCSID 1140 - the German Euro-enabled
  EBCDIC code page).

Produce two artifacts here:

1. `config.json`: the transcode configuration that correctly decodes this file.
2. `schema.sql`: the BigQuery `CREATE TABLE` DDL for the destination.

例 2: トランスコード後に BigQuery にデータをアップロードする

次のプロンプトは、エージェント機能を使用して、前の例でトランスコードしたデータを BigQuery にアップロードする方法を示しています。

プロンプトの例

Using the Mainframe Connector skill and the config.json and schema.sql files
you created before, migrate the data to BigQuery at
`table_name.dataset_name.project_id`.

例 3: プライバシー管理を使用して PostgreSQL データベースにデプロイする

次のプロンプトは、エージェント機能を使用して、前の例でトランスコードしたデータを PostgreSQL にデプロイしながら、PII データを削除する方法を示しています。

プロンプトの例

Using the Mainframe Connector skill, migrate the data to Cloud SQL for
PostgreSQL at `table_name.schema_name.host_name`.

Compliance constraint: `CUST-NAME` and `CITY` are classified as
personally identifying or residency restricted information. They must NOT
appear in the PostgreSQL CSV staging file, must NOT decode into a JSM
string at any point, and must NOT appear in the Postgres table DDL.
Only `PRICE-TEXT` should appear.

Deliverables in the current working directory:

1. `config-postgres.json`: a NEW transcode configuration (do not overwrite
the BigQuery config.json).
2. `schema-postgres.sql`: the PostgreSQL `CREATE TABLE` DDL for the
   destination.
3. `copy-postgres.sql`: the PostgreSQL `COPY FROM` command to load the
   data into the table.

エージェント コマンド スイート

次のコマンドは、LLM エージェント用に設計されています。

agent configuration-doc

LLM エージェントの構成ドキュメントを stdout に出力します。

Synopsis

agent configuration-doc [-h]

フラグと引数

agent configuration-doc コマンドでは、次のフラグと引数を使用します。

--help または -h
(省略可)このヘルプ メッセージを表示します。

agent inspect-data

特定のバイトオフセットから始まる単一の論理レコードを読み取り、その 16 進ダンプとテキスト表現を出力します。

Synopsis

agent inspect-data [-h] [--byte-offset=BYTEOFFSET]
                          --input=INPUTPATH

フラグと引数

agent inspect-data コマンドでは、次のフラグと引数を使用します。

--byte-offset=BYTEOFFSET
(省略可)読み取りを開始するファイルの絶対バイトオフセットを指定します。デフォルト値は 0 です。
--help または -h
(省略可)このヘルプ メッセージを表示します。
--input=INPUTPATH : DataPath
入力データパスを指定します。

agent simple-decode

エージェントのデバッグ用に、メインフレーム ファイルの数行を stdout にデコードします。

Synopsis

agent simple-decode [-h] [--byte-offset=BYTEOFFSET]
                           --copybook=COPYBOOKPATH
                           --input=INPUTPATH
                           [--limit=LIMIT]
                           [--output=OUTPUTPATH]
                           --transcode-configuration=CONFIGPATH

フラグと引数

agent simple-decode コマンドでは、次のフラグと引数を使用します。

--byte-offset=BYTEOFFSET
(省略可)読み取りを開始する入力ファイルの絶対バイトオフセットを指定します。デフォルト値は 0 です。
--copybook=COPYBOOKPATH : DataPath
コピーブックのデータパスを指定します。
--help または -h
(省略可)このヘルプ メッセージを表示します。
--input=INPUTPATH : DataPath
入力データパスを指定します。
--limit=LIMIT
(省略可)デコードを試行するレコードの最大数を指定します。record_filter_condition によって削除されたレコードも、この上限にカウントされます。デフォルト値は 5 です。
--output=OUTPUTPATH : DataPath
(省略可)デコードされた JSON 出力の宛先を指定します。指定しない場合は、デフォルトで stdout になります。
--transcode-configuration=CONFIGPATH : DataPath
トランスコード構成のデータパスを指定します。トランスコーダ構成の形式の詳細については、トランスコーダ構成をご覧ください。

agent simple-encode

JSON ファイルをメインフレーム EBCDIC バイナリ データにエンコードします。

Synopsis

agent simple-encode [-h] --copybook=COPYBOOKPATH
                           --input=INPUTPATH
                           --output=OUTPUTPATH
                           --transcode-configuration=CONFIGPATH

フラグと引数

agent simple-encode コマンドでは、次のフラグと引数を使用します。

--copybook=COPYBOOKPATH : DataPath
コピーブックのデータパスを指定します。
--help または -h
(省略可)このヘルプ メッセージを表示します。
--input=INPUTPATH : DataPath
入力 JSON データパスを指定します。
--output=OUTPUTPATH : DataPath
出力バイナリ データパスを指定します。
--transcode-configuration=CONFIGPATH : DataPath
トランスコード構成のデータパスを指定します。トランスコーダ構成の形式の詳細については、トランスコーダ構成をご覧ください。

agent validate-configuration

コピーブックとデータベース ルールに対してトランスコーダ構成を検証します。

Synopsis

agent validate-configuration [-h] --copybook=COPYBOOKPATH
                                    --database=DATABASE
                                    --transcode-configuration=CONFIGPATH

フラグと引数

agent validate-configuration コマンドでは、次のフラグと引数を使用します。

--copybook=COPYBOOKPATH : DataPath
コピーブックのデータパスを指定します。
--database=DATABASE
ターゲット データベース(BIGQUERYPOSTGRESMYSQL など)を指定します。
--help または -h
(省略可)このヘルプ メッセージを表示します。
--transcode-configuration=CONFIGPATH : DataPath
トランスコード構成のドラフトを含むデータパスを指定します。トランスコーダ構成の形式の詳細については、トランスコーダ構成をご覧ください。