適用於:Microsoft Fabric 中的✅ 資料庫
移轉小幫手 將支援的 Teradata 元資料轉譯成相容的 Fabric T-SQL。 利用本參考資料檢視自動調整並修正需要注意的物件,因為 Teradata 與 Fabric Data Warehouse 在資料類型、資料庫物件、程序指令、物理設計及操作工具上有所不同。
關於端到端的生命週期,請參見「規劃從 Teradata 遷移」。 關於工具與資料移動選項,請參閱 Teradata 的遷移方法。
Important
翻譯輸出需要技術與功能驗證。 在部署前確認目前的Fabric Data Warehouse資料型態、T-SQL 表面積及限制。
使用此參考資料搭配 移轉小幫手
- 將完整的 Teradata DDL 及相依性檔案上傳為壓縮壓縮檔,包含
.sql和/或.bteq檔案。 - 執行元資料遷移並檢視「 顯示遷移物件 以進行自動調整」。
- 開啟 物件來修正 無法翻譯或部署的腳本。
- 請利用本文中的映射來修正無根據或模糊的構念。
- 從 移轉小幫手 執行修正後的腳本來建立物件。
- 將結果與 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、審查決策與測試證據。