使用生成式 AI 转换数据库对象 - Amazon 数据库迁移服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用生成式 AI 转换数据库对象

带有生成式 AI 的 DMS 架构转换功能通过提供建议来帮助您转换以前未转换的代码对象(通常需要复杂的手动转换),从而简化了数据库迁移过程。此功能可用于 Oracle 到 PostgreSQL 以及 SQL Server 到 PostgreS PostgreSQL/Aurora QL/Aurora PostgreSQL 的转换。您可以转换整个数据库架构或单个数据库架构对象。

要使用生成式 AI 转换源数据库对象,请按照转换数据库对象中的步骤 1 到 6 进行操作,然后继续使用以下两种方法之一:

  • 方法 1:从 “操作” 菜单中选择 “转换”。在出现的转换对话框中,启用 “使用生成式 AI 转换架构” 选项,然后单击 “转换”。

  • 方法 2:点击右上角的 “使用生成式 AI 转换架构”。在转换对话框中,确保该选项已启用,然后单击 “转换”。

要随时在 DMS 架构转换控制台中手动调整此设置,请执行以下操作:

  • 导航到 “设置” 选项卡。

  • 转换设置部分,启用生成式 AI 选项以批准使用生成式 AI。

注意

支持的区域:

  • 美国东部(弗吉尼亚州北部)

  • 美国西部(俄勒冈州)

  • 欧洲地区(法兰克福)

支持的转换路径:

  • Oracle 到 Amazon RDS for PostgreSQL

  • 甲骨文到亚马逊 Aurora PostgreSQL

  • 微软 SQL Server 到亚马逊 RDS for PostgreSQL

  • 微软 SQL Server 到亚马逊 Aurora PostgreSQL

生成式 AI 转换的范围

生成式 AI 辅助架构转换侧重于具有指定操作项的特定 SQL 元素。所有其他 SQL 元素都使用基于规则的默认方法进行转换。生成式 AI 转换扩展范围内的 SQL 元素包括:

转换方向 行动项目 消息 语法元素
甲骨文转亚马逊 RDS for PostgreSQL,甲骨文改为亚马逊 Aurora PostgreSQL 5578 Amazon DMS 架构转换无法转换 SELECT 语句 除限制之外的所有情况
30415 您的 MERGE 语句在 WHERE 子句中包含基于目标表列中的值的筛选条件 除限制之外的所有情况
5591 Amazon DMS 架构转换无法转换系统对象 除限制之外的所有情况
5029 Amazon DMS 架构转换无法转换数据类型不支持的对象的用法 在函数和过程参数中使用不支持的 STANDARD.BFILE 数据类型的对象。
5031 Amazon DMS 架构转换无法转换 CURSOR 表达式 除限制之外的所有情况
5043 Amazon DMS 架构转换无法转换 SELECT 子句中带有星号的分层查询 除限制之外的所有情况
5073 PostgreSQL 不支持带有伪列的分层查询 除限制之外的所有情况
5102 PostgreSQL 不支持合并语句 除限制之外的所有情况
5585 Amazon DMS 架构转换无法将外部联接转换为相关的子查询 除限制之外的所有情况
5608 Amazon DMS 如果子查询在 SET 子句中返回多列,则架构转换无法转换 UPDATE 语句 除限制之外的所有情况
5619 Amazon DMS 架构转换无法转换系统对象 除限制之外的所有情况
5852 PostgreSQL 在 MERGE 语句中仅支持将表作为目标。 除限制之外的所有情况
5853 Amazon DMS 架构转换仅支持表、视图或子查询作为 MERGE 语句的 USING 子句中的源 除限制之外的所有情况
5855 您的 MERGE 语句在 WHERE 子句中包含基于目标表列中的值的筛选条件 除限制之外的所有情况
9996 出现内部转换器错误 除限制之外的所有情况
9993 由于引用了未解析的对象,无法转换语句 除限制之外的所有情况
5598 PostgreSQL 不支持 ROWID 除限制之外的所有情况
5340 Amazon DMS 架构转换无法转换函数 除限制之外的所有情况
5071 PostgreSQL 不支持子查询的 INSERT 语句 除限制之外的所有情况
5068 PostgreSQL 不支持子查询的 DELETE 语句 除限制之外的所有情况
5065 PostgreSQL 不支持子查询的 UPDATE 语句 除限制之外的所有情况
5586 Amazon DMS 架构转换无法使用 NOCYCLE 子句转换查询 除限制之外的所有情况
5351 Amazon DMS 架构转换无法转换对象 除限制之外的所有情况
5077 PostgreSQL 不支持 SELECT 语句的 PIVOT 子句 除限制之外的所有情况
5126 PostgreSQL 不支持模型语句 除限制之外的所有情况
5121 PostgreSQL 不支持 FORALL 语句 除限制之外的所有情况
5141 Amazon DMS 架构转换不支持这种类型的转换 除限制之外的所有情况
5142 Amazon DMS 架构转换无法转换相同方法的嵌套调用 除限制之外的所有情况
5245 PostgreSQL 不支持带有嵌套表列的视图 除限制之外的所有情况
5500 Amazon DMS 架构转换无法转换数据库邮件发送 除限制之外的所有情况
5501 Amazon DMS 架构转换无法转换计划作业 除限制之外的所有情况
5645 PostgreSQL 不支持多个对象表目标的 BULK COLLECT INTO 子句。 除限制之外的所有情况
5665 PostgreSQL 不支持用 PRAGMA AUTOMONOUS_TRANSACTION 定义的集合数据类型 除限制之外的所有情况
5637 PostgreSQL 不支持批量收集到 VARRAY 的 VARRAY 中 除限制之外的所有情况
5594 Amazon DMS 架构转换无法转换日期时间表达式 除限制之外的所有情况
5622 Amazon DMS 架构转换会转换参数设置为 true 的 dbms_transaction.local_transaction_id 函数 除限制之外的所有情况
5643 PostgreSQL 不支持 SELECT 语句中针对多级集合类型的 BULK COLLECT INTO 子句。 除限制之外的所有情况
5649 PostgreSQL 不支持多级集合类型的多集运算符。 除限制之外的所有情况
5651 Amazon DMS 架构转换无法转换流水线表函数 除限制之外的所有情况
5793 Amazon DMS 架构转换使用 GRANT ALL 选项创建队列 除限制之外的所有情况
5794 PostgreSQL 默认将队列模式设置为启用 除限制之外的所有情况
5795 Amazon 简单队列服务不支持处于禁用模式的队列 除限制之外的所有情况
微软 SQL Server 到亚马逊 RDS for PostgreSQL 和微软 SQL Server 到亚马逊 Aurora PostgreSQL 7610 Amazon DMS 架构转换无法转换不支持的 DDL 语句 除限制之外的所有情况
7622 Amazon DMS 架构转换无法使用复杂的内联函数转换 DELETE 语句 除限制之外的所有情况
7624 Amazon DMS 对于没有主键的表,架构转换无法将 DELETE 语句转换为内联函数 除限制之外的所有情况
7626 Amazon DMS 架构转换无法使用复杂的内联函数转换 UPDATE 语句 除限制之外的所有情况
7627 Amazon DMS 架构转换无法转换此语法元素 除限制之外的所有情况
7628 PostgreSQL 不支持 GOTO 语句 除限制之外的所有情况
7637 PostgreSQL 不支持全局游标 除限制之外的所有情况
7639 PostgreSQL 不支持动态游标 除限制之外的所有情况
7644 PostgreSQL 不支持 %s 子句 除限制之外的所有情况
7645 PostgreSQL 不支持在链接服务器上运行直通命令 除限制之外的所有情况
7653 PostgreSQL 不支持 GROUP BY ROLLUP 子句 除限制之外的所有情况
7654 PostgreSQL 不支持 GROUP BY CUBE 子句 除限制之外的所有情况
7655 PostgreSQL 不支持按分组集分组子句 除限制之外的所有情况
7672 PostgreSQL 不支持运行字符串的 EXECUTE 语句 除限制之外的所有情况
7683 如果目标是视图、实例化视图或外部表,则不支持 MERGE 除限制之外的所有情况
7687 PostgreSQL 不支持 CONTAINS 谓词 除限制之外的所有情况
7688 PostgreSQL 不支持 FREETEXT 谓词 除限制之外的所有情况
7691 PostgreSQL 不支持 WAITFOR TIME 功能 除限制之外的所有情况
7695 PostgreSQL 不支持将过程作为变量调用 除限制之外的所有情况
7696 Amazon DMS 架构转换无法转换对象,因为该%s对象尚未创建 除限制之外的所有情况
7708 Amazon DMS 架构转换无法转换不支持%s的数据类型的用法 除限制之外的所有情况
7709 Amazon DMS 架构转换无法转换对称密钥的用法 除限制之外的所有情况
7773 Amazon DMS 架构转换无法使用日期转换算术运算 除限制之外的所有情况
7774 Amazon DMS 架构转换无法转换具有混合类型操作数的算术运算 除限制之外的所有情况
7794 PostgreSQL 不支持用户定义的数据类型 除限制之外的所有情况
7796 PostgreSQL 不支持 UPDATE 语句中的 TOP 子句 除限制之外的所有情况
7797 PostgreSQL 不支持 UPDATE 语句中输出子句的已删除列前缀 除限制之外的所有情况
7798 PostgreSQL 不支持 DELETE 语句中的 TOP 子句 除限制之外的所有情况
7799 PostgreSQL 不支持 INSERT 运算符中的 TOP 子句 除限制之外的所有情况
7804 PostgreSQL 不支持按位异或 OR 运算符 除限制之外的所有情况
7805 PostgreSQL 不支持 !< 除限制之外的所有情况
7806 PostgreSQL 不支持! >(不大于)运算符 除限制之外的所有情况
7811 PostgreSQL 不支持 %s 函数。 Amazon DMS 架构转换会跳过转换后的代码中这个不支持的函数 除限制之外的所有事件,不包括 DDL
7816 PostgreSQL 不支持 XML 数据类型的方法 除限制之外的所有情况
7817 PostgreSQL 不支持 SQL 查询中的 FOR XML 路径选项 除限制之外的所有情况
7818 PostgreSQL 不支持使用二进制数据类型的算术运算 除限制之外的所有情况
7819 PostgreSQL 不支持 INSERT... EXECUTE 语句 除限制之外的所有情况
7820 PostgreSQL 不支持 VALUE () 方法 除限制之外的所有情况
7824 MERGE 语句不支持递归 CTE 除限制之外的所有情况
7829 Amazon DMS 架构转换无法使用 UPDATE 语句转换变量赋值 除限制之外的所有情况
7830 Amazon DMS 架构转换无法使用 CASE 操作数转换算术运算 除限制之外的所有情况
7832 Amazon DMS 架构转换无法在视图上转换 INSTEAD OF 触发器 除限制之外的所有情况
7833 Amazon DMS 架构转换无法在当前上下文中转换@@rowcount函数 除限制之外的所有情况
7836 PostgreSQL 不支持对二进制数据进行写入操作 除限制之外的所有情况
7840 Amazon DMS 架构转换无法转换数据库控制台命令语句 除限制之外的所有情况
7904 Amazon DMS 架构转换无法转换 %s 系统对象 除限制之外的所有情况
7905 PostgreSQL 不支持 SELECT 语句的 PIVOT 子句 除限制之外的所有情况
7906 PostgreSQL 不支持 SELECT 语句的 UNPIVOT 子句 除限制之外的所有情况
7909 Amazon DMS 架构转换无法转换 UPDATE(列)或 COLUMNS_UPDATED 语句 除限制之外的所有情况
7916 Amazon DMS 架构转换无法使用 INSERT ON CONFLICT 语句模拟 MERGE 语句 除限制之外的所有情况
7917 PostgreSQL 不支持 %s 函数 除限制之外的所有情况
7918 PostgreSQL 不支持表值函数 除限制之外的所有情况
7919 PostgreSQL 不支持带有 %s 指令的 XML 除限制之外的所有情况
7920 PostgreSQL 不支持使用 FOR XML 的显式模式 除限制之外的所有情况
7925 PostgreSQL 不支持 OPENXML 标志的百分比字符 除限制之外的所有情况
7927 PostgreSQL 不支持没有主键的自引用表的外部联接 除限制之外的所有情况
7929 Amazon DMS 架构转换无法从 EXEC 语句转换 INSERT 语句 除限制之外的所有情况
7939 Amazon DMS 架构转换无法转换 %s JSON 系统函数 除限制之外的所有情况
7940 Amazon DMS 架构转换无法转换 OPENJSON 系统表值函数 除限制之外的所有情况
7941 Amazon DMS 架构转换无法转换所有打开的数据集,因为您有多个打开的数据集 除限制之外的所有情况
9996 出现内部转换器错误 除限制之外的所有情况

限制

使用生成式 AI 转换数据库对象功能有以下限制:

  • 支持生成式 AI 转换的数据库端点在 Amazon 控制台中不可见。您只能通过将评估报告导出为 PDF 或 CSV 文件来查看。

  • 作为一种概率系统,生成式 AI 辅助架构转换可能无法在所有转换中实现 100% 的准确性。它还可能在一段时间内为相同的 SQL 语句生成不同的结果。您必须查看并验证所有转换输出。

  • 以下各项不支持生成式 AI 转换:

    • 表中的默认约束

    • 函数或过程参数的默认值

    • TRIGGER

    • 列数据类型

    • 动态 SQL

    • INDEX

    • CONSTRAINT

  • 如果源语句使用多个操作项进行转换,并且使用生成式 AI 处理至少一个操作项,则所有操作项都将替换为 Oracle 目标上的一个操作项 5444 和 Microsoft SQL Server 上的一个操作项 7744。操作项目 9997 是一个异常,在使用生成式 AI 处理后保存。

警告

使用生成式 AI 进行转换所需的时间比基本转换更长。

每个 Amazon 账户都有每分钟配额,限制可以使用生成式 AI 转换的 SQL 语句的数量。超过此限制的语句将在接下来的几分钟内排队等候处理。配额如下:

区域 每 Amazon 账户每分钟 SQL 语句
美国东部(弗吉尼亚州北部) 最多 20 个语句
美国西部(俄勒冈州) 最多 100 个语句
欧洲地区(法兰克福) 最多 10 个语句