翻译 Teradata SQL for Fabric Data Warehouse

适用于:Microsoft Fabric 中的✅ 仓库

迁移助手 将支持的 Teradata 元数据转换为兼容 Fabric 的 T-SQL。 利用本参考资料审查自动调整并修正需要关注的对象,因为 Teradata 和 Fabric Data Warehouse 在数据类型、数据库对象、过程命令、物理设计和操作工具上存在差异。

关于端到端生命周期,请参见 “计划从Teradata迁移”。 有关工具和数据移动选项,请参见 Teradata的迁移方法。

重要

翻译输出需要技术和功能验证。 在部署前确认当前Fabric Data Warehouse数据类型、T-SQL表面积及限制。

使用这个参考资料和迁移助手

  1. 上传完整的 Teradata DDL 和依赖文件,作为 和 .bteq 和 或 文件的压缩包。.sql
  2. 运行元数据迁移并查看 “显示迁移对象 ”以进行自动调整。
  3. 为无法翻译或部署的脚本打开 对象 。
  4. 请使用本文中的映射来纠正无依据或模糊的构造。
  5. 运行 迁移助手 中的修正脚本来创建对象。
  6. 将结果与 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、评审决策和测试证据。