- Catégories :
Fonctions d’agrégation (Cardinality Estimation) , Syntaxe et utilisation des fonctions de fenêtre
DATASKETCHES_HLL_ESTIMATE¶
Renvoie l’estimation de la cardinalité pour l’esquisse donnée.
Cette fonction est une version de la fonction HLL HyperLogLog qui peut lire des esquisses binaires dans le format utilisé par Apache DataSketches. Pour plus d’informations, consultez la documentation Apache DataSketches.
Une esquisse produite par la fonction DATASKETCHES_HLL_COMBINE peut être utilisée pour calculer une estimation de la cardinalité à l’aide de la fonction DATASKETCHES_HLL_ESTIMATE.
Syntaxe¶
DATASKETCHES_HLL_ESTIMATE( <binary_sketch> )
Arguments¶
binary_sketch
Une expression qui contient des informations sur l’esquisse au format binaire.
Renvoie¶
La fonction renvoie une valeur de type DOUBLE.
Si l’entrée est vide, la sortie est 0.0
.
Note
Cette fonction renvoie une valeur d’un type différent de celui de la fonction HLL_ESTIMATE, qui renvoie une valeur INTEGER.
Exemples¶
Créer une table et insérer des valeurs :
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;
Les exemples suivants utilisent les données de la table.
Renvoi de l’estimation de la cardinalité pour les esquisses binaires accumulées¶
L’exemple ci-dessous effectue les actions suivantes :
La fonction DATASKETCHES_HLL_ACCUMULATE crée deux esquisses binaires pour les données de la colonne
v
, regroupées par les valeurs1
et2
dans la colonneg
.La fonction DATASKETCHES_HLL_ESTIMATE renvoie l’estimation de la cardinalité pour chaque esquisse accumulée.
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 |
+---+----------------------+
Vous pouvez voir les valeurs des esquisses accumulées dans l’exemple de DATASKETCHES_HLL_ACCUMULATE.
Renvoi de l’estimation de la cardinalité pour les esquisses binaires combinées¶
L’exemple ci-dessous effectue les actions suivantes :
La fonction DATASKETCHES_HLL_ACCUMULATE crée deux esquisses binaires pour les données de la colonne
v
, regroupées par les valeurs1
et2
dans la colonneg
.La fonction DATASKETCHES_HLL_COMBINE combine ces esquisses binaires pour les unifier.
La fonction DATASKETCHES_HLL_ESTIMATE renvoie l’estimation de la cardinalité de l’esquisse unifiée.
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 |
+------------------+
Vous pouvez voir la valeur des esquisses combinées dans l’exemple de DATASKETCHES_HLL_COMBINE.