Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

uniqHLL12

uniqHLL12

Introduit dans : v1.1.0

Calcule le nombre approximatif de valeurs d’argument distinctes à l’aide de l’algorithme HyperLogLog.

Détails d’implémentation

Cette fonction calcule un hachage pour tous les paramètres de l’agrégat, puis l’utilise pour les calculs. Elle utilise l’algorithme HyperLogLog pour estimer le nombre de valeurs d’argument distinctes.

2^12 cellules de 5 bits sont utilisées. La taille de l’état est légèrement supérieure à 2,5 Ko. Le résultat n’est pas très précis (jusqu’à ~10 % d’erreur) pour les petits jeux de données (<10K éléments). En revanche, il est assez précis pour les jeux de données à cardinalité élevée (10K-100M), avec une erreur maximale d’environ 1,6 %. À partir de 100M, l’erreur d’estimation augmente, et la fonction renvoie des résultats très imprécis pour les jeux de données à cardinalité extrêmement élevée (1B+ éléments).

Fournit un résultat déterministe (il ne dépend pas de l’ordre de traitement de la requête).

Syntaxe

uniqHLL12(x[, ...])

Arguments

Valeur renvoyée

Renvoie un nombre de type UInt64 représentant le nombre approximatif de valeurs d’argument distinctes. UInt64

Exemples

Utilisation de base

CREATE TABLE example_hll
(
    id UInt32,
    category String
)
ENGINE = Memory;

INSERT INTO example_hll VALUES
(1, 'A'), (2, 'B'), (3, 'A'), (4, 'C'), (5, 'B'), (6, 'A');

SELECT uniqHLL12(category) AS hll_unique_categories
FROM example_hll;
┌─hll_unique_categories─┐
│                     3 │
└───────────────────────┘

Voir aussi

Navigation