CREATE BLOOM FILTER INDEX
Dotyczy: wyboru SQL usługi Databricks Databricks Runtime
Tworzy indeks filtru Bloom dla nowych lub przepisanych danych; nie tworzy filtrów Bloom 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 Bloom są zastępowane przez nowe opcje.
Składni
CREATE BLOOMFILTER INDEX
ON [TABLE] table_name
FOR COLUMNS( { columnName1 [ options ] } [, ...] )
[ options ]
options
OPTIONS ( { key1 [ = ] val1 } [, ...] )
Parametry
-
Identyfikuje istniejącą tabelę delty. Nazwa nie może zawierać specyfikacji czasowej.
Chociaż nie można utworzyć indeksu filtru Bloom dla danych, które zostały już zapisane, polecenie OPTIMIZE aktualizuje filtry Bloom dla danych, które zostały zreorganizowane. W związku z tym można uzupełnić filtr Bloom, uruchamiając polecenie OPTIMIZE
w tabeli:
- Jeśli tabela nie została wcześniej zoptymalizowana.
- W przypadku innego rozmiaru pliku wymagane jest ponowne zapisanie plików danych.
ZORDER
W przypadku elementu (lub innegoZORDER
elementu , jeśli jest już obecny), wymaganie ponownego zapisania plików danych.
Filtr Bloom można dostosować, definiując opcje na poziomie kolumny lub na poziomie tabeli:
fpp
: Prawdopodobieństwo fałszywie dodatnie. Żądana liczba wyników fałszywie dodatnich na zapisany filtr Bloom. Ma to wpływ na liczbę bitów potrzebnych do umieszczenia pojedynczego elementu w filtrze Bloom i wpływa na rozmiar filtru Bloom. 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ż wpływa na całkowitą liczbę bitów używanych w filtrze Bloom (liczba elementów — liczba bitów na element). Jeśli to ustawienie jest niepoprawne, filtr Bloom jest albo bardzo rozrzedliwy, marnowanie miejsca na dysku i spowalnianie zapytań, które muszą pobrać ten plik, lub jest zapełniony i jest mniej dokładny (wyższy FPP). Wartość musi być większa niż 0. Wartość domyślna to 1 milion elementów.maxExpectedFpp
: maksymalne oczekiwane prawdopodobieństwo fałszywie dodatnie, w którym filtr Bloom jest zapisywany na dysku. Jeśli oczekiwana wartość FPP jest większa niż ten próg, wybór filtru Blooma jest zbyt niski; czas i zasoby potrzebne do korzystania z filtru Bloom przewyższa jego użyteczność. Wartość musi należeć do przedziału 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, poziomu tabeli i na poziomie kolumny. Poziom kolumny ma pierwszeństwo przed poziomami tabeli i operacji, a poziom tabeli ma pierwszeństwo przed poziomem operacji.
Zobacz Indeksy filtrów Blooma.