Bagikan melalui


Penggabungan acak rendah di Azure Databricks

Nota

Penggabungan shuffle tingkat rendah tersedia secara umum (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 kinerja secara substansial untuk beban kerja umum dengan mengurangi jumlah operasi pengacakan.

Databricks low shuffle merge menyediakan kinerja yang lebih baik dengan memproses baris yang tidak dimodifikasi dalam mode pemrosesan yang terpisah dan lebih efisien, daripada memprosesnya bersama dengan baris yang dimodifikasi. Akibatnya, jumlah data yang diacak berkurang secara signifikan, yang menyebabkan peningkatan performa. Penggabungan shuffle rendah juga mengurangi kebutuhan pengguna untuk menjalankan kembali perintah OPTIMIZE ZORDER BY setelah melakukan operasi MERGE.

Performa yang dioptimalkan

Beberapa beban kerja MERGE hanya memperbarui sejumlah baris yang relatif kecil 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 perintah tersebut juga harus memproses dan menulis ulang 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, melewati beberapa tahap pengacakan dan perhitungan yang mahal. Dalam penggabungan tanpa acak, baris yang tidak dimodifikasi diproses tanpa harus melalui pengacakan, pemrosesan yang memakan biaya, atau overhead tambahan.

Tata letak data yang dioptimalkan

Selain lebih cepat dijalankan, penggabungan dengan pengacakan rendah juga menguntungkan proses operasi berikutnya. Implementasi MERGE sebelumnya menyebabkan tata letak data data yang tidak dimodifikasi diubah sepenuhnya, 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 shuffle rendah, performa operasi pada tabel Delta akan menurun lebih lambat setelah menjalankan satu atau beberapa perintah MERGE.

Nota

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 diperlukan untuk menjalankan perintah OPTIMIZE atau OPTIMIZE ZORDER BY.

Ketersediaan

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