CRIAR ÍNDICE DE FILTRO BLOOM

Aplica-se a:verificar a verificação sim do SQL do Databricks marcada como sim 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

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 diferente ZORDER, 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.