適用於:Microsoft Fabric 中的✅ 資料庫
本文說明了從SQL Server到Microsoft Fabric Data Warehouse遷移資料倉儲的方法。
小提示
欲了解更多策略與規劃資訊,請參閱《遷徙規劃:SQL Server到Fabric Data Warehouse》。
用Fabric 移轉小幫手 for Data Warehouse 來實現從 SQL Server 的自動遷移體驗。 本文其餘部分將介紹更多手動遷移步驟。
下表總結了資料結構(DDL)、資料庫程式碼(DML)及資料遷移的方法。 每個選項都會在本文後面說明。
| Option | 方法 | 其功能是什麼 | 技巧還是偏好 | Scenario |
|---|---|---|---|---|
| 1 | 數據處理站 | 模式轉換 資料抽取 資料擷取 |
資料工廠管線 | 簡化的結構與資料遷移。 建議使用在維度資料表上。 |
| 2 | 帶有分割的資料工廠 | 模式轉換 資料抽取 資料擷取 |
資料工廠管線 | 大型 事實表的平行化遷移。 |
| 3 | 模式優先遷移 | 模式轉換 | 資料工廠管線 | 先遷移結構,然後再分別擷取和匯入資料,以提升吞吐量控制。 |
| 4 | SQL 遷移腳本 | 模式轉換 資料抽取 程式碼評定 |
T-SQL | 使用 IDE 和腳本來細緻控制遷移任務。 |
| 5 | SQL 資料庫專案 | 模式轉換 程式碼評定 |
SQL 專案 | 使用資料庫專案進行原始碼控制、評估與部署。 |
| 6 | dbt | 模式轉換 資料庫程式碼轉換 |
dbt | 透過更改轉接器和目標設定,重複使用現有的 DBT 專案。 |
選擇初始移轉的工作負載
當你決定從哪裡開始SQL Server到Fabric Data Warehouse遷移專案時,請選擇一個工作量領域,讓你能夠:
- 透過快速提供新環境的好處,證明遷移到Fabric Data Warehouse的可行性。 從小而簡單的開始,並準備多次小型遷移。
- 給你的技術人員時間,讓他們累積相關經驗,熟悉他們用來遷移其他工作負載的流程和工具。
- 建立一個針對你的 SQL Server 環境、工具和流程專屬的後續遷移範本。
小提示
建立需要遷移的物件清單,並從頭到尾記錄遷移過程,以便能在其他資料庫或工作負載中重複執行。
初期遷移時的資料量應該足夠大以展現Fabric Data Warehouse的能力與效益,但又要足夠小以快速展現價值。 1-10 TB 範圍內的大小是典型大小。
使用 Fabric Data Factory 遷移
Fabric Data Factory 提供低程式碼介面,可將 SQL Server 的資料表 DDL 轉換,並遷移資料。
Fabric Data Factory 可以執行下列工作:
- 將 schema(DDL)轉換成Fabric Data Warehouse語法。
- 在 Fabric Data Warehouse 建立結構物件。
- 將資料遷移到Fabric Data Warehouse。
選項 1。 使用複製助理進行結構與資料遷移
此方法使用資料工廠複製助理連接原始SQL Server資料庫,將資料表 DDL 轉換為Fabric語法,並將資料複製至 Fabric Data Warehouse。 你可以選擇一個或多個來源資料表。 產生的管線會使用 ForEach 活動來平行複製選取的資料表。
當你設定複製操作時:
- 使用 SQL Server 連接器作為來源連線。
- 將平行複製限制在原始資料庫與網路能承受的程度。
- 監控來源 CPU、I/O、交易日誌使用情況,以及擷取過程中的生產工作負載延遲。
建議使用
使用 Copy Assistant 做一個簡單的介面,可以一次轉換 DDL 並匯入選定的資料表。 此方法很適合用於維度資料表及較小的工作負載。
對於大型資料表,使用分割來增加讀寫平行性。
選項二。 資料遷移與分割
對於大型事實資料表,請為每個資料表各使用一個複製活動,並設定來源分區。 若有可用的實體分區,請使用;或指定合適的數值或日期欄位及其最小值與最大值,以設定動態範圍分割。
使用分割功能時:
- 選擇一個能均勻分配列的分割欄位。
- 避免建立超過 SQL Server 在不影響生產工作負載的情況下所能處理的並行來源查詢。
- 用代表性工作負載測試分割區範圍和平行複製設定。
- 在監控來源與目的地的同時,逐步增加平行性。
建議使用
當平行擷取可提升吞吐量時,請對大型事實資料表使用 Data Factory 資料分割。 根據你的來源資料庫資源和網路容量,來調整批次數量和分割範圍。
選項 3。 模式優先遷移
對於較大的資料庫,應將結構遷移與資料遷移分開:
- Fabric Data Warehouse 中轉換並建立資料表結構。
- 將來源資料擷取到 Azure Data Lake Storage(ADLS)Gen2。
- 使用 Data Factory 或 COPY INTO 指令將分階段資料匯入 Fabric Data Warehouse。
將這些階段分開,可以讓你獨立調整萃取和攝取。
使用 Data Factory 進行結構遷移
你可以用 Fabric pipeline 將資料表結構從 SQL Server 遷移到 Fabric Data Warehouse,而不必複製列。
設定管線參數
建立 SchemaName 一個參數來指定要遷移哪些結構模式。 預設使用 dbo ,或輸入逗號分隔的列表,例如 'dbo','sales'。
設定查詢活動
建立一個查詢活動,並將其連接到來源 SQL Server 資料庫。 在 設定 標籤中:
- 將 [資料存放區類型] 設定為 [外部]。
- 選擇來源 SQL Server 連線。
- 將 Use query 設為 查詢。
- 新增一個動態查詢,回傳來源結構和資料表名稱。
請使用以下表達式來建立查詢:
@concat('
SELECT s.name AS SchemaName,
t.name AS TableName
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.type = ''U''
AND s.schema_id = t.schema_id
AND s.name in (',coalesce(pipeline().parameters.SchemaName, 'dbo'),')
')
設定 ForEach 活動
在 ForEach 活動的 設定 標籤中:
- 關閉序列以允許迭代同時執行。
- 將 批次計數 設定為來源資料庫能承受的值。 先用保守值來測試。
- 將 物品 設定為
@activity('Get List of Source Objects').output.value。
設定複製活動
在 ForEach 活動中,新增一個複製活動。 在 [來源] 索引標籤中:
- 將 [資料存放區類型] 設定為 [外部]。
- 選擇來源 SQL Server 連線。
- 將 使用查詢 設為 查詢。
- 將 查詢 設定為
@concat('SELECT TOP 0 * FROM ',item().SchemaName,'.',item().TableName)只有資料表的元資料會被遷移。
在 [目的地] 索引標籤中:
- 將 [資料存放區類型] 設定為 [工作區]。
- 將 Workspace 資料儲存類型設為 Data Warehouse,並選擇目的地倉庫。
- 將目標結構設為
@item().SchemaName。 - 將目的表設為
@item().TableName。
執行管線後,確認Fabric Data Warehouse包含每個選定的資料表,並符合預期的結構。
使用 SQL 腳本進行遷移
當你想要細緻控制架構轉換、資料擷取和程式碼評估時,可以使用 T-SQL 和 PowerShell 腳本。
遷移腳本可以:
- 將 schema(DDL)轉換成Fabric Data Warehouse語法。
- 在 Fabric Data Warehouse 建立結構物件。
- 從 SQL Server 擷取資料到 ADLS Gen2。
- 在儲存程序、函式及檢視中標記不支援的 T-SQL 語法。
Microsoft Fabric CAT 團隊在 fabric-migration 資料庫中提供遷移程式碼範例。
建議使用
當你熟悉 T-SQL、偏好整合開發環境,且需要控制個別遷移任務時,可以使用腳本。 使用COPY INTO或 Data Factory 將擷取的資料匯入 Fabric Data Warehouse。
使用 SQL 資料庫專案移轉
Fabric Data Warehouse 在適用於 Visual Studio Code 的 SQL 資料庫專案擴充功能中獲得支援。
SQL 資料庫專案提供原始碼控制、資料庫測試、架構驗證及部署功能。 它可以:
- 將 schema(DDL)轉換成Fabric Data Warehouse語法。
- 在 Fabric Data Warehouse 建立結構物件。
- 評估儲存程序、函式與檢視中未支援的 T-SQL 語法。
進行資料移轉時,請使用 Data Factory 直接從 SQL Server 複製資料,或先將資料擷取至 ADLS Gen2,再使用 COPY INTO 或 Data Factory 將其匯入。
若想了解如何使用 SQL 資料庫專案搭配遷移腳本,請參閱 fabric-migration 儲存庫。
欲了解更多資訊,請參閱「 開始使用 SQL 資料庫專案擴充功能 」及 「從命令列建置資料庫專案」。
使用 dbt 進行遷移
如果您的 SQL Server 資料倉儲使用 dbt,您可以使用適用於 Fabric Data Warehouse 的 dbt 配接器,只要變更目標設定檔和配接器,即可轉換結構描述和資料庫程式碼。
DBT 框架從模型檔案產生 DDL 與 DML 腳本。 您必須使用 Data Factory 或本文中的其他資料移轉選項,另外移轉資料。
要開始,請參考教學:為Fabric Data Warehouse設定DBT。
將資料擷取至 Fabric Data Warehouse
對於暫存資料,請使用 COPY INTO 或 Fabric Data Factory,將檔案從 ADLS Gen2 擷取至 Fabric Data Warehouse。 請參考以下指引:
- 當來源資料庫和網路有足夠容量時,並行擷取大型資料表。
- 建議優先使用 Parquet 檔案,以減少儲存空間和網路資源使用,並提升資料匯入效率。
- 當你的 Fabric 容量能支援工作負載時,可以同時載入多個目的地資料表。
- 監控來源擷取與 Fabric 容量,以找出最佳的平行度。