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 table lub jedna z columns nie istnieje. Jeśli filtrowanie Bloom jest włączone dla column, istniejące opcje filtru Bloom zostaną zastąpione przez nowe opcje.
Składnia
CREATE BLOOMFILTER INDEX
ON [TABLE] table_name
FOR COLUMNS( { columnName1 [ options ] } [, ...] )
[ options ]
options
OPTIONS ( { key1 [ = ] val1 } [, ...] )
Parameters
-
Identyfikuje istniejącą tabledelta. 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 Blooma, uruchamiając OPTIMIZE
na table:
- Jeśli wcześniej nie zoptymalizowałeś table.
- 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 column lub na poziomie table:
-
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: na poziomie operacji zapisu, na poziomie table i na poziomie column. Poziom column ma pierwszeństwo przed poziomami table i operacji, a poziom table ma pierwszeństwo przed poziomem operacji.
Zobacz Indeksy filtrów Blooma.