Azure Databricks 上的優化建議
Azure Databricks 提供許多優化,可支援 Lakehouse 上的各種工作負載,範圍從大規模的 ETL 處理到臨機操作互動式查詢。 其中許多優化都會自動進行。 您只需使用 Azure Databricks 即可 get 其優點。 此外,大部分的 Databricks 執行時間功能都需要 Delta Lake,這是 Azure Databricks 中用來建立 tables 的預設格式。
Azure Databricks 會設定預設 values,以處理大多數工作負載的 optimize。 但在某些情況下,變更組態設定可改善效能。
Databricks 運行時間效能增強功能
注意
使用最新的 Databricks Runtime 來利用最新的效能增強功能。 這裡記載的所有行為預設都會在 Databricks Runtime 10.4 LTS 和更新版本中啟用。
- 磁碟快取 將數據載入至連接至計算叢集的磁碟 volumes,加速對 Parquet 資料檔的重複讀取。
- 動態檔案剪除 會略過不包含符合查詢述詞之數據文件的目錄,以改善查詢效能。
-
低隨機合併 可減少作業重寫
MERGE
的數據檔數目,並減少重新調整ZORDER
叢集的需求。 - Apache Spark 3.0 引進調 適型查詢執行,可為許多作業提供增強的效能。
增強效能的 Databricks 建議
- 您可以在 Azure Databricks 上 複製tables,以建立來源數據集的深層或淺層複本。
- 以成本為基礎的 優化器 利用 table 統計數據來加速查詢效能。
- 您可以使用 Spark SQL 與 JSON 字串互動, 而不剖析字串。
- 較高順序的函式 可為沒有常見Spark運算符的許多作業,提供內建的優化效能。 較高順序的函式比用戶定義的函式提供效能優勢。
- Azure Databricks 提供許多內建運算符和特殊語法,以處理 複雜的數據類型,包括陣列、結構及 JSON 字串。
- 您可以手動調整範圍聯結的設定。 請參閱 範圍 join 優化。
選擇加入行為
- Azure Databricks 預設會提供可寫入串行化隔離保證;將隔離等級變更為可串行化可減少並行作業的輸送量,但可能需要讀取串行化時。
- 您可以使用 bloom 篩選索引 來減少掃描未包含符合指定條件之記錄的數據檔的可能性。