Indeksy filtru Blooma

Uwaga

W przypadku korzystania z obliczeń z obsługą technologii Photon i środowiska Databricks Runtime w wersji 12.2 lub nowszej filtry odkształcania operacji we/wy predykcyjnej operacji we/wy w celu uzyskania wydajności odczytu. Zobacz Co to jest predykcyjne we/wy?

W środowisku Databricks Runtime 13.3 lub nowszym usługa Databricks zaleca używanie klastrowania dla układu tabeli delty. Zobacz Użyj płynnego klastrowania dla tabel typu Delta).

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 wydajna przestrzeń struktura danych, która umożliwia pomijanie danych w wybranych kolumnach, szczególnie w przypadku pól zawierających dowolny tekst.

Jak działają indeksy filtru Blooma

Indeksy filtrów Bloom usługi Azure Databricks składają się z indeksu pomijania danych dla każdego pliku danych. Indeks filtru Bloom może służyć do określenia, że wartość kolumny nie znajduje się w pliku lub prawdopodobnie znajduje się 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ą kolumny z następującymi typami danych wejściowych: byte, , floatdoubleshortlongdateinttimestamp, i .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, , orin, equalsi equalsnullsafe. Filtry Bloom nie są obsługiwane w kolumnach zagnieżdżonych.

Konfiguracja i dokumentacja

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 (TWORZENIE INDEKSU FILTRU BLOOMA) i DROP BLOOM FILTER INDEX (INDEKS FILTRU DROP BLOOM).

Aby wyłączyć operacje filtrowania Blooma, ustaw konfigurację poziomu spark.databricks.io.skipping.bloomFilter.enabled sesji na falsewartość .

Wyświetlanie listy indeksów filtru Blooma

Aby wyświetlić listę indeksów, uruchom polecenie:

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

Na przykład:

Pokaż indeksy