Aracılığıyla paylaş


Bloom filtre dizinleri

Not kaydı

Foton özellikli işlem ve Databricks Runtime 12.2 veya daha üstü kullanırken, öngörücü girdi/çıkış, okuma performansı için bloom filtrelerinden daha iyi performans gösterir. Bkz. Tahmine dayalı Girdi/Çıktı nedir?.

Databricks Runtime 13.3 ve üzerinde Databricks, Delta table düzeni için kümeleme kullanılmasını önerir. Bkz. Delta tablesiçin sıvı kümeleme kullanın.

Databricks, bu özellikleri desteklemeyen işlem kullanılırken yalnızca Bloom filtrelerinin kullanılmasını önerir.

Bloom filtre dizini, özellikle rastgele metin içeren alanlar için seçilen columnsüzerinde veri atlamayı sağlayan yer açısından verimli bir veri yapısıdır.

Bloom filtre dizinleri nasıl çalışır?

Azure Databricks Bloom filtre dizinleri, her veri dosyası için bir veri atlama dizininden oluşur. Bloom filtre dizini, bir değerinin dosyanın kesin olarak olmadığını veya büyük olasılıkla dosyanın belirlemek için kullanılabilir. Bir dosyayı okumadan önce Azure Databricks dizin dosyasını denetler ve dizin dosyanın bir veri filtresiyle eşleşebileceğini gösteriyorsa dosya salt okunur olur.

Bloom filtreleri şu giriş veri türleriyle columns destekler: byte, short, int, long, float, double, date, timestampve string. Null değerler Bloom filtresine eklenmez, bu nedenle null ile ilgili herhangi bir filtre veri dosyasının okunmasını gerektirir. Azure Databricks şu veri kaynağı filtrelerini destekler: and, or, in, equalsve equalsnullsafe. İç içe geçmiş columnsüzerinde Bloom filtreleri desteklenmez.

Yapılandırma ve referans

Bloom filtresini etkinleştirmek için aşağıdaki söz dizimini kullanın:

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

Söz dizimi ayrıntıları için bkz. CREATE BLOOM FILTER INDEX ve DROP BLOOM FILTER INDEX.

Bloom filtre işlemlerini devre dışı bırakmak için set oturum düzeyi spark.databricks.io.skipping.bloomFilter.enabled yapılandırmasını falseyapın.

Bloom filtre dizinlerinin list'sini görüntüleyin

Dizinlerin list'ını görüntülemek için şunu çalıştırın:

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

Mesela:

dizinleri göster