Udostępnij za pośrednictwem


Indeksy filtrów Blooma

Notatka

W przypadku korzystania z obliczeń z obsługą technologii Photon i środowiska Databricks Runtime w wersji 12.2 lub nowszej, operacje we/wy predykcyjne przewyższają wydajnością filtry Blooma w zakresie odczytu. Zobacz Co to jest predykcyjne we/wy?.

W Databricks Runtime 13.3 lub nowszym platforma Databricks zaleca korzystanie z klastrowania dla układu Delta table. Zobacz użycie płynnego klastrowania dla Delta tables.

Usługa Databricks zaleca używanie filtrów Bloom tylko w przypadku korzystania z obliczeń, które nie obsługują tych funkcji.

Indeks filtru Bloom to oszczędzająca miejsce struktura danych, która umożliwia pomijanie danych na wybranych columns, szczególnie w przypadku pól zawierających dowolny tekst.

Jak działają indeksy filtru Blooma

Indeksy filtru Bloom w usłudze Azure Databricks obejmują indeks pomijania danych dla każdego pliku danych. Indeks filtru Bloom może służyć do określenia, że wartość column jest ostatecznie nie znajduje się w pliku lub że jest prawdopodobnie w pliku. Przed odczytaniem pliku usługa Azure Databricks sprawdza plik indeksu, a plik jest odczytywany tylko wtedy, gdy indeks wskazuje, że plik może być zgodny z filtrem danych.

Filtry Bloom obsługują columns z następującymi typami danych wejściowych: byte, short, int, long, float, double, date, timestampi string. Wartości null nie są dodawane do filtru Bloom, więc każdy filtr powiązany z wartością null wymaga odczytania pliku danych. Usługa Azure Databricks obsługuje następujące filtry źródeł danych: and, or, in, equalsi equalsnullsafe. Filtry Bloom nie są obsługiwane w zagnieżdżonym columns.

Konfiguracja i odniesienie

Użyj następującej składni, aby włączyć filtr Blooma:

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

Aby uzyskać szczegółowe informacje o składni, zobacz CREATE BLOOM FILTER INDEX i DROP BLOOM FILTER INDEX.

Aby wyłączyć operacje filtrowania Blooma, setspark.databricks.io.skipping.bloomFilter.enabled konfigurację poziomu sesji na false.

Wyświetlanie list indeksów filtrów Bloom

Aby wyświetlić indeks list, uruchom polecenie:

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

Na przykład:

Pokaż indeksy