Bagikan melalui


Pemangkasan file dinamis

Pemangkasan file dinamis, dapat secara signifikan meningkatkan performa banyak kueri pada tabel Delta Lake. Pemicu pemangkasan file secara dinamis untuk kueri yang berisi pernyataan filter atau klausa WHERE. Anda harus menggunakan komputasi berbasis Photon untuk menggunakan pemangkasan file dinamis dalam pernyataan MERGE, UPDATE, dan DELETE. Hanya pernyataan SELECT yang memanfaatkan pemangkasan file dinamis ketika Photon tidak digunakan.

Pemangkasan file dinamis sangat efisien untuk tabel yang tidak dipartisi, atau untuk gabungan pada kolom yang tidak dipartisi. Dampak performa pemangkasan file dinamis sering berkorelasi dengan pengklusteran data, jadi pertimbangkan untuk menggunakan Z-Ordering untuk memaksimalkan manfaat.

Untuk latar belakang dan kasus penggunaan pemangkasan file dinamis, lihat kueri SQL yang lebih cepat di Delta Lake dengan pemangkasan file dinamis.

Konfigurasi

Pemangkasan file dinamis dikendalikan oleh opsi konfigurasi Apache Spark berikut:

  • spark.databricks.optimizer.dynamicFilePruning (defaultnya adalah true): Bendera utama yang mengarahkan pengoptimal untuk mendorong filter ke bawah. Ketika diatur ke false, pemangkasan file dinamis tidak akan berlaku.
  • spark.databricks.optimizer.deltaTableSizeThreshold (defaultnya adalah 10,000,000,000 bytes (10 GB)): Mewakili ukuran minimum (dalam byte) dari tabel Delta di sisi probe pada join yang diperlukan untuk memicu pemangkasan berkas dinamis. Jika sisi pemeriksaan tidak terlalu besar, mungkin tidak ada gunanya untuk menurunkan filter dan kita hanya dapat memindai seluruh tabel. Anda dapat menemukan ukuran tabel Delta dengan menjalankan perintah DESCRIBE DETAIL table_name lalu melihat kolom sizeInBytes.
  • spark.databricks.optimizer.deltaTableFilesThreshold (defaultnya adalah 10): Menunjukkan jumlah tepat file tabel Delta di sisi prob gabungan yang diperlukan untuk memicu pemangkasan file dinamis. Ketika tabel sisi probe berisi lebih sedikit file daripada nilai ambang batas, pemangkasan file dinamis tidak dipicu. Jika tabel hanya memiliki beberapa file, mungkin tidak ada gunanya untuk mengaktifkan pemangkasan file dinamis. Anda dapat menemukan ukuran tabel Delta dengan menjalankan perintah DESCRIBE DETAIL table_name lalu melihat kolom numFiles.