本頁列出 Snowflake 的 Microsoft Fabric 鏡像資料庫目前的限制。 此頁面可能會變更。
連線與認證限制
- 下表列出 Snowflake 鏡像支援的驗證方法:
| 驗證方法 | 支持 | 註釋 |
|---|---|---|
| 使用者名稱與密碼 | Yes | Snowflake 原生驗證 |
| Microsoft Entra ID (SSO) | Yes | 透過 Entra ID 進行單一登入 |
| 金鑰組驗證 | Yes | 服務帳號情境下的 RSA 金鑰對 |
| 工作區身分識別 | No | 目前不支援 Snowflake |
Snowflake 鏡像目前不支援工作區身分識別。 它只支援特定來源,例如 SharePoint。
Fabric 工作區與 Snowflake 之間的 Private Link 連線尚未啟用。 在此期間,使用虛擬網路資料閘道或本地資料閘道來進行私人連線。
你必須將分享對象加入至工作區。 要分享資料集或報告,首先需要將管理員、成員、讀者或貢獻者角色的存取權限新增至工作區。
大小寫區分:所有 Snowflake 識別碼——包括倉庫名稱、資料庫名稱、結構名稱、資料表名稱及檢視名稱——在設定鏡像連線及使用鏡像 REST API 時均有大小寫區分。 你在 Fabric 輸入的外殼必須完全符合 Snowflake 裡的設定。 外殼不匹配可能導致連線失敗或資料表無法複製,且常常沒有描述性錯誤訊息。 例如,如果你的 Snowflake 倉庫名稱是 ANALYTICS_WH,你必須在 Fabric 連線中輸入ANALYTICS_WH,而不是analytics_wh。
支援的物件類型
- 下表列出支援鏡像的 Snowflake 物件類型:
| 物件類型 | 支持 | 註釋 |
|---|---|---|
| 受管理的資料表 | Yes | 完全支援複製 |
| Iceberg 資料表 | Yes | 需要與底層 Iceberg 資料表儲存建立儲存連結。 只有透過同一儲存連線可存取的 Iceberg 表格才能被鏡像在一起。 |
| Views | Yes | 支援每 12 小時同步一次 |
| 具現化檢視 | Yes | 支援每 12 小時同步一次 |
| 外部數據表 | No | 不支援 |
| 瞬態表 | No | 不支援 |
| 暫存資料表 | No | 不支援 |
| 動態表格 | No | 不支援 |
複製與資料限制
- 如果來源資料表沒有更新,複製引擎會開始減退,該資料表的持續時間呈指數增加,最長可達一小時。 如果發生暫態錯誤,導致資料無法更新,也會發生同樣的情況。 複製器引擎會在偵測到更新的資料後自動恢復定期輪詢。
- 來源結構層次會複製到鏡像資料庫。 針對在啟用此功能之前建立的鏡像資料庫,來源架構會扁平化,並將架構名稱編碼為數據表名稱。 如果您想要使用架構重新組織數據表,請重新建立鏡像資料庫。 從 復寫來源架構階層深入瞭解。
- 鏡像支持複製包含空格或特殊字元的欄位名稱(例如
,;{}()\n\t=的欄位)。 針對在啟用此功能之前處於復寫狀態的數據表,您必須更新鏡像資料庫設定或重新啟動鏡像,以納入這些欄位。 從 Delta 欄位對應支援深入瞭解。 - Fabric 中最多可鏡像的表格數量為 1,000 個。 目前超過 1000 個限制的表格無法複製。
- 如果您在設定鏡像時選擇「鏡像所有資料」,那麼將要鏡像的資料表會是根據以下規則決定:首先,將所有資料表按照架構名稱排序,其次再依據資料表名稱排序,然後選擇排在前 1,000 個的資料表。 字母順序列表底部剩下的表格不會被同步。
- 如果你取消選擇「 鏡像所有資料 」並選擇單一資料表,就會被阻止選取超過 1,000 個資料表。
- 計算欄位與計算資料表:鏡像資料庫為唯讀。 你無法直接在鏡像資料庫上建立計算欄位或計算表。 要新增計算欄位,建立一個 Lakehouse,並使用捷徑參考鏡像資料,然後用筆記本或 SQL 在 Lakehouse 中建立計算欄位。
效能限制
- 如果要變更大型資料表中的大部分資料,停止並重新啟動 Mirroring 會更有效率。 插入或更新數十億筆記錄可能需要很長時間。
- 有些結構變更不會立即反映出來。 有些結構變更需要先進行資料變更(插入、更新或刪除),才能將結構變更複製到 Fabric。
- 跨區域考量:若 Snowflake 實例與 Fabric 容量位於不同雲端區域,可能會增加複寫延遲及資料出口費用。 為了達到最佳效能並避免跨區域的撤離成本,建議將 Fabric 容量部署在與 Snowflake 實例相同的雲端區域。 如果無法避免跨區域部署,請考慮 Snowflake 和/或 Azure 提供的額外出口費用。 詳情請參閱 Snowflake 輸出說明文件。
- 當將 Snowflake 的資料鏡像到客戶的 OneLake 時,此程序通常會透過內嵌 URL 暫存資料,以提升效能。 如果 Snowflake 帳戶層級參數 PREVENT_UNLOAD_TO_INLINE_URL 設為 true,則適用以下行為:
| 連線方法 | 當 PREVENT_UNLOAD_TO_INLINE_URL = true 時的影響 |
|---|---|
| Direct(公共端點) | 鏡像會退回為直接從 Snowflake 讀取。 這種備用方式導致複製時間變慢,連線逾時風險增加,尤其對大型資料集而言。 |
| 虛擬網路(VNet)資料閘道 | 鏡像輸出已被完全封鎖。 VNet 閘道器場景無法使用直接讀取,且需要內嵌 URL 暫存路徑。 |
| 本地資料閘道(OPDG) | 鏡像功能已被完全封鎖。 OPDG 的情境無法使用直接讀取,且需要內嵌 URL 暫存路徑。 |
計畫中的解決方案:儲存整合支援正在開發中,當 PREVENT_UNLOAD_TO_INLINE_URL 設定為 true 時,將提供可行的替代暫存路徑。 此解決方案可排除 VNet 和 OPDG 情境中的限制。 請查看此頁面以獲取供應資訊的最新資訊。
-
重新植入行為: 重新植入是將整個資料表的資料完整重新載入。 與增量同步(僅處理已變更的資料列)不同,重新植入會重新讀取並重新寫入資料表中的所有資料。 重新植入資料可能會產生相當高的 Snowflake 運算成本,尤其是大型資料表。
- 什麼情況會觸發重新植入:
| Trigger | Description |
|---|---|
| 資料定義語言 (DDL) 變更 | 任何會修改資料表 DDL 時間戳記的 DDL 變更,都會觸發重新植入。 此觸發器包含 ALTER TABLE 語句,用於新增、刪除或重命名欄位、變更資料型態或修改資料表屬性。 |
| 架構修改工具(例如,DBT) | 如果像 DBT 這樣的工具依週期性排程修改資料表定義(例如透過 dbt run 卸除後重建資料表),每次修改都會觸發一次重新植入。 頻繁執行這些工具(例如每隔幾分鐘)可能會導致持續的重播循環。 |
| 停止與重啟鏡像 | 每次停止並重新啟動鏡像時,整個資料表都會從頭開始重新擷取。 |
| 延長容量暫停 | 如果 Fabric 容量暫停過久,鏡像處理在恢復後可能會從頭重新植入。 請參見 Fabric 容量的變更。 |
- 避免不必要的重新植入種子的最佳做法:
- 在主動鏡像之外排程結構變更。 如果您使用 DBT 或其他結構描述管理工具,請將其安排在維護時段執行,或在執行結構描述變更前先暫停鏡像處理。
- 避免頻繁修改 DDL。 將結構變更合併成較少且較大的批次,而不是在一天中逐步進行。
- 監控是否發生非預期的重新植入。 在 鏡像狀態頁 上,留意持續顯示初始複製狀態的資料表。 如果大型資料表每隔幾分鐘就重新植入,請檢查上游是否有 DDL 變更。
- 請注意費用影響。 重新種入一個 2.26 億列(~26.5 GB)的表格需要大量計算時間。 將此成本乘以結構變更的頻率,以估算成本影響。
安全性限制
- Fabric 不會複製 Snowflake 的資料列層級安全性 (RLS) 和資料行層級安全性 (CLS) 原則。 你必須在 Fabric 中手動重新設定等效的安全政策。
- 必須將共享收件人加入工作區。 要分享資料集或報告,首先需要將管理員、成員、讀者或貢獻者角色的存取權限新增至工作區。
成本與帳單考量
為了降低 Snowflake 因鏡像而產生的運算成本,請參考以下最佳實務:
- 重複利用現有倉庫。 與其建立專門的鏡像倉庫,不如設定鏡像使用你應用程式已經用來更新來源資料表的同一個倉庫。 此方法避免了不必要的倉庫喚醒與自動暫停循環。 當您的應用程式更新資料表時,鏡像複寫程式幾乎會立即擷取變更,而此時倉儲仍維持運作,因此無需喚醒另一個獨立的倉儲。 有些組織可能偏好專用倉庫以節省預算。 這個選擇是在節省成本與預算細緻度之間取得取捨。
- 只鏡像您需要的資料表。 將整個資料庫設為鏡像,可能導致 Snowflake 使用量異常偏高,以及 Fabric 容量使用量暴增。 首先只選擇分析情境所需的表格。 你也可以在需要時再加表格。
- 監視是否出現未預期的重新播種。 重新植入(完整資料重新載入)會處理整個資料表,並產生與資料表大小成正比的運算成本。 結構變更——包括由DBT等工具觸發的變更——都可能導致持續的重種。 請監控鏡像狀態 頁面,尋找顯示重複初始複製行為的資料表,並檢視重播部分以了解觸發器及故障排除指引。
- 請注意,鏡像作業會持續進行。 鏡像目前不支援排程或複製視窗。 複製器會持續輪詢是否有變更,因此會持續產生 Snowflake 的運算資源用量。 請合理規劃你的 Snowflake 預算。
支援的區域
資料庫鏡像與開放鏡像在所有 Microsoft Fabric 區域皆可使用。 如需詳細資訊,請參閱 Fabric 區域可用性。
相關內容
- 什麼是 Fabric 中的鏡像?
- 鏡像雪花
教學:從 Snowflake 設定 Microsoft Fabric 的鏡像資料庫