CREATE BLOOM FILTER INDEX
Dotyczy: Databricks SQL 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 Bloom jest włączone dla kolumny, istniejące opcje filtru Bloom są zastępowane przez nowe opcje.
Składnia
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 ani specyfikacji opcji.
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 wypełnić filtr Bloom, uruchamiając OPTIMIZE
polecenie w tabeli:
- Jeśli tabela nie została wcześniej zoptymalizowana.
- W przypadku innego rozmiaru pliku wymagane jest ponowne zapisanie plików danych.
- W przypadku elementu
ZORDER
(lub innegoZORDER
elementu , jeśli jest już obecny), wymagane jest ponowne zapisanie 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. Wpływa to 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 unikatowych 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 nieprawidłowe, filtr Bloom jest albo bardzo rozrzedżony, marnowanie miejsca na dysku i spowalnianie zapytań, które muszą pobrać ten plik, lub jest zbyt pełny 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 Bloom 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.