La fonction HLL_COUNT_INIT agrège des valeurs de même type dans une nouvelle structure de données HyperLogLog++ (HLL++) (sketch).
Notes
HLL_COUNT_EXTRACT/HLL_COUNT_MERGE/HLL_COUNT_MERGE_PARTIAL Les données BINARY utilisées par ces fonctions doivent provenir de la fonction HLL_COUNT_INIT ; elles ne peuvent pas provenir d'autres systèmes ou méthodes.
Syntaxe
BINARY HLL_COUNT_INIT(<col_name> [, BIGINT <precision>])
Paramètres
col_name : Obligatoire. Nom de la colonne. Le type de la colonne doit être BIGINT, DECIMAL, STRING ou BINARY.
precision : Facultatif. Précision estimée. La valeur doit être un entier BIGINT compris entre 10 et 24. La valeur par défaut est 15. Une valeur plus élevée offre une meilleure précision, mais nécessite plus d'espace de stockage pour le sketch.
Valeur de retour
Renvoie un sketch HLL++ au format BINARY. Si l'entrée col_name est NULL, la valeur de retour est NULL.
Pour fusionner des sketches, utilisez HLL_COUNT_MERGE ou HLL_COUNT_MERGE_PARTIAL.
Pour récupérer le nombre de valeurs distinctes, utilisez HLL_COUNT_EXTRACT.
Scénarios
La requête suivante crée des sketches HLL++ pour calculer le nombre de clients distincts facturés dans chaque pays.
SELECT
country,
HLL_COUNT_INIT(customer_id, 10) AS hll_sketch
FROM values
('UA', 'customer_id_1', 'invoice_id_11'),
('BR', 'customer_id_3', 'invoice_id_31'),
('CZ', 'customer_id_2', 'invoice_id_22'),
('CZ', 'customer_id_2', 'invoice_id_23'),
('BR', 'customer_id_3', 'invoice_id_31'),
('UA', 'customer_id_2', 'invoice_id_24')
t(country, customer_id, invoice_id)
GROUP BY country;
Le système renvoie les résultats suivants :
+---------+------------+
| country | hll_sketch |
+---------+------------+
| BR | =02=01=0A=00=01=00=00=00=20s=8E=00 |
| CZ | =02=01=0A=00=01=00=00=00=98_$=03 |
| UA | =02=01=0A=00=02=00=00=00=F0=8B=DD=00=98_$=03 |
+---------+------------+
Fonctions associées
HLL_COUNT_INIT est une fonction HLL++. MaxCompute prend en charge une série de fonctions HLL++ pour l'agrégation approximative. Pour plus d'informations, consultez la page Présentation des fonctions HyperLogLog++.