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 篩選索引 來減少掃描未包含符合指定條件之記錄的數據檔的可能性。