- Categorias:
Funções de agregação (Cardinality Estimation) , Sintaxe e uso da função de janela
DATASKETCHES_HLL_ESTIMATE¶
Retorna a estimativa de cardinalidade para o esboço fornecido.
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.
Um esboço produzido pela função DATASKETCHES_HLL_COMBINE pode ser usado para calcular uma estimativa de cardinalidade usando a função DATASKETCHES_HLL_ESTIMATE.
Sintaxe¶
DATASKETCHES_HLL_ESTIMATE( <binary_sketch> )
Argumentos¶
binary_sketch
Uma expressão que contém informações de esboço em formato binário.
Retornos¶
A função retorna um valor do tipo DOUBLE.
Se a entrada estiver vazia, a saída será 0.0
.
Nota
Essa função retorna um valor de um tipo diferente da função HLL_ESTIMATE, que retorna um valor INTEGER.
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;
Os exemplos a seguir usam os dados da tabela.
Retorna a estimativa de cardinalidade para esboços de binário acumulados¶
O exemplo a seguir executa as seguintes ações:
A função DATASKETCHES_HLL_ACCUMULATE cria dois esboços binários para os dados na coluna
v
, agrupados pelos valores1
e2
na colunag
A função DATASKETCHES_HLL_ESTIMATE retorna a estimativa de cardinalidade para cada esboço acumulado.
WITH
accumulated AS (
SELECT g,
DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
FROM datasketches_demo
GROUP BY g)
SELECT g, DATASKETCHES_HLL_ESTIMATE(accumulated_sketches) AS accumulated_estimate
FROM accumulated;
+---+----------------------+
| G | ACCUMULATED_ESTIMATE |
|---+----------------------|
| 1 | 2.000000005 |
| 2 | 3.000000015 |
+---+----------------------+
Você pode ver os valores dos esboços acumulados no exemplo em DATASKETCHES_HLL_ACCUMULATE.
Retorna a estimativa de cardinalidade para esboços de binário combinados¶
O exemplo a seguir executa as seguintes ações:
A função DATASKETCHES_HLL_ACCUMULATE cria dois esboços binários para os dados na coluna
v
, agrupados pelos valores1
e2
na colunag
A função DATASKETCHES_HLL_COMBINE combina esses esboços de binário para unificá-los.
A função DATASKETCHES_HLL_ESTIMATE retorna a estimativa de cardinalidade para o esboço unificado.
WITH
accumulated AS (
SELECT g,
DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
FROM datasketches_demo
GROUP BY g),
combined AS (
SELECT DATASKETCHES_HLL_COMBINE(accumulated_sketches) AS unified
FROM accumulated)
SELECT DATASKETCHES_HLL_ESTIMATE(unified) AS unified_estimate
FROM combined;
+------------------+
| UNIFIED_ESTIMATE |
|------------------|
| 4.00000003 |
+------------------+
Você pode ver o valor dos esboços combinados no exemplo em DATASKETCHES_HLL_COMBINE.