Pemangkasan file dinamis

Pemangkasan file dinamis dapat secara signifikan meningkatkan performa banyak kueri pada tabel Delta Lake. Pengoptimal kueri memicu pemangkasan file dinamis untuk kueri yang berisi pernyataan filter atau WHERE klausa. Pemangkasan file dinamis dalam pernyataan MERGE, UPDATE, dan DELETE memerlukan komputasi berkemampuan Photon. Untuk SELECT pernyataan, Photon menyediakan pemangkasan file dinamis yang lebih luas dan lebih andal. Tanpa Photon, pemangkasan file dinamis mungkin masih berlaku untuk SELECT pernyataan, tergantung pada bentuk kueri dan rencana eksekusi.

Pemangkasan file dinamis sangat efisien untuk tabel yang tidak dipartisi, atau untuk gabungan pada kolom yang tidak dipartisi. Efek performa pemangkasan file dinamis sering berkorelasi dengan pengklusteran data, jadi pertimbangkan untuk menggunakan pengklusteran cairan untuk memaksimalkan manfaatnya. Lihat Menggunakan pengklusteran cair untuk tabel.

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.