共用方式為


網狀架構數據倉儲中的快取

適用於: Microsoft Fabric 中的 SQL 分析端點和倉儲

從 Data Lake 擷取數據對於查詢效能具有重大影響的重要輸入/輸出 (IO) 作業。 在 Microsoft Fabric 中,Synapse 數據倉儲採用精簡的存取模式,以增強從記憶體讀取的數據,並提升查詢執行速度。 此外,它會利用本機快取,以智慧方式將遠端記憶體讀取的需求降到最低。

快取是一種技術,可藉由減少IO作業來改善數據處理應用程式的效能。 快取會將經常存取的數據和元數據儲存在較快的儲存層中,例如本機記憶體或本機 SSD 磁碟,以便直接從快取更快速地提供後續要求。 如果查詢先前已存取特定數據集,則任何後續查詢都會直接從記憶體內部快取擷取該數據。 相較於從遠端記憶體擷取數據,這種方法會大幅降低 IO 延遲,因為相較於從遠端記憶體擷取數據,本機記憶體作業的速度更快。

快取對使用者完全透明。 不論原點為何,無論是倉儲數據表、OneLake 快捷方式,還是參考非 Azure 服務的 OneLake 快捷方式,查詢都會快取其存取的所有數據。

本文稍後會說明兩種類型的快取:

  • 記憶體內部快取
  • 磁碟快取

記憶體內部快取

當查詢從記憶體存取和擷取數據時,它會執行轉換程式,將原始檔案格式中的數據轉碼為記憶體內部快取中高度優化的結構。

顯示記憶體內部快取填入方式的圖表。

快取中的數據會以針對分析查詢優化的壓縮數據行格式來組織。 每個數據行會一起儲存在一起,與其他數據行分開,以提供更好的壓縮,因為類似的數據值會一起儲存在一起,因而降低記憶體使用量。 當查詢需要在匯總或篩選等特定數據行上執行作業時,引擎可以更有效率地運作,因為它不需要處理來自其他數據行的不必要數據。

此外,此單欄式記憶體也有利於平行處理,這可大幅加快大型數據集的查詢執行速度。 引擎可以同時對多個數據行執行作業,並利用新式多核心處理器。

這種方法特別適用於分析工作負載,其中查詢牽涉到掃描大量數據來執行匯總、篩選和其他數據操作。

磁碟快取

某些數據集太大,無法容納在記憶體內部快取內。 為了維持這些數據集的快速查詢效能,Warehouse 會利用磁碟空間作為記憶體內部快取的補充擴充功能。 載入記憶體內部快取的任何資訊也會串行化為 SSD 快取。

顯示記憶體內部快取和 SSD 快取填入方式的圖表。

假設記憶體內部快取的容量比 SSD 快取還小,從記憶體內部快取中移除的數據會持續長時間保留在 SSD 快取內。 當後續查詢要求此數據時,它會以比從遠端記憶體擷取的快取快,從 SSD 快取擷取到記憶體內部快取,最終提供更一致的查詢效能。

顯示記憶體內部快取如何從 SSD 快取填入的圖表。

快取管理

快取會保持一致的作用中,並在背景順暢地運作,因此不需要介入您的部分。 不需要停用快取,因為這樣做不可避免地會導致查詢效能明顯惡化。

快取機制是由 Microsoft Fabric 本身協調並維持,而且它不會為使用者提供手動清除快取的功能。

完整快取交易一致性可確保對記憶體中數據所做的任何修改,例如透過資料操作語言 (DML) 作業,在一開始載入記憶體內部快取之後,將會產生一致的數據。

當快取達到其容量閾值,且第一次讀取新的數據時,將會從快取中移除長時間未使用的物件。 此程式是為了建立新數據湧入的空間,並維護最佳的快取使用率策略。