Azure Databricks 的優化建議

Azure Databricks 提供許多優化,可支援 Lakehouse 上的各種工作負載,範圍從大規模的 ETL 處理到臨機操作的互動式查詢。 其中許多優化都會自動進行。 您只需使用 Azure Databricks 即可獲得其優點。 此外,大部分的 Databricks 執行時間功能都需要 Delta Lake,這是用來在 Azure Databricks 中建立資料表的預設儲存層。

Azure Databricks 會設定預設值,以優化大部分的工作負載。 但在某些情況下,變更組態設定可改善效能。

Databricks 執行時間效能增強功能

注意

使用最新的 Databricks Runtime,利用最新的效能增強功能。 這裡記載的所有行為預設都會在 Databricks Runtime 10.4 LTS 和更新版本中啟用。

  • 磁片快取 會藉由將資料載入連結至計算叢集的磁片區,加速對 Parquet 資料檔案的重複讀取。
  • 動態檔案剪除 可略過不包含符合查詢述詞之資料檔案的目錄,以改善查詢效能。
  • 低隨機合併 可減少作業 MERGE 重寫的資料檔案數目,並減少重新產生 ZORDER 叢集的需求。
  • Apache Spark 3.0 引進 了自適性查詢執行,可為許多作業提供增強的效能。

增強效能的 Databricks 建議

  • 您可以在 Azure Databricks 上 複製 資料表,以建立來源資料集的深層或淺層複本。
  • 成本為基礎的優化器 會利用資料表統計資料來加速查詢效能。
  • 您可以使用 Spark SQL 與 半結構化 JSON 資料 互動,而不需剖析字串。
  • 較高順序的函式 可為許多沒有常見 Spark 運算子的作業提供內建、優化的效能。 較高順序的函式可提升使用者定義函式的效能優勢。
  • Azure Databricks 提供許多內建運算子和特殊語法來處理 複雜的資料類型,包括陣列、結構及 JSON 字串。
  • 您可以手動微調包含 範圍 或包含具有子實例扭曲之資料的聯 設定。

加入宣告行為

  • Azure Databricks 預設會提供可寫入的可序列化隔離保證;將 隔離等級 變更為可序列化可能會降低並行作業的輸送量,但可能需要讀取序列化時。
  • 您可以使用 bloom 篩選索引 來減少掃描不包含符合指定條件之記錄的資料檔案的可能性。