适用于:Microsoft Fabric 中的✅ 仓库
迁移助手 将支持的 Teradata 元数据转换为兼容 Fabric 的 T-SQL。 利用本参考资料审查自动调整并修正需要关注的对象,因为 Teradata 和 Fabric Data Warehouse 在数据类型、数据库对象、过程命令、物理设计和操作工具上存在差异。
关于端到端生命周期,请参见 “计划从Teradata迁移”。 有关工具和数据移动选项,请参见 Teradata的迁移方法。
重要
翻译输出需要技术和功能验证。 在部署前确认当前Fabric Data Warehouse数据类型、T-SQL表面积及限制。
使用这个参考资料和迁移助手
- 上传完整的 Teradata DDL 和依赖文件,作为 和
.bteq和 或 文件的压缩包。.sql - 运行元数据迁移并查看 “显示迁移对象 ”以进行自动调整。
- 为无法翻译或部署的脚本打开 对象 。
- 请使用本文中的映射来纠正无依据或模糊的构造。
- 运行 迁移助手 中的修正脚本来创建对象。
- 将结果与 Teradata 行为进行比较,并优化 Fabric 的字面翻译。
对象映射
| Teradata 对象 / 构造 | Fabric DW 的对应产品 | Notes |
|---|---|---|
| Database | Schema | Teradata数据库命名空间映射到Fabric DW模式;大小和父选项被移除。 |
| 外部功能 | 不支持 | 外部语言例程需要手动重写。 |
| 外星表 | OneLake快捷方式或 COPY INTO |
外部表格不被直接支持。 |
| 功能 | 功能 | SQL 标量和表值函数映射到 Fabric DW 函数;不支持的例程属性被移除。 |
| 全局临时表 | 本地临时表(#name) |
全局定义的持久性不会被保留。 |
| 身份列 | BIGINT IDENTITY NOT NULL |
种子、增量、界限和循环选项不被保留。 |
| Index | 无直接等效项 | 主索引、次索引、唯一索引和哈希索引不被发布;Fabric 管理分发和聚类。 |
| 完整性约束 - 检查 | 无直接等效项 |
CHECK 约束必须在上游或加载过程中强制执行。 |
| 完整性约束 - 外键 | FOREIGN KEY ... NOT ENFORCED |
引用动作被移除,约束也不再被执行。 |
| 完整性约束 - 主键 / 唯一 | NONCLUSTERED ... NOT ENFORCED |
约束作为元数据保留,密钥列被强制 NOT NULL执行。 |
| 连接索引 | 具体化视图或预聚合表 | 连接索引需要重新设计,作为支持的持久结构。 |
| 宏 | 存储过程 | Teradata 宏作为存储过程迁移。 |
| 多重组表 | 表 | 重复行行为已经与默认的 Fabric DW 表行为一致。 |
| 过程 | 存储过程 | Teradata 过程映射到 Fabric DW 存储过程;不支持的过程属性需要审查。 |
| 递归视图 | 不支持 | 递归常用表表达式在 Fabric DW 中不被支持。 |
| 角色 | 角色 | 角色成员映射到 ALTER ROLE ADD MEMBER 或 DROP MEMBER; ADMIN OPTION 不保留。 |
| 布置桌 | 表 |
SET 重复行强制执行不被保留;如有需要,添加元数据或上游强制执行。 |
| 统计信息 | CREATE STATISTICS / UPDATE STATISTICS |
多列集合被拆分为单列统计;不支持的目标需要审核。 |
| 存储模式 | 不支持 | Teradata 存储模式不会映射到 Fabric DW 命名空间对象。 |
| 表 | 表 | 永久的Teradata表映射到Fabric DW表;不支持的物理存储选项被移除。 |
| Trigger | 不支持 | 将触发逻辑迁移到存储过程或加载流水线中。 |
| View | View | 标准视图直接映射;替换操作变为 CREATE OR ALTER。 |
| 波动率表 | 本地临时表(#name) |
会话范围的易发性表映射到本地临时表;模式限定符被移除。 |
数据类型映射
| Teradata 数据类型族 | Fabric DW 的对应产品 | Notes |
|---|---|---|
| 近似数值 | FLOAT |
FLOAT
REAL、 ,并DOUBLE PRECISION合并为 FLOAT。 |
| Binary | VARBINARY(n) / VARBINARY(MAX) |
BYTE 族 VARBYTE 映射为可变长度的二进制类型;大小超过8000时使用 MAX。 |
| 布尔 | 不支持 | Teradata BOOLEAN 没有支持 Fabric DW 的对应产品。 |
BYTEINT |
SMALLINT |
Teradata BYTEINT 扩展为 SMALLINT。 |
| 字符 | CHAR(n) / VARCHAR(n) / VARCHAR(MAX) |
Unicode 使用仓库 UTF-8 排序;Unicode VARCHAR 长度被扩展并限制在 MAX。 |
| 集合 / 阵列 | 映射基数据类型或 JSON 数组 |
ARRAY
VARRAY并移除包装器;需要时对数组构造器进行序列化。 |
| 日期和时间 | DATE / TIME(6) / DATETIME2(6) |
分数精度上限为6,且不保留时区偏移。 |
| 精确数值 | DECIMAL(p,s) / NUMERIC |
DECIMAL
NUMERIC在提供时保留精度和比例;省略缩放默认为0。 |
| Integer | SMALLINT / INT / BIGINT |
除直接映射外,整数族 BYTEINT 。 |
| 大型对象 | VARCHAR(MAX) / VARBINARY(MAX) |
CLOB 映射到 VARCHAR(MAX),映射 BLOB 到 VARBINARY(MAX)。 |
MAP |
不支持 | Teradata MAP 没有支持 Fabric DW 的对应产品。 |
MULTISET |
表 | Teradata MULTISET 会转换为表格。 |
| JSON 和 XML | VARCHAR(MAX) |
JSON 和 XML 文档以文本形式存储;JSON 可以用 和 OPENJSON进行查询JSON_VALUE。 |
| 时间间隔 |
VARCHAR(50)加逻辑DATEADD |
Fabric DW 没有标量区间类型;存储和算术需要重新设计。 |
| 时间时期 |
VARCHAR(100) 或明确的起始/结束列 |
周期值或界限必须显式建模;周期关系元数据被剔除。 |
| 空间 | 不支持 | 存储已知的文本或二进制,或在 Fabric DW 之外处理空间数据。 |
SET |
表 | Teradata SET 会转换为表格。 |
| 用户定义的类型 | 基础基准类型 | Fabric DW 没有用户自定义类型对象;手动替换和验证基础类型。 |
BTEQ 命令映射
BTEQ结合了SQL、流量控制、会话管理、导入和导出行为。 根据命令的不同,将其转换为存储过程、流水线、加载操作或显式不支持的结果。
迁移助手 将 BTEQ 脚本转换为存储过程,并保留支持的脚本元素。 审查生成的存储过程并将其整合到相应的工作流程中。
| BTEQ 构造族 | Fabric 等效物 | Notes |
|---|---|---|
| 控制流程与分支 | 存储过程IF / / GOTOWHILE或流水线条件 |
将标签、条件和重复指令迁移到T-SQL控制流或流水线编排中。 |
| 数据摄取与导出 |
COPY INTO以及 Fabric 流水线复制活动 |
导入可以变成 COPY INTO;将导出和外部文件处理迁移到管道或CETAS。 |
| 错误处理与终止 | 过程返回代码与管道故障路径 | 捕获 ERRORCODE 并 ACTIVITYCOUNT;添加编排器逻辑,以及 ERRORLEVEL 最大错误策略。 |
| 运行时元数据和变量 | 过程参数 / @@ERROR / @@ROWCOUNT / 流水线变量 |
将环境变量和BTEQ状态值映射到参数、变量和捕获的执行状态。 |
| 脚本包装与SQL执行 | 带有翻译 T-SQL 的存储过程包装器 | BTEQ 脚本可以成为一个过程;提取模式级对象,并保留失败语句以供复核。 |
| 时序与进程执行 |
WAITFOR、排班、等待活动、笔记本或管道活动 |
映射 HANG 到 WAITFOR;将操作系统命令移出仓库。 |
不支持的BTEQ语句
迁移助手 会从翻译后的代码中移除以下 BTEQ 语句:
| BTEQ 语句 | 翻译结果 |
|---|---|
.DEFAULTS |
从规范中移除 |
.ERROROUT, .ERRORLEVEL, 以及独立 .MAXERROR |
从规范中移除 |
.EXPORT DATA、.EXPORT REPORT、.EXPORT DIF 和 .EXPORT INDICDATA FILE = path |
从规范中移除 |
.EXPORT RESET |
从规范中移除 |
.FORMAT、.WIDTH、.FOLDLINE、.TITLEDASHES 和 .SIDETITLES |
从规范中移除 |
.LOGOFF |
从规范中移除 |
.LOGON tdpid/user,pwd |
从规范中移除 |
.OS command、 .TSO command和 .CMS command |
从规范中移除 |
.PAGELENGTH、.PAGEBREAK、.HEADING 和 .FOOTING |
从规范中移除 |
.ECHOREQ |
从规范中移除 |
.RECORDMODE、 .INDICDATA和 .LARGEDATAMODE |
从规范中移除 |
.RETLIMIT n,m 以及独立作品 .RETCANCEL |
从规范中移除 |
.RUN FILE = script.bteq |
从规范中移除 |
.SEPARATOR 以及独立作品 .NULL AS |
从规范中移除 |
.SESSION CHARSET、.SESSION SQLFLAG、.SESSION TRANSACTION 和 .SESSION DATEFORM |
从规范中移除 |
.SHOW CONTROLS 和 .SHOW VERSIONS |
从规范中移除 |
验证翻译代码
尽可能使用自动化测试,然后与工作负载负责人完成功能审查。
- 比较对象数量和未解决的依赖关系。
- 比较代表性和边界输入的行级结果。
- 验证十进制精度、时间戳、空语义、字符串填充、校对和非ASCII文本。
- 测试错误路径、事务行为、重试和部分失败。
- 对目标运行下游报告和语义模型。
- 测试代表性数据量和并发性。
- 审查生成的 SQL,以防不必要的嵌套、逐行处理和针对源的物理调优。
- 保留源代码、翻译SQL、评审决策和测试证据。