Indeks filter bloom

Catatan

Saat menggunakan komputasi dengan dukungan Photon dan Databricks Runtime 12.2 atau lebih tinggi, I/O prediktif mengungguli filter mekar untuk performa baca. Lihat Apa itu I/O prediktif?.

Di Databricks Runtime 13.3 ke atas, Databricks merekomendasikan penggunaan pengklusteran untuk tata letak tabel Delta. Lihat Gunakan pengklusteran cair untuk tabel Delta.

Databricks hanya merekomendasikan penggunaan filter Bloom saat menggunakan komputasi yang tidak mendukung fitur-fitur ini.

Indeks filter Bloom adalah struktur data hemat ruang yang memungkinkan data melompat pada kolom yang dipilih, terutama untuk bidang yang berisi teks arbitrer.

Cara kerja indeks filter Bloom

Indeks filter Azure Databricks Bloom terdiri dari indeks lompati data untuk setiap file data. Indeks filter Bloom dapat digunakan untuk menentukan bahwa nilai kolom secara definitif tidak ada dalam file, atau mungkin ada dalam file. Sebelum membaca file Azure Databricks memeriksa file indeks, dan file hanya dibaca jika indeks menunjukkan bahwa file mungkin cocok dengan filter data.

Filter Bloom mendukung kolom dengan jenis data input berikut: byte, , short, intlong, float, double, date, , timestamp, dan string. Null tidak ditambahkan ke filter Bloom, sehingga filter terkait null memerlukan pembacaan file data. Azure Databricks mendukung filter sumber data berikut: and, or, in, equalsdan equalsnullsafe. Filter bloom tidak didukung pada kolom berlapis.

Konfigurasi dan referensi

Gunakan sintaks berikut untuk mengaktifkan filter Bloom:

CREATE BLOOMFILTER INDEX
ON TABLE table_name
FOR COLUMNS(column_name OPTIONS (fpp=0.1, numItems=5000))

Untuk detail sintaks, lihat MEMBUAT INDEKS FILTER BLOOM dan MENJATUHKAN INDEKS FILTER BLOOM.

Untuk menonaktifkan operasi filter Bloom, atur konfigurasi tingkat spark.databricks.io.skipping.bloomFilter.enabled sesi ke false.

Menampilkan daftar indeks filter Bloom

Untuk menampilkan daftar indeks, jalankan:

spark.table("<table-with-indexes>").schema.foreach(field => println(s"${field.name}: metadata=${field.metadata}"))

Contohnya:

Menampilkan indeks