Categorias:

Funções de agregação (Cardinality Estimation) , Sintaxe e uso da função de janela

DATASKETCHES_HLL_COMBINE

Combina (mescla) os esboços de entrada em um único esboço de saída.

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.

Essa função permite cenários em que a função DATASKETCHES_HLL_ACCUMULATE é executada em partições horizontais da mesma tabela, produzindo um esboço de algoritmo para cada partição da tabela. Esses esboços podem ser combinados posteriormente com o uso dessa função, produzindo o mesmo esboço de saída que uma única execução do DATASKETCHES_HLL_ACCUMULATE em toda a tabela.

Consulte também:

DATASKETCHES_HLL_ACCUMULATE

Sintaxe

DATASKETCHES_HLL_COMBINE( [ DISTINCT ]  <state> [ , <max_log_k> ] )
Copy

Argumentos exigidos

state

Uma expressão que contém informações de estado geradas por uma chamada para DATASKETCHES_HLL_ACCUMULATE.

Argumentos opcionais

max_log_k

O valor máximo, em log2, de K para essa união. Especifique um valor INTEGER entre 4 e 21, inclusive. Para obter mais informações, consulte a documentação do Apache DataSketches.

Padrão: 12

Retornos

A função retorna um valor BINARY que é compatível com a biblioteca Apache Datasketches.

Notas de uso

DISTINCT é suportado sintaticamente, mas não tem efeito.

Exemplos

Criar uma tabela e inserir valores:

CREATE OR REPLACE TABLE datasketches_demo(v INT, g INT);

INSERT INTO datasketches_demo SELECT 1, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 1, 2;
INSERT INTO datasketches_demo SELECT 1, 2;
INSERT INTO datasketches_demo SELECT 4, 2;
INSERT INTO datasketches_demo SELECT 4, 2;
INSERT INTO datasketches_demo SELECT 5, 2;
Copy

O exemplo a seguir executa as seguintes ações:

  1. A função DATASKETCHES_HLL_ACCUMULATE cria dois esboços de binário para os dados na coluna v, agrupados pelos valores 1 e 2 na coluna g.

  2. A função DATASKETCHES_HLL_COMBINE combina esses esboços de binário.

WITH
  accumulated AS (
    SELECT g,
           DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
      FROM datasketches_demo
      GROUP BY g)
SELECT DATASKETCHES_HLL_COMBINE(accumulated_sketches) AS combined_sketches
  FROM accumulated;
Copy
+--------------------------------------------------+
| COMBINED_SKETCHES                                |
|--------------------------------------------------|
| 0201070C030804002BF2FB06862FF90D81BC5D067B65E608 |
+--------------------------------------------------+

Você pode ver os valores dos esboços acumulados no exemplo em DATASKETCHES_HLL_ACCUMULATE.