- Categorias:
Funções de agregação (Cardinality Estimation) , Funções de janela
DATASKETCHES_HLL¶
Retorna uma aproximação da cardinalidade distinta da entrada (ou seja, DATASKETCHES_HLL(col1) retorna uma aproximação de COUNT(DISTINCT col1)).
Essa função é uma versão da função HLL HyperLogLog que pode ler esboços de binário no formato usado pelo Apache DataSketches. Para obter mais informações, consulte a documentação do Apache DataSketches.
- Consulte também:
DATASKETCHES_HLL_ACCUMULATE , DATASKETCHES_HLL_COMBINE , DATASKETCHES_HLL_ESTIMATE
Sintaxe¶
Função de agregação
Função de janela
Argumentos exigidos¶
expr1A expressão para a qual você deseja saber o número de valores distintos.
Argumentos opcionais¶
max_log_kO valor máximo, em log2, de K para inicializar o objeto HLL datasketches. Especifique um valor INTEGER entre 4 e 21, inclusive. Para obter mais informações, consulte a documentação do Apache DataSketches.
Padrão: 12
expr2A expressão opcional usada para agrupar linhas em partições.
Retornos¶
A função retorna um valor do tipo DOUBLE.
Se a entrada estiver vazia, a saída será 0.0.
Notas de uso¶
DISTINCT é suportado sintaticamente, mas não tem efeito.
A função aceita argumentos que são valores dos seguintes tipos de dados:
Tipos de dados de cadeia de caracteres e binários (por exemplo, VARCHAR e BINARY).
Por exemplo, há suporte para as seguintes chamadas de função:
Tipos de dados para números de ponto flutuante (por exemplo, FLOAT e DOUBLE)
A biblioteca DataSketches converte esses valores em valores DOUBLE.
Tipos de dados para números de ponto fixo (por exemplo, INTEGER e NUMERIC).
A função só é compatível com tipos numéricos com uma escala de 0. No entanto, você pode converter valores numéricos com uma escala diferente de 0 em tipos de dados para um número de ponto flutuante.
A biblioteca DataSketches converte esses valores no intervalo de um valor INTEGER assinado de 64 bits para um valor INTEGER assinado de 64 bits.
A biblioteca DataSketches não converte diretamente os valores INTEGER que excedem o intervalo INTEGER assinado de 64 bits (como valores inteiros de 128 bits). No entanto, o Snowflake ainda é compatível com esses valores, convertendo-os automaticamente em valores de DOUBLE, que são compatíveis com DataSketches. Esse comportamento é idêntico ao comportamento da biblioteca
datasketches-python.
Não há suporte para valores de outros tipos de dados. Por exemplo, os valores VARIANT e ARRAY não são compatíveis.
Para obter mais informações sobre valores NULL e funções agregadas, consulte Funções de agregação e valores NULL.
Quando essa função é chamada como uma função de janela, ela não é compatível:
Uma cláusula ORDER BY dentro da cláusula OVER.
Quadros de janela explícitos.
Exemplos¶
Criar uma tabela e inserir valores:
Os exemplos a seguir usam os dados da tabela.
Retorna a cardinalidade estimada dos dados agrupados em uma coluna¶
Use a função DATASKETCHES_HLL para aproximar a cardinalidade distinta dos dados na coluna v agrupados pelos valores na coluna g.
A saída mostra que, para o valor 1 na coluna g, há cerca de dois valores distintos na coluna v (ou seja, 1 e 2). Para o valor 2 na coluna g, há cerca de três valores distintos na coluna v (ou seja, 1, 4 e 5). A chamada COUNT(DISTINCT v)) retorna o número exato de valores distintos em vez de uma estimativa.
Se você usar a função DATASKETCHES_HLL_ACCUMULATE para criar esboços de binário a partir dos dados agrupados, a função DATASKETCHES_HLL_ESTIMATE retornará os mesmos resultados para os esboços acumulados. Para obter um exemplo, consulte Retorna a estimativa de cardinalidade para esboços de binário acumulados.
Retorna a cardinalidade estimada de todos os dados em uma coluna¶
Use a função DATASKETCHES_HLL para aproximar a cardinalidade distinta de todos os dados da coluna v.
A saída mostra que há cerca de quatro valores distintos na coluna v (ou seja, 1, 2, 4 e 5). A chamada COUNT(DISTINCT v)) retorna o número exato de valores distintos em vez de uma estimativa.
Se você utilizar a função DATASKETCHES_HLL_ACCUMULATE para criar esboços de binário a partir dos dados agrupados e, em seguida, utilizar a função DATASKETCHES_HLL_COMBINE para combinar os esboços em um esboço unificado, a função DATASKETCHES_HLL_ESTIMATE retornará os mesmos resultados para o esboço unificado. Para obter um exemplo, consulte Retorna a estimativa de cardinalidade para esboços de binário combinados.