適用於:✅ Microsoft Fabric 中的倉庫
本文說明 Microsoft Fabric 倉庫中 Git 整合與部署管線的運作方式。 瞭解如何設定存放庫的連線、管理倉儲,以及跨不同環境部署倉儲。 Fabric Warehouse 的原始碼控制目前僅為預覽功能。
- 使用 Git 和 SQL 資料庫專案來管理個別資料庫物件中的增量變更、團隊協作及提交歷史。
- 使用部署管道推動程式碼變更至不同的測試和生產環境。
Git 整合功能
Microsoft Fabric 中的 Git 整合讓開發者能將開發流程、工具與最佳實務直接整合到 Fabric 平台。 它讓正在開發 Fabric 的開發者能夠:
- 備份其工作和設定工作版本
- 視需要還原至先前的階段
- 你可以與他人合作,或是使用 Git 分支獨自工作
- 運用熟悉的原始碼控制工具來管理 Fabric 項目
如需有關 Git 整合程序的詳細資訊,請參閱:
設定與原始檔控制的連線
從 [工作區設定] 頁面,您可以輕鬆地設定與存放庫的連線,以提交和同步變更。
- 若要設定連線,請參閱開始使用 Git 整合。 請依照指示連接至 Git 倉庫,選擇 Azure DevOps 或 GitHub 作為 Git 提供者。
- 連線之後,您的項目,包括倉儲,會出現在 [原始檔控制] 面板中。
- 成功將倉儲執行個體連線到 Git 存放庫之後,您會在存放庫中看到倉儲資料夾結構。 您現在可以執行未來的作業,例如建立提取要求。
Git 中的供應鏈管理資料庫專案
下圖是存放庫中每個倉儲項目的檔案結構範例:
當您將倉儲項目提交至 Git 存放庫時,倉儲會轉換為原始程式碼格式,做為 SQL 資料庫專案。 SQL 專案在本機系統中表示組成單一資料庫結構的 SQL 元件,例如資料表、預存程序或函式。 資料庫物件的資料夾結構會依結構描述/物件類型來組織。 倉儲中的每個物件都會以 .sql 檔案表示,其中包含物件的資料定義語言 (Data Definition Language) (DDL) 定義。 倉庫資料表資料與 SQL 安全功能 未包含在 SQL 資料庫專案中。
共用查詢也會提交至存放庫,並沿用儲存時的名稱。
部署管線
您也可以使用部署管線,在不同的環境(例如開發、測試和生產環境)中部署您的倉儲程式碼。 部署管線不會公開資料庫專案。
請使用以下步驟,透過部署流程完成您的倉庫部署。
- 建立新的部署管線,或開啟現有的部署管線。 如需詳細資訊,請參閱開始使用部署管線。
- 根據您的部署目標,將工作區指派到不同的階段。
- 如以下範例所示,選擇、檢視並比較不同階段間的物品,包括倉庫。
- 選取 [部署],跨開發、測試和生產階段部署您的倉儲。
欲了解更多關於Fabric部署管線流程的資訊,請參見 部署管線介紹。
原始檔控制的限制
- 你必須透過腳本方式匯出或遷移 SQL 安全 功能。 請考慮在 SQL 資料庫專案中使用部署後腳本。 你可以透過在 Visual Studio Code 開啟專案並使用 SQL Database Projects 擴充功能 來設定此腳本。
Git 整合的限制
- 目前,如果你在
ALTER TABLE資料庫專案中新增限制或欄位,部署過程會丟棄並重新建立資料表,導致資料遺失。 為保留資料表定義與資料,請考慮以下變通方法: - 目前,請不要建立資料流 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 層級成功,但結果的資料集整合不會反映目標倉庫的整合。 |