原始檔控制 (預覽版)

適用於:✅ 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 資料庫專案中。

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

對於啟用原始碼控制的工作區,透過外部工具所做的結構變更(例如在 SSMS 執行查詢)會在倉庫中顯示為未提交的變更。 使用者必須透過 Fabric 入口網站的工作區來源控制來審查並提交這些變更。

部署管線

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

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

  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 層級成功,但結果的資料集整合不會反映目標倉庫的整合。