CREATE BLOOM FILTER INDEX
Si applica a: controllo SQL di Databricks Databricks Runtime
Crea un indice di filtro Bloom per i dati nuovi o riscritti; non crea filtri Bloom per i dati esistenti. Il comando ha esito negativo se il nome della tabella o una delle colonne non esiste. Se il filtro Bloom è abilitato per una colonna, le opzioni di filtro Bloom esistenti vengono sostituite dalle nuove opzioni.
Sintassi
CREATE BLOOMFILTER INDEX
ON [TABLE] table_name
FOR COLUMNS( { columnName1 [ options ] } [, ...] )
[ options ]
options
OPTIONS ( { key1 [ = ] val1 } [, ...] )
Parametri
-
Identifica una tabella Delta esistente. Il nome non deve includere una specifica temporale.
Anche se non è possibile compilare un indice di filtro Bloom per i dati già scritti, il comando OPTIMIZE aggiorna i filtri Bloom per i dati riorganizzati. Pertanto, è possibile riempire un filtro Bloom eseguendo OPTIMIZE
su una tabella:
- Se la tabella non è stata ottimizzata in precedenza.
- Con dimensioni del file diverse, che richiedono la riscrizione dei file di dati.
- Con un
ZORDER
oggetto (o un valore diversoZORDER
, se ne è già presente uno), richiedendo che i file di dati vengano riscritto.
È possibile ottimizzare il filtro Bloom definendo le opzioni a livello di colonna o a livello di tabella:
fpp
: probabilità falsa positiva. Tasso di falsi positivi desiderato per filtro Bloom scritto. Ciò influenza il numero di bit necessari per inserire un singolo elemento nel filtro Bloom e influenza le dimensioni del filtro Bloom. Il valore deve essere maggiore di 0 e minore o uguale a 1. Il valore predefinito è 0,1 che richiede 5 bit per elemento.numItems
: numero di elementi distinti che il file può contenere. Questa impostazione è importante per la qualità del filtro perché influenza il numero totale di bit usati nel filtro Bloom (numero di elementi - numero di bit per elemento). Se questa impostazione non è corretta, il filtro Bloom viene popolato in modo molto sparse, sprecare spazio su disco e rallentare le query che devono scaricare il file oppure è troppo pieno ed è meno accurato (FPP superiore). Il valore deve essere maggiore di 0. Il valore predefinito è 1 milione di elementi.maxExpectedFpp
: probabilità massima di falsi positivi previsti in corrispondenza della quale viene scritto un filtro Bloom su disco. Se il FPP previsto è maggiore di questa soglia, la selettività del filtro Bloom è troppo bassa; il tempo e le risorse necessari per usare il filtro Bloom superano la sua utilità. Il valore deve essere compreso tra 0 e 1. Il valore predefinito è 1.0 (disabilitato).
Queste opzioni svolgono un ruolo solo quando si scrivono i dati. È possibile configurare queste proprietà a vari livelli gerarchici: operazione di scrittura, livello di tabella e livello di colonna. Il livello di colonna ha la precedenza sui livelli di tabella e operazione e il livello di tabella ha la precedenza sul livello di operazione.
Vedere Indici di filtro Bloom.