Create Bloom Filter Index (usługa Delta Lake w usłudze Azure Databricks)

CREATE BLOOMFILTER INDEX
ON [TABLE] table_name
[FOR COLUMNS(columnName1 [OPTIONS(..)], columnName2, ...)]
[OPTIONS(..)]

Tworzenie indeksu filtru Blooma dla nowych lub przepisanych danych; Nie tworzy filtrów Blooma dla istniejących danych. Polecenie kończy się niepowodzeniem, jeśli nazwa tabeli lub jedna z kolumn nie istnieje. Jeśli filtrowanie Blooma jest włączone dla kolumny, istniejące opcje filtru Blooma są zastępowane nowymi opcjami.

Chociaż nie jest możliwe skompilowanie indeksu filtru Blooma dla danych, które zostały już zapisane, polecenie OPTIMIZE aktualizuje filtry Blooma dla danych, które zostały zreorganizowane. W związku z tym możesz wypełnić filtr Blooma, uruchamiając OPTIMIZE na tabeli:

  • Jeśli tabela nie została wcześniej zoptymalizowana.
  • Z innym rozmiarem pliku, co wymaga ponownego napisano pliki danych.
  • W przypadku pliku (lub innego typu , jeśli jest już obecny), wymaga to ponownego ZORDERZORDER napisano pliki danych.

Filtr Blooma można dostosować, definiując opcje na poziomie kolumny lub tabeli:

  • fpp: prawdopodobieństwo fałszywie dodatnie. Żądany wskaźnik wyników fałszywie dodatnich na zapisany filtr Blooma. Ma to wpływ na liczbę bitów potrzebnych do umieścić jeden element w filtrze Blooma i wpływa na rozmiar filtru Blooma. Wartość musi być większa niż 0 i mniejsza niż lub równa 1. Wartość domyślna to 0,1, która wymaga 5 bitów na element.
  • numItems: liczba odrębnych elementów, które może zawierać plik. To ustawienie jest ważne dla jakości filtrowania, ponieważ ma wpływ na łączną liczbę bitów używanych w filtrze Blooma (liczba elementów * liczba bitów na element). Jeśli to ustawienie jest nieprawidłowe, filtr Blooma jest wypełniany bardzo rzadko, marnuje miejsce na dysku i spowalnia zapytania, które muszą pobrać ten plik, lub jest zbyt pełny i jest mniej dokładny (wyższy poziom FPP). Wartość musi być większa niż 0. Wartość domyślna to 1 milion elementów.
  • maxExpectedFpp: oczekiwany próg FPP, dla którego filtr Blooma nie jest zapisywany na dysku. Maksymalne oczekiwane prawdopodobieństwo wyników fałszywie dodatnich, przy którym jest zapisywany filtr Blooma. Jeśli oczekiwana wartość FPP jest większa niż ten próg, selektywność filtru Blooma jest zbyt niska; Czas i zasoby, które trzeba użyć, przeważają nad użytecznością filtru Blooma. Wartość musi być z wartości od 0 do 1. Wartość domyślna to 1.0 (wyłączona).

Te opcje odgrywają rolę tylko podczas zapisywania danych. Te właściwości można skonfigurować na różnych poziomach hierarchicznych: operacji zapisu, na poziomie tabeli i na poziomie kolumny. Poziom kolumny ma pierwszeństwo przed poziomem tabeli i operacji, a poziom tabeli ma pierwszeństwo przed poziomem operacji.

Zobacz Indeksy filtru Blooma.