網狀架構數據倉儲中的快取
適用於: Microsoft Fabric 中的 SQL 分析端點和倉儲
從 Data Lake 擷取數據對於查詢效能具有重大影響的重要輸入/輸出 (IO) 作業。 在 Microsoft Fabric 中,Synapse 數據倉儲採用精簡的存取模式,以增強從記憶體讀取的數據,並提升查詢執行速度。 此外,它會利用本機快取,以智慧方式將遠端記憶體讀取的需求降到最低。
快取是一種技術,可藉由減少IO作業來改善數據處理應用程式的效能。 快取會將經常存取的數據和元數據儲存在較快的儲存層中,例如本機記憶體或本機 SSD 磁碟,以便直接從快取更快速地提供後續要求。 如果查詢先前已存取特定數據集,則任何後續查詢都會直接從記憶體內部快取擷取該數據。 相較於從遠端記憶體擷取數據,這種方法會大幅降低 IO 延遲,因為相較於從遠端記憶體擷取數據,本機記憶體作業的速度更快。
快取對使用者完全透明。 不論原點為何,無論是倉儲數據表、OneLake 快捷方式,還是參考非 Azure 服務的 OneLake 快捷方式,查詢都會快取其存取的所有數據。
本文稍後會說明兩種類型的快取:
- 記憶體內部快取
- 磁碟快取
記憶體內部快取
當查詢從記憶體存取和擷取數據時,它會執行轉換程式,將原始檔案格式中的數據轉碼為記憶體內部快取中高度優化的結構。
快取中的數據會以針對分析查詢優化的壓縮數據行格式來組織。 每個數據行會一起儲存在一起,與其他數據行分開,以提供更好的壓縮,因為類似的數據值會一起儲存在一起,因而降低記憶體使用量。 當查詢需要在匯總或篩選等特定數據行上執行作業時,引擎可以更有效率地運作,因為它不需要處理來自其他數據行的不必要數據。
此外,此單欄式記憶體也有利於平行處理,這可大幅加快大型數據集的查詢執行速度。 引擎可以同時對多個數據行執行作業,並利用新式多核心處理器。
這種方法特別適用於分析工作負載,其中查詢牽涉到掃描大量數據來執行匯總、篩選和其他數據操作。
磁碟快取
某些數據集太大,無法容納在記憶體內部快取內。 為了維持這些數據集的快速查詢效能,Warehouse 會利用磁碟空間作為記憶體內部快取的補充擴充功能。 載入記憶體內部快取的任何資訊也會串行化為 SSD 快取。
假設記憶體內部快取的容量比 SSD 快取還小,從記憶體內部快取中移除的數據會持續長時間保留在 SSD 快取內。 當後續查詢要求此數據時,它會以比從遠端記憶體擷取的快取快,從 SSD 快取擷取到記憶體內部快取,最終提供更一致的查詢效能。
快取管理
快取會保持一致的作用中,並在背景順暢地運作,因此不需要介入您的部分。 不需要停用快取,因為這樣做不可避免地會導致查詢效能明顯惡化。
快取機制是由 Microsoft Fabric 本身協調並維持,而且它不會為使用者提供手動清除快取的功能。
完整快取交易一致性可確保對記憶體中數據所做的任何修改,例如透過資料操作語言 (DML) 作業,在一開始載入記憶體內部快取之後,將會產生一致的數據。
當快取達到其容量閾值,且第一次讀取新的數據時,將會從快取中移除長時間未使用的物件。 此程式是為了建立新數據湧入的空間,並維護最佳的快取使用率策略。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應