利用管線部署倉庫

適用於: ✅ Microsoft Fabric 中的倉庫

Microsoft Fabric 管線提供了一種簡化的方式,讓 Dev → 測試→生產環境等工作空間間的倉庫架構得以變更。 管線內建依賴處理、結構驗證及宣告式部署智慧。

Important

這項功能目前處於預覽階段。

本文說明了使用管線進行倉庫部署的流程。

Fabric Data Warehouse 的管線部署生命週期示意圖。

部署管線提供必要的生命週期結構,以安全地跨工作空間移動倉庫變更。 它們作為結構推廣的核心協調層,讓團隊能標準化變更如何透過分析平台流動,而非依賴臨時部署。 一旦建立,管線就成為比較倉庫、審查變更及執行部署的主要介面。

建立管線

要建立新的管線,請參見「 開始使用部署管線 來建立和管理部署管線」。

比較

部署前務必驗證並比較 T-SQL 變更。 部署管線在 Fabric 入口網站提供一個簡單的比較畫面,方便檢視受影響的倉庫物件。

檢視變更讓團隊能在推動更新到下游環境前,驗證準備度。 此流程在多個團隊共同參與倉庫開發的企業情境中特別有價值。

Fabric 使用 DacFx(資料層應用框架)來進行此比較。 DacFx 建立兩個環境的宣告式結構模型,並識別差異,例如新資料表、修改的欄位、限制條件或相依性變更。 由於此比較是基於模型驅動,能準確反映部署過程中的實際情況。

Important

要讓結構比較有效,倉庫必須同時存在於來源與目標工作空間中。 如果目標工作空間尚未包含倉庫,請先建立或部署初始基準版本。

Note

如果某欄的 COLLATE 子句明確指定與倉庫預設排序相同的排序,比較時不會顯示為差異,因為這等同於根本不指定排序。 只有那些彙整與倉庫預設整合不同的欄位,當其彙整變更時,才會出現在比較中。 欲了解更多資訊及範例,請參閱 Troubleshoot Git 整合以促進Fabric Data Warehouse開發。

在部署任何變更前,請利用部署管線的比較功能來檢視來源與目標倉庫工作空間之間的差異。

在 Fabric 入口網站截圖,使用管線比較兩個不同工作空間中的倉庫。

選擇 比較 並查看變更,例如在倉庫中建立新檢視:

一張比較一個州與另一個州倉庫的截圖。

Deploy

比較結束並驗證變更後,你可以直接從管線介面選擇要推廣的倉庫項目來部署。

從 Fabric 入口網站截圖,將部署到這個階段的畫面。

部署過程中,部署管線會利用 DacFx 根據結構差異產生智慧型部署計畫。 Fabric 只套用必要的變更,使目標工作區與來源同步。

來自 Fabric 入口網站的成功部署截圖。

部署配置

Fabric部署管線使用 DacFx 部署技術,並針對Fabric Data Warehouse量身打造配置。 這些配置確保部署能可靠成功,同時符合 Fabric 平台的能力與操作實務。

  • 可能的資料遺失封鎖(BlockOnPossibleDataLoss = true) - Fabric Data Warehouse 防止可能截斷、丟棄或遺失使用者資料的部署。 此設定防止高風險結構變更漏網,使資料遺失風險成為刻意決策,而非默認。

  • 跳過資料庫層級的選項腳本(ScriptDatabaseOptions = false)- Fabric 在平台層級管理許多資料庫層級設定。 像部署時的腳本敘述 ALTER DATABASE ... SET 可能導致失敗或意外的設定漂移。 因此,部署管線避免傳播這些設定,確保結構部署只聚焦於支援的倉庫物件。

  • 允許對複製物件進行引擎強制執行(DoNotAlterReplicatedObjects = false) — 倉庫通常使用內部複製機制,例如在連結或同步情境中。 部署管線讓 Fabric 引擎判斷是否允許變更,而非過早阻擋結構變更。 此方法防止不必要的部署失敗,同時保留平台安全防護。

  • 停用交易式 DDL 腳本IncludeTransactionalScripts = false() - 倉庫目前不支援在交易中包裝 DDL 腳本。 因此,部署管線會產生非交易腳本,以確保部署順利完成。

  • 使用智慧預設值進行結構演進(GenerateSmartDefaults = true) -當結構變更引入更嚴格的限制,例如將可空欄位轉換為不可空欄位或新增帶有預設約束的新欄位時,部署管線可自動填充基線值。 此方法有助於部署成功,無需手動準備資料,並減少結構演進中的操作摩擦。

  • 將安全主體排除於部署之外(ExcludeObjectTypes = Logins, Users, Permissions) - 安全物件會被刻意排除在倉庫部署之外。 跨環境推廣登入、使用者或權限可能會帶來安全風險或環境特定的衝突。 相反地,應透過環境治理或身份管理流程,分別管理存取控制。

  • 不丟棄不在來源的物件(DropObjectsNotInSource = false) - 存在於目標但不在來源的物件不會自動丟棄。 那些能讓生產與來源控制完美同步的倉庫,可能會覺得這很受限制。

Limitations

  • 預設情況下,系統會阻擋資料表的掉落。 部署過程不會自動丟棄目標中存在但來源中沒有的物件。 此設計減少意外資料遺失,並防止生產環境中意外移除。
  • 成功的部署並不代表所有申請的變更都被套用。 即使部署跳過了請求的丟棄表動作,也能回報成功,因為預設是封鎖的。 在這種情況下,部署操作會完成,但目標仍可能偏離原始碼控制,直到你明確解決缺失的變更。
  • 目前部署流程優先考量安全性,優先於嚴格的原始碼奇偶性,避免丟棄僅存在於目標中的物件。
  • Fabric 部署管線不支援 SQL 分析端點項目。
  • 跨項目相依、項目排序及 SQL 分析端點與倉庫間的同步缺口,影響 Fabric 部署管線的工作流程。
  • 不支援在部署管線中選取相關項目以Fabric Data Warehouse。

針對 Git 整合進行疑難排解

關於 Git 整合的具體限制,請參閱 Git 整合文章中的 「Git 整合 限制」。

關於故障排除、解決方法及Fabric Data Warehouse開發中常見 Git 整合問題的修復方法,請參見「故障排除 Git 整合 for Fabric Data Warehouse 開發」。