翻譯 Teradata SQL for Fabric Data Warehouse

適用於:Microsoft Fabric 中的✅ 資料庫

移轉小幫手 將支援的 Teradata 元資料轉譯成相容的 Fabric T-SQL。 利用本參考資料檢視自動調整並修正需要注意的物件,因為 Teradata 與 Fabric Data Warehouse 在資料類型、資料庫物件、程序指令、物理設計及操作工具上有所不同。

關於端到端的生命週期,請參見「規劃從 Teradata 遷移」。 關於工具與資料移動選項,請參閱 Teradata 的遷移方法。

Important

翻譯輸出需要技術與功能驗證。 在部署前確認目前的Fabric Data Warehouse資料型態、T-SQL 表面積及限制。

使用此參考資料搭配 移轉小幫手

  1. 將完整的 Teradata DDL 及相依性檔案上傳為壓縮壓縮檔,包含 .sql 和/或 .bteq 檔案。
  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執行。
連接索引 實體化檢視或預彙總表格 連接索引需要重新設計,作為支援的持久結構。
Macro 儲存過程 Teradata 巨集以儲存程序形式遷移。
多重組合表 表 重複列行為已經與預設的 Fabric DW 資料表行為一致。
程序 儲存過程 Teradata 程序對應至 Fabric DW 的儲存程序;不支援的程序屬性則需審查。
遞迴視角 不支援 Fabric DW 不支援遞迴常用表表達式。
Role Role 角色成員對應至 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、翻譯 SQL、審查決策與測試證據。