共用方式為


Azure Synapse Analytics 中的智慧型快取

智慧型快取可在幕後順暢地運作,並快取資料,以協助加速 Spark 的執行,因為它會從 ADLS Gen2 資料湖讀取。 它也會自動偵測基礎檔案的變更,並會自動重新整理快取中的檔案,提供您最新的資料,以及快取大小達到其限制時,快取會自動釋放最少的讀取資料,以便為最近的資料提供空間。 這項功能可降低擁有權總成本,方法是在儲存在 Parquet 檔案可用快取中之檔案的後續讀取上,提高高達 65% 的效能,以及 CSV 檔案的 50%。

從資料湖查詢檔案或資料表時,Synapse 中的 Apache Spark 引擎會呼叫遠端 ADLS Gen2 儲存體以讀取基礎檔案。 透過每個查詢要求來讀取相同的資料,Spark 引擎必須呼叫遠端 ADLS Gen2 儲存體。 此備援進程會增加處理時間總計的延遲。 Spark 提供快取功能,您必須手動設定快取並釋放快取,以將延遲降到最低,並改善整體效能。 不過,如果基礎資料變更,這可能會導致結果有過時的資料。

Synapse Intelligent Cache 可自動快取每個 Spark 節點上配置快取儲存空間內的讀取,藉此簡化此程式。 每個檔案要求都會檢查檔案是否存在於快取中,並比較來自遠端儲存體的標籤,以判斷檔案是否過時。 如果檔案不存在,或檔案過時,Spark 會讀取檔案並將它儲存在快取中。 當快取滿時,具有最舊上次存取時間的檔案將會從快取收回,以允許較新的檔案。

Synapse 快取是每個節點的單一快取。 如果您使用中型節點,並在單一中型節點上搭配兩個小型執行程式執行,這兩個執行程式會共用相同的快取。

啟用或停用快取

您可以根據每個 Apache Spark 集區可用的磁片大小總計百分比來調整快取大小。 根據預設,快取會設定為停用,但就像將滑杆 列從 0(已停用)移至快取大小啟用所需的百分比一樣 簡單。 我們至少為數據隨機保留 20% 的可用磁碟空間。 針對大量隨機工作負載,您可以將快取大小降到最低或停用快取。 建議您從 50% 快取大小開始,並視需要進行調整。 請務必注意,如果您的工作負載需要本機 SSD 上的大量磁碟空間來進行隨機或 RDD 快取,請考慮減少快取大小,以減少因儲存體不足而失敗的機會。 可用儲存體的實際大小和每個節點上的快取大小將取決於節點系列和節點大小。

啟用新 Spark 集區的快取

建立新的 Spark 集區時,請在 [其他設定 ] 索引標籤下 流覽,以尋找 [智慧型快取] 滑杆 ,您可以移至您慣用的大小來啟用此功能。

How to enable Intelligent Cache during new Spark pools creation

啟用/停用現有 Spark 集區的快取

針對現有的 Spark 集區,流覽至 所選 Apache Spark 集區的 [調整 設定] 以啟用、將滑杆移至 值超過 0 或將其停用,方法是將滑 移至 0。

How to enable or disable Intelligent Cache for existing Spark pools

變更現有 Spark 集區的快取大小

若要變更集區的智慧型快取大小,如果集區有作用中的會話,您必須強制重新開機。 如果 Spark 集區有作用中的會話,則會顯示 [強制新設定 ]。 按一下核取方塊, 然後選取 [套用 ] 以自動重新開機 會話。

Force restarting a session after changing Intelligent Cache setting

啟用和停用會話內的快取

在筆記本中執行下列程式碼,輕鬆停用會話內的智慧型快取:

   %spark 

   spark.conf.set("spark.synapse.vegas.useCache", "false") 
   %pyspark 

   spark.conf.set('spark.synapse.vegas.useCache', 'false') 

並藉由執行下列專案來啟用:

   %spark 

   spark.conf.set("spark.synapse.vegas.useCache", "true") 
   %pyspark 

   spark.conf.set('spark.synapse.vegas.useCache', 'true') 

何時使用智慧型快取,何時不使用?

如果下列專案,這項功能將有利於您:

  • 您的工作負載需要多次讀取相同的檔案,而且檔案大小可以放入快取中。

  • 您的工作負載使用 Delta 資料表、parquet 檔案格式和 CSV 檔案。

  • 您在 Azure Synapse 上使用 Apache Spark 3 或更高版本。

如果下列情況,您將不會看到這項功能的優點:

  • 您正在讀取超過快取大小的檔案,因為檔案的開頭可能會收回,後續查詢必須從遠端儲存體重新整理資料。 在此情況下,您不會看到智慧型快取的任何優點,而且您可能想要增加快取大小和/或節點大小。

  • 您的工作負載需要大量隨機顯示,然後停用 Intelligent Cache 會釋出可用空間,以防止您的作業因為儲存空間不足而失敗。

  • 您使用的是 Spark 3.1 集區,您必須將集區升級至最新版本的 Spark。

深入了解

若要深入瞭解 Apache Spark,請參閱下列文章:

若要瞭解如何設定 Spark 會話設定

下一步

Apache Spark 集區提供開放原始碼巨量資料計算功能,可在其中載入、模型化、處理和散發資料,以更快速地分析深入解析。 若要深入瞭解如何建立以執行 Spark 工作負載的工作負載,請流覽下列教學課程: