Rekomendasi pengoptimalan pada Azure Databricks

Azure Databricks menyediakan banyak pengoptimalan yang mendukung berbagai beban kerja di lakehouse, mulai dari pemrosesan ETL skala besar hingga kueri interaktif ad-hoc. Banyak pengoptimalan ini berlangsung secara otomatis. Anda mendapatkan manfaatnya hanya dengan menggunakan Azure Databricks. Selain itu, sebagian besar fitur Databricks Runtime memerlukan Delta Lake, format default yang digunakan untuk membuat tabel di Azure Databricks.

Azure Databricks mengonfigurasi nilai default yang mengoptimalkan sebagian besar beban kerja. Namun, dalam beberapa kasus, mengubah pengaturan konfigurasi akan meningkatkan performa.

Peningkatan performa Databricks Runtime

Catatan

Gunakan Databricks Runtime terbaru untuk memanfaatkan peningkatan performa terbaru. Semua perilaku yang didokumenkan di sini diaktifkan secara default di Databricks Runtime 10.4 LTS ke atas.

  • Penyimpanan sementara disk mempercepat pembacaan berulang pada file data Parquet dengan memuat data ke volume disk yang terpasang pada kluster komputasi yang terhubung.
  • Pemangkasan file dinamis meningkatkan performa kueri dengan melewati direktori yang tidak berisi file data yang cocok dengan predikat kueri.
  • Penggabungan shuffle rendah mengurangi jumlah file data yang ditulis ulang oleh operasi MERGE dan mengurangi kebutuhan untuk menjalankan OPTIMIZE kembali setelah penggabungan.
  • Apache Spark 3.0 memperkenalkan eksekusi kueri adaptif, yang memberikan performa yang ditingkatkan untuk banyak operasi.

Rekomendasi Databricks untuk peningkatan performa

  • Anda dapat mengkloning tabel di Azure Databricks untuk membuat salinan mendalam atau dangkal dari himpunan data sumber.
  • Pengoptimal berbasis biaya mempercepat performa kueri dengan memanfaatkan statistik tabel.
  • Anda dapat menggunakan Spark SQL untuk berinteraksi dengan string JSON tanpa mengurai string.
  • Fungsi tingkat tinggi menyediakan performa bawaan yang dioptimalkan untuk banyak operasi yang tidak memiliki operator Spark umum. Fungsi tingkat tinggi memberikan keuntungan kinerja dibandingkan fungsi yang didefinisikan pengguna.
  • Azure Databricks menyediakan sejumlah operator bawaan dan sintaksis khusus untuk bekerja dengan jenis data complex, termasuk array, struct, dan string JSON.
  • Anda dapat menyetel pengaturan secara manual untuk penggabungan rentang. Lihat pengoptimalan penggabungan Rentang .

Perilaku keikutsertaan

  • Azure Databricks memberikan jaminan isolasi penulisan yang dapat diserialisasi secara default; mengubah tingkat isolasi ke serializable dapat mengurangi throughput untuk operasi bersamaan, tetapi mungkin diperlukan saat diperlukan serialisasi pembacaan.
  • Azure Databricks telah menghentikan indeks filter bloom. Gunakan I/O prediktif atau pengklusteran cairan sebagai gantinya.