Bagikan melalui


Penggabungan acak rendah di Azure Databricks

Catatan

Penggabungan acak rendah umumnya tersedia (GA) di Databricks Runtime 10.4 lTS ke atas dan di Pratinjau Umum di Databricks Runtime 9.1 LTS. Databricks merekomendasikan agar pelanggan Pratinjau bermigrasi ke Databricks Runtime 10.4 LTS atau lebih tinggi.

Perintah MERGE digunakan untuk melakukan pembaruan, penyisipan, dan penghapusan simultan dari tabel Delta Lake. Azure Databricks memiliki implementasi MERGE yang dioptimalkan yang meningkatkan performa secara substansial untuk beban kerja umum dengan mengurangi jumlah operasi acak.

Penggabungan acak rendah Databricks memberikan performa yang lebih baik dengan memproses baris yang tidak dimodifikasi dalam mode pemrosesan yang terpisah dan lebih efisien, alih-alih memprosesnya bersama dengan baris yang dimodifikasi. Akibatnya, jumlah data yang diacak berkurang secara signifikan, yang mengarah pada peningkatan performa. Penggabungan acak rendah juga mengurangi kebutuhan pengguna untuk menjalankan kembali perintah OPTIMIZE ZORDER BY setelah melakukan MERGE operasi.

Performa yang dioptimalkan

Banyak beban kerja MERGE hanya memperbarui sejumlah kecil baris dalam tabel. Namun, tabel Delta hanya dapat diperbarui per file. Ketika perintah MERGE perlu memperbarui atau menghapus sejumlah kecil baris yang disimpan dalam file tertentu, maka ia juga harus memproses dan melakukan regenerasi semua baris yang tersisa yang disimpan dalam file yang sama, meskipun baris ini tidak dimodifikasi. Penggabungan acak rendah mengoptimalkan pemrosesan baris yang tidak dimodifikasi. Sebelumnya, mereka diproses dengan cara yang sama seperti baris yang dimodifikasi, melewatinya melalui beberapa tahap acak dan perhitungan yang mahal. Dalam penggabungan acak rendah, baris yang tidak dimodifikasi malah diproses tanpa acak, pemrosesan mahal, atau overhead tambahan lainnya.

Tata letak data yang dioptimalkan

Selain lebih cepat dijalankan, penggabungan acak rendah juga menguntungkan operasi berikutnya. Penerapan MERGE sebelumnya menyebabkan tata letak data dari data yang tidak dimodifikasi diubah seluruhnya, sehingga menghasilkan performa yang lebih rendah pada operasi berikutnya. Penggabungan acak rendah mencoba mempertahankan tata letak data yang ada dari rekaman yang tidak dimodifikasi, termasuk pengoptimalan urutan Z berdasarkan upaya terbaik. Oleh karena itu, dengan penggabungan acak rendah, performa operasi pada tabel Delta akan lebih lambat setelah menjalankan satu atau beberapa MERGE perintah.

Catatan

Penggabungan acak rendah mencoba mempertahankan tata letak data pada data yang sudah ada yang tidak dimodifikasi. Tata letak data dari data yang diperbarui atau yang baru dimasukkan mungkin tidak optimal, sehingga mungkin masih perlu menjalankan perintah OPTIMIZE atau OPTIMIZE ZORDER BY.

Ketersediaan

Penggabungan acak rendah diaktifkan secara default di Databricks Runtime 10.4 ke atas. Pada versi Databricks Runtime yang didukung sebelumnya, ini dapat diaktifkan dengan mengatur konfigurasi spark.databricks.delta.merge.enableLowShuffle ke true. Bendera ini tidak berpengaruh di Databricks Runtime 10.4 dan di atasnya.