選擇儲存模式
Microsoft Fabric 中任何語意模型的首要設計決策是資料如何流入模型。 您選擇的儲存模式會影響查詢效能、資料新鮮度,以及可用的 Fabric 功能。 在 Fabric 中,Direct Lake 是預設選項,對大多數工作負載來說是正確的選擇。
Direct Lake 模式
Direct Lake 是 Microsoft Fabric 中建立語意模型的預設儲存模式。 與匯入模式不同,Direct Lake 不會將資料複製到模型中。 與 DirectQuery 不同的是,它不會將查詢轉換成原始 SQL。 相反地,Direct Lake 直接從 OneLake 讀取 Delta 資料表到記憶體,結合了匯入的速度與 DirectQuery 的新鮮度。
當使用者開啟以 Direct Lake 語意模型為後盾的報告時,引擎會按需載入 Delta Parquet 檔案的欄位資料。 您不需要像使用匯入模式一樣排程重新整理。 當底層的 Delta 表格更新時,模型會反映這些變更。
Direct Lake 模型會自動啟用大型語意模型儲存格式。 此設定取消了 10 GB 模型大小限制,且是查詢擴展與 XMLA 端點讀寫存取的前提條件。 Direct Lake 模型不需要手動啟用。
湖泊直連選項
Direct Lake 模型可透過兩條路徑連接資料:
- OneLake 表格:該模型直接連接到湖屋或倉庫中的 Delta 表格。 這是最簡單的路徑,當你的資料集中在單一 Fabric 資料庫時效果很好。
- SQL 分析端點:模型透過湖屋或倉庫的 SQL 端點連接。 此路徑允許存取檢視、跨資料庫查詢及 SQL 層定義的安全特性。
當你的資料清晰且集中在一處時,選擇 OneLake 表格。 當你需要檢視、跨來源連接或 SQL 定義的列級安全性時,選擇 SQL 分析端點。
回退行為
某些操作可能導致 Direct Lake 模型退回到 DirectQuery 模式。 複雜的 DAX 計算、超出可用記憶體的查詢,或某些不支援的操作會觸發此備援。 當進行備援時,查詢會針對 SQL 分析端點執行,而非直接讀取 Delta 檔案。
你可以在語意模型設定中設定備援行為:
- 允許備援:無法在 Direct Lake 模式下執行的查詢會自動退回 DirectQuery。 使用者雖然有結果,但效能可能會下降。
- 不允許備援:無法在 Direct Lake 模式下執行的查詢會回傳錯誤。 此選項能強制效能一致,但要求所有查詢都必須在 Direct Lake 的範圍內。
對於大多數生產工作負載,先啟用回退機制,並監控哪些查詢會觸發該機制。 接著優化這些查詢或資料結構,隨著時間降低備援頻率。
匯入模式
匯入模式將資料複製到語意模型中,並以壓縮後的記憶體格式儲存。 查詢會針對本地副本執行,因此匯入是查詢效能最快的儲存模式。 然而,資料的更新僅與上次刷新相同。
匯入模式在以下情況下是正確的選擇:
- 你的資料來源在 Fabric 之外(本地資料庫、第三方 API、平面檔案)。
- 查詢效能是首要考量,且不要求接近即時的新鮮度。
- 你需要的是 Direct Lake 尚未支援的功能。
提示
使用匯入模式時,請連接視圖而非原始資料表,僅包含必要的欄位,並使用適當的資料型態以縮小模型大小。 了解更多 減少匯入模型數據量的技巧。
DirectQuery 模式
DirectQuery 會在查詢時直接向資料來源發送查詢。 模型中不儲存任何資料,使 DirectQuery 適合即時資料情境及無法匯入的大型資料集。
取而代之的是效能。 每次報告互動都會產生針對來源系統的查詢。 DirectQuery 在以下情況下運作最佳:
- 需要即時資料,甚至短暫的刷新延遲也不可接受。
- 來源資料量太大無法匯入,且資料來源位於 Fabric 外部。
- 治理要求必須將資料留在原始來源。
提示
欲了解更多資訊,請參閱 DirectQuery 模型指引。
複合模式
複合模式將多種儲存模式合併在同一型號內。 有些資料表使用 Import,而有些則使用 DirectQuery 或 Direct Lake。 這在不同資料表有不同效能與新鮮度需求的情境下,提供了彈性。
例如,一個大型事實表可能會保留在 Direct Lake 中,而來自外部來源的小型參考表則可能使用匯入方式。 複合模式也允許來自不同資料來源的資料表之間建立多對多的關係。
在以下情況下使用複合模式:
- 你需要在同一模型中同時取得 Fabric 與非 Fabric 來源的資料。
- 有些資料表需要即時資料,而另一些則受益於快取效能。
- 你需要將 Direct Lake 表格和 Import 表格結合,以便跨來源分析。
選擇正確的儲存模式
下表總結了選擇每種模式的時機:
| 模式 | 資料定位 | 查詢速度 | 數據新鮮度 | 最適合用於 |
|---|---|---|---|---|
| Direct Lake | OneLake (Delta 資料表) | 快點 | 近乎實時 | Fabric 原生工作負載(預設) |
| 匯入 | 模型內快取 | 最快 | 依刷新而定 | 非 Fabric 來源,最高效能 |
| DirectQuery | 來源系統 | 這取決於來源系統 | 近乎實時 | 即時需求,非常龐大的外部資料 |
| 複合 | Mixed | 情況不一 | Mixed | 跨來源情境,混合需求 |
儲存模式也會影響 AI 的消費。 當 Copilot 或資料代理查詢語意模型時,他們會根據模型目前反映的資料回傳答案。 Direct Lake 幾乎即時的新鮮度意味著 AI 查詢能即時回傳最新結果,無需等待排定的刷新。 對於同時服務人類與 AI 的模型,儲存模式的選擇直接影響兩者的體驗品質。
在 Fabric 裡,從 Direct Lake 開始。 只有在特定情境需要時才切換到其他模式。