CRIAR ÍNDICE DE FILTRO BLOOM
Aplica-se a: do SQL do Databricks Databricks Runtime
Cria um índice de filtro Bloom para dados novos ou reescritos; não cria filtros Bloom para dados existentes. O comando falha se o nome da tabela ou uma das colunas não existir. Se a filtragem Bloom estiver ativada para uma coluna, as opções de filtro Bloom existentes serão substituídas pelas novas opções.
Sintaxe
CREATE BLOOMFILTER INDEX
ON [TABLE] table_name
FOR COLUMNS( { columnName1 [ options ] } [, ...] )
[ options ]
options
OPTIONS ( { key1 [ = ] val1 } [, ...] )
Parâmetros
-
Identifica uma tabela Delta existente. O nome não pode incluir uma especificação temporal.
Embora não seja possível criar um índice de filtro Bloom para dados que já estejam escritos, o comando OTIMIZAR atualiza os filtros Bloom para dados reorganizados. Por conseguinte, pode efetuar o backfill de um filtro Bloom ao executar OPTIMIZE
numa tabela:
- Se não tiver otimizado anteriormente a tabela.
- Com um tamanho de ficheiro diferente, é necessário que os ficheiros de dados sejam novamente escritos.
- Com um
ZORDER
(ou um diferenteZORDER
, se já existir um), é necessário que os ficheiros de dados sejam novamente escritos.
Pode otimizar o filtro Bloom ao definir opções ao nível da coluna ou ao nível da tabela:
fpp
: probabilidade de falsos positivos. A taxa de falsos positivos desejada por filtro Bloom escrito. Isto influencia o número de bits necessários para colocar um único item no filtro Bloom e influencia o tamanho do filtro Bloom. O valor tem de ser maior do que 0 e inferior ou igual a 1. O valor predefinido é 0,1, que requer 5 bits por item.numItems
: número de itens distintos que o ficheiro pode conter. Esta definição é importante para a qualidade da filtragem, uma vez que influencia o número total de bits utilizados no filtro Bloom (número de itens – número de bits por item). Se esta definição estiver incorreta, o filtro Bloom está muito pouco preenchido, a desperdiçar espaço em disco e a abrandar as consultas que têm de transferir este ficheiro ou está demasiado cheio e é menos preciso (FPP superior). O valor tem de ser superior a 0. A predefinição é 1 milhão de itens.maxExpectedFpp
: a probabilidade máxima esperada de falsos positivos na qual um filtro Bloom é escrito no disco. Se o FPP esperado for superior a este limiar, a selectividade do filtro Bloom é demasiado baixa; o tempo e os recursos necessários para utilizar o filtro Bloom superam a sua utilidade. O valor tem de estar entre 0 e 1. A predefinição é 1,0 (desativada).
Estas opções desempenham um papel apenas ao escrever os dados. Pode configurar estas propriedades a vários níveis hierárquicos: operação de escrita, nível da tabela e nível da coluna. O nível da coluna tem precedência sobre os níveis de tabela e operação e o nível da tabela tem precedência sobre o nível de operação.
Veja Índices de filtro bloom.