Databricks上的優化和性能建議

Databricks提供了許多優化,支持lakehouse上的各種工作負載,從大規模ETL處理到特別的交互式查詢。其中許多優化都是自動進行的。你隻要使用Databricks就能得到他們的好處。此外,大多數Databricks運行時特性需要Delta Lake,這是用於在Databricks中創建表的默認存儲層。

Databricks配置默認值以優化大多數工作負載。但是,在某些情況下,更改配置設置可以提高性能。

Databricks運行時性能增強

請注意

使用最新的Databricks運行時,以利用最新的性能增強。這裏記錄的所有行為在Databricks Runtime 10.4 LTS及以上版本中默認啟用。

  • 磁盤緩存通過將數據加載到附加到計算集群的磁盤卷,加速對Parquet數據文件的重複讀取。

  • 動態文件修剪跳過不包含與查詢謂詞匹配的數據文件的目錄,從而提高查詢性能。

  • 低洗牌合並減少重寫數據文件的數量合並操作和減少需要再計算ZORDER集群。

  • Apache Spark 3.0引入自適應查詢執行,為許多操作提供了增強的性能。

提高性能的Databricks建議

  • 你可以克隆在Databricks上創建源數據集的深度或淺拷貝。

  • 基於成本的優化器利用表統計信息提高查詢性能。

  • 你可以自動優化Delta表使用優化的寫入和自動文件壓縮;這對於長時間運行的結構化流作業特別有用。

  • 高階函數為許多沒有通用Spark操作符的操作提供內置的優化性能。高階函數的性能優於用戶自定義函數。

  • Databricks提供了許多內置操作符和特殊語法複雜數據類型,包括數組、結構體和JSON字符串。

  • 可以手動調優包含的連接的設置範圍或含有數據與實質

選擇行為

  • Databricks默認提供了可寫序列化的隔離保證;改變了隔離級別可串行化可以降低並發操作的吞吐量,但在需要讀可串行化時可能是必要的。

  • 你可以使用布盧姆濾波指數減少掃描不包含與給定條件匹配的記錄的數據文件的可能性。