SQL Server 移轉至 Fabric Data Warehouse 的方法

適用於: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。 模式優先遷移

對於較大的資料庫,應將結構遷移與資料遷移分開:

  1. Fabric Data Warehouse 中轉換並建立資料表結構。
  2. 將來源資料擷取到 Azure Data Lake Storage(ADLS)Gen2。
  3. 使用 Data Factory 或 COPY INTO 指令將分階段資料匯入 Fabric Data Warehouse。

將這些階段分開,可以讓你獨立調整萃取和攝取。

使用 Data Factory 進行結構遷移

你可以用 Fabric pipeline 將資料表結構從 SQL Server 遷移到 Fabric Data Warehouse,而不必複製列。

Fabric Data Factory 的螢幕擷取畫面,顯示查閱活動已連接到用於遷移 DDL 的 ForEach 活動。

設定管線參數

建立 SchemaName 一個參數來指定要遷移哪些結構模式。 預設使用 dbo ,或輸入逗號分隔的列表,例如 'dbo','sales'。

Data Factory 的截圖顯示 SchemaName 管線參數。

設定查詢活動

建立一個查詢活動,並將其連接到來源 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'),')
')

Data Factory 的截圖顯示 Lookup 活動中的動態查詢。

設定 ForEach 活動

在 ForEach 活動的 設定 標籤中:

  • 關閉序列以允許迭代同時執行。
  • 將 批次計數 設定為來源資料庫能承受的值。 先用保守值來測試。
  • 將 物品 設定為 @activity('Get List of Source Objects').output.value。

截圖顯示 ForEach 活動的設定。

設定複製活動

在 ForEach 活動中,新增一個複製活動。 在 [來源] 索引標籤中:

  • 將 [資料存放區類型] 設定為 [外部]。
  • 選擇來源 SQL Server 連線。
  • 將 使用查詢 設為 查詢。
  • 將 查詢 設定為 @concat('SELECT TOP 0 * FROM ',item().SchemaName,'.',item().TableName) 只有資料表的元資料會被遷移。

Data Factory 的截圖顯示 複製活動 的原始設定。

在 [目的地] 索引標籤中:

  • 將 [資料存放區類型] 設定為 [工作區]。
  • 將 Workspace 資料儲存類型設為 Data Warehouse,並選擇目的地倉庫。
  • 將目標結構設為 @item().SchemaName。
  • 將目的表設為 @item().TableName。

Data Factory 的截圖顯示 複製活動 的目的地設定。

執行管線後,確認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 容量,以找出最佳的平行度。