原始檔控制 (預覽版)

適用於:✅ Microsoft Fabric 中的倉庫

本文說明 Microsoft Fabric 倉庫中 Git 整合與部署管線的運作方式。 瞭解如何設定存放庫的連線、管理倉儲,以及跨不同環境部署倉儲。 Fabric Warehouse 的原始碼控制目前僅為預覽功能。

您可以針對不同的案例使用 Git 整合部署管線

  • 使用 Git 和 SQL 資料庫專案來管理個別資料庫物件中的增量變更、團隊協作及提交歷史。
  • 使用部署管道推動程式碼變更至不同的測試和生產環境。

Git 整合功能

Microsoft Fabric 中的 Git 整合讓開發者能將開發流程、工具與最佳實務直接整合到 Fabric 平台。 它讓正在開發 Fabric 的開發者能夠:

  • 備份其工作和設定工作版本
  • 視需要還原至先前的階段
  • 你可以與他人合作,或是使用 Git 分支獨自工作
  • 運用熟悉的原始碼控制工具來管理 Fabric 項目

如需有關 Git 整合程序的詳細資訊,請參閱:

設定與原始檔控制的連線

從 [工作區設定] 頁面,您可以輕鬆地設定與存放庫的連線,以提交和同步變更。

  1. 若要設定連線,請參閱開始使用 Git 整合。 請依照指示連接至 Git 倉庫,選擇 Azure DevOps 或 GitHub 作為 Git 提供者。
  2. 連線之後,您的項目,包括倉儲,會出現在 [原始檔控制] 面板中 截圖,從倉庫Fabric入口的原始碼控制設定中截圖。
  3. 成功將倉儲執行個體連線到 Git 存放庫之後,您會在存放庫中看到倉儲資料夾結構。 您現在可以執行未來的作業,例如建立提取要求。

Git 中的供應鏈管理資料庫專案

下圖是存放庫中每個倉儲項目的檔案結構範例:

從Fabric入口網站截圖的範例倉庫架構。

當您將倉儲項目提交至 Git 存放庫時,倉儲會轉換為原始程式碼格式,做為 SQL 資料庫專案。 SQL 專案在本機系統中表示組成單一資料庫結構的 SQL 元件,例如資料表、預存程序或函式。 資料庫物件的資料夾結構會依結構描述/物件類型來組織。 倉儲中的每個物件都會以 .sql 檔案表示,其中包含物件的資料定義語言 (Data Definition Language) (DDL) 定義。 倉庫資料表資料與 SQL 安全功能 未包含在 SQL 資料庫專案中。

共用查詢也會提交至存放庫,並沿用儲存時的名稱。

部署管線

您也可以使用部署管線,在不同的環境(例如開發、測試和生產環境)中部署您的倉儲程式碼。 部署管線不會公開資料庫專案。

請使用以下步驟,透過部署流程完成您的倉庫部署。

  1. 建立新的部署管線,或開啟現有的部署管線。 如需詳細資訊,請參閱開始使用部署管線
  2. 根據您的部署目標,將工作區指派到不同的階段。
  3. 如以下範例所示,選擇、檢視並比較不同階段間的物品,包括倉庫。 Fabric入口網站的開發、測試與生產階段截圖。
  4. 選取 [部署],跨開發測試生產階段部署您的倉儲。

欲了解更多關於Fabric部署管線流程的資訊,請參見 部署管線介紹

原始檔控制的限制

Git 整合的限制

  • 目前,如果你在 ALTER TABLE 資料庫專案中新增限制或欄位,部署過程會丟棄並重新建立資料表,導致資料遺失。 為保留資料表定義與資料,請考慮以下變通方法:
    • 在倉庫中使用 CREATE TABLEINSERTCREATE TABLE AS SELECT複製表格來建立新的表格副本。
    • 可依需求修改新的表格定義,加入新的約束或欄位,方法是使用 ALTER TABLE
    • 刪除舊資料表。
    • 將新資料表重新命名為舊資料表的名稱,方法是使用 sp_rename
    • 完全相同的方式修改 SQL 資料庫專案中舊資料表的定義。 原始檔控制中的倉儲和即時倉儲的 SQL 資料庫專案現在應該相符。
  • 目前,請不要建立資料流 Gen2,其輸出目的地是倉庫。 在 DataflowsStagingWarehouse 倉庫中新出現了一個名為DataflowsStagingWarehouse的檔案,並阻止從 Git 提交和更新。
  • Fabric Git 整合不支援 SQL 分析端點項目。
  • 跨項目相依、項目排序,以及 SQL 分析端點與倉庫之間的同步缺口,會影響開發與持續整合期間「分支到新工作區或現有工作區」以及「切換到不同分支」的工作流程。

部署管線的限制

  • 目前,如果你在 ALTER TABLE 資料庫專案中新增限制或欄位,部署過程會丟棄並重新建立資料表,導致資料遺失。
  • 目前,請不要建立資料流 Gen2,其輸出目的地是倉庫。 部署流程中會出現一個新項目 DataflowsStagingWarehouse 並阻擋部署。
  • Fabric 部署管線不支援 SQL 分析端點項目。
  • 跨項目相依、項目排序及 SQL 分析端點與倉庫間的同步缺口,影響 Fabric 部署管線的工作流程。

不支援的場景

以下 CI/CD 工作流程在不同工作空間的倉庫具有不同排序時不受官方支援。 即使這些操作可能成功且無錯誤,也可能導致元資料錯誤。

在所有這些情境中,若發生排序規則不匹配,請使用 Fabric 工具箱 GitHub 倉庫中的 Python 腳本 scripts/dw-collation-error-update-tmsl/pbi_interactive.py 更新資料集(TMSL)的排序規則以匹配倉庫的排序規則。

Scenario 說明 風險
部署管道 透過流程階段(例如開發→測試→生產)推廣倉庫內容,且目標倉庫的整合方式與原始碼不同,是不被支援的。 部署可能成功,但資料集整合結果無法更新到與目標倉庫整合一致。
拓展到新工作區或現有工作區 使用 Git 整合從現有工作區分支到新建或現有工作區(倉庫有不同排序)是不支援的。 倉庫內容已同步,但排序的元資料未對齊。
在工作區切換分支 在 連接到 Git 的工作區中,切換到與不同排序的倉庫相關聯的分支不是支援的。 同步的內容可能會帶有不符合目前資料倉儲的排序假設。
透過分支合併工作區間的變更 在不同排序規則的倉庫之間的工作區合併 Git 分支是不支援的。 合併可能在 Git 層級成功,但結果的資料集整合不會反映目標倉庫的整合。