使用 Google Antigravity 转码和迁移数据

本页介绍了如何使用 Mainframe Connector 中的智能体功能自动转码和迁移大型机数据。

智能体集成的主要优势

Mainframe Connector 支持可用于数据现代化的代理界面。您可以将代理与 Mainframe Connector 搭配使用,以实现 Cloud Storage 和本地现有大型主机数据的现代化。 您还可以使用 Google Antigravity 等代理环境来创建转码和迁移大型主机数据所需的 Mainframe Connector 配置。

自动执行转码和数据迁移

由于旧版 COBOL 结构(例如 REDEFINESCOMP-3PIC X)与现代云数据库(例如 BigQuery)之间存在不匹配,因此手动编写转码配置容易出错且复杂。这种复杂性通常会导致数据类型映射、字节对齐和压缩十进制转换出现错误。

为了简化此流程,Mainframe Connector 支持代理功能,这是一套专门为 LLM 赋能的代理(例如 Google Antigravity)设计的工具(API 和 CLI 端点)和专用技能文件。此集成可让智能体自主起草、严格验证、自我更正和测试转码配置文件。然后,该代理可以使用生成的配置将现有数据从 Cloud Storage 或本地存储空间迁移到 BigQuery 或其他数据库。

在 Mainframe Connector 中使用代理功能具有以下优势:

  • 自动起草:Google Antigravity 可以根据 COBOL copybook 和用户定义的业务规则生成初始配置。
  • 快速反馈环:借助内置的验证工具,代理可以在处理数据之前快速测试配置并自行更正错误。
  • 字节级检查:代理可以检查原始二进制数据,以诊断对齐和编码问题。
  • 确定性测试:轻量级单线程命令可为代理的推理过程提供可靠的测试环境。

准备工作

  • 如需使用智能体功能,您必须安装最新版本的 Mainframe Connector。智能体功能从 5.20 版开始提供。
  • 如需运行代理技能,您必须在安装了 Mainframe Connector 的同一台机器上安装代理 CLI 或环境(例如 Google Antigravity)。
  • 使用以下命令将代理技能文件提取到环境的技能文件夹中:

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

代理集成的工作方式

Mainframe Connector 技能文件包含所有必要信息,可让代理创建、验证和测试转码配置大型机 copybook 和数据文件。 它抽象化了底层 Mainframe Connector CLI 命令,并为代理提供了一个简化的界面来与产品互动。

当您使用技能文件提示代理时,您允许代理运行经过 AI 优化的 Mainframe Connector 命令。如果您提供 copybook 和示例数据,代理可以创建转码配置文件并根据实际数据对其进行验证。在提示中,请务必向智能体提供转码所需的背景信息和特殊规则。

智能体工作流

代理工作流包含五个阶段,可让代理从初始用户请求逐步发展为经过验证的有效配置。 在用户提示后,代理可以自主完成以下步骤。

阶段 说明
启动 用户提示代理创建转码配置文件。 用户可以选择性地提供 COBOL copybook、自定义业务规则(例如“舍弃所有 FILLER 字段”)和可选的 EBCDIC 示例数据。
起草 代理会读取 configuration-doc 参考信息以了解格式设置规则,然后生成草稿配置文件。
验证 代理通过运行 validate-configuration 来验证草稿的语法和结构,更正错误,并验证结构蓝图。
测试 如果提供了样本数据,代理会通过运行 simple-encodesimple-decode 来测试配置,并使用 inspect-data 验证输出是否符合预期。
完成 代理使用 generate-target-ddl 生成目标 DDL,并向用户显示工作配置和 DDL。

使用场景

以下示例说明了如何使用智能体功能来转码和迁移数据。

示例 1:使用 copybook 为 BigQuery 生成数据架构

以下示例提示展示了如何使用智能体功能对来自大型机 copybook 的数据进行转码,并生成 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,同时移除个人身份信息数据。

提示示例

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

从特定字节偏移量处开始读取单个逻辑记录,然后打印其十六进制转储和文本表示形式。

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

将大型机文件的几行解码到标准输出,以进行代理调试。

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
指定 copybook 的数据路径。
--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
指定 copybook 的数据路径。
--help-h
(可选)显示此帮助消息。
--input=INPUTPATH : DataPath
指定输入 JSON 数据路径。
--output=OUTPUTPATH : DataPath
指定输出二进制数据路径。
--transcode-configuration=CONFIGPATH : DataPath
指定转码配置的数据路径。如需详细了解转码器配置格式,请参阅转码器配置

agent validate-configuration

根据 copybook 和数据库规则验证转码器配置

Synopsis

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

标志和参数

agent validate-configuration 命令使用以下标志和参数:

--copybook=COPYBOOKPATH : DataPath
指定 copybook 的数据路径。
--database=DATABASE
指定目标数据库(例如 BIGQUERYPOSTGRESMYSQL)。
--help-h
(可选)显示此帮助消息。
--transcode-configuration=CONFIGPATH : DataPath
指定包含草稿转码配置的数据路径。如需详细了解转码器配置格式,请参阅转码器配置