Microsoft Fabric 中的智慧型手機快取
智慧型快取會在背景流暢地運作和快取資料功能,協助在 Apache Spark 透過捷徑從 OneLake 或 Azure Data Lake Storage (ADLS) Gen2 儲存體中讀取資料時,加快 Microsoft Fabric 內 Spark 工作的執行速度。 智慧型快取也會自動偵測對基礎檔案的變更,並自動在快取中重新整理檔案,以提供您最新的資料。 當快取大小達到上限時,快取會自動釋出最少讀取的資料,為更新的資料騰出空間。 此功能將儲存在可用快取中的檔案的後續讀取效能提高高達 60%,從而降低了總擁有成本。
當 Microsoft Fabric 中的 Apache Spark 引擎從您的 Lakehouse 查詢檔案或資料表時,它會呼叫遠端儲存體來讀取基礎檔案。 每次讀取相同資料的查詢要求時,Spark 引擎都必須每次呼叫遠端儲存體。 此備援進程會增加處理時間總計的延遲。 Spark 具有快取需求,您必須手動設定和釋放快取,以將延遲降到最低,並改善整體效能。 不過,如果基礎資料變更,這項需求可能會導致過時的資料。
智慧型手機快取可藉由在 SSD 中快取資料檔的每個 Spark 節點上,自動快取配置快取儲存空間內的每個讀取,來簡化此程式。 每個檔案要求都會檢查檔案是否存在於本機節點快取中,並比較來自遠端儲存體的標籤,以判斷檔案是否過時。 如果檔案不存在或檔案過時,Spark 會讀取檔案並將它儲存在快取中。 當快取滿時,具有最舊上次存取時間的檔案會從快取收回,以允許較新的檔案。
智慧型手機快取是每個節點的單一快取。 如果您使用中型節點,並在該單一節點上搭配兩個小型執行程序執行,則兩個執行程式會共用相同的快取。 此外,此資料檔層級快取可讓多個查詢在存取相同的資料或資料檔時使用相同的快取。
運作方式
在 Microsoft Fabric(Runtime 1.1 和 1.2),智慧型快取預設會針對所有快取大小為 50% 的工作區啟用智慧型手機快取。 可用儲存體的實際大小和每個節點上的快取大小取決於節點系列和節點大小。
使用智慧型手機快取的時機
如果下列項目,這項功能會為您帶來好處:
您的工作負載需要多次讀取相同的檔案,且檔案大小符合快取。
您的工作負載會使用 Delta Lake 資料表、Parquet 或 CSV 檔格式。
如果下列情況,您看不到智慧型手機快取的優點:
您正在讀取超過快取大小的檔案。 如果是,可以收回檔案的開頭,後續查詢必須從遠端儲存體重新整理資料。 在此情況下,您看不到智慧型手機快取的任何優點,而且您可能想要增加快取大小和/或節點大小。
您的工作負載需要大量的隨機顯示。 停用智慧型手機快取可釋出可用空間,以防止您的作業因為儲存空間不足而失敗。
啟用和停用智慧型手機快取
您可以在筆記本中執行下列程式碼,或在工作區或環境項目層級設定此設定,以停用或啟用工作階段內的智慧型手機快取。
spark.conf.set("spark.synapse.vegas.useCache", "false/true")