Aller au contenu

Estime le nombre de valeurs distinctes d’un jeu de données avec l’algorithme HyperLogLog.

L’algorithme HyperLogLog fournit une approximation du nombre d’éléments uniques en consommant peu de mémoire et de temps. Envisagez d’utiliser cette fonction avec de grands jeux de données lorsqu’un résultat estimé est acceptable. Au prix d’une certaine précision, c’est une méthode rapide et efficace pour obtenir un nombre de valeurs distinctes.

Pour obtenir un résultat exact, utilisez COUNT_DISTINCT. Consultez les exemples pour plus d’explications.

func.approx_count_distinct(<expr>)
func.approx_count_distinct(table.user_id).alias('approx_distinct_user_count')
| approx_distinct_user_count |
|----------------------------|
| 4 |
APPROX_COUNT_DISTINCT(<expr>)

Entier.

Créer une table et insérer des données d’exemple

CREATE TABLE user_events (
id INT,
user_id INT,
event_name VARCHAR
);
INSERT INTO user_events (id, user_id, event_name)
VALUES (1, 1, 'Login'),
(2, 2, 'Login'),
(3, 3, 'Login'),
(4, 1, 'Logout'),
(5, 2, 'Logout'),
(6, 4, 'Login'),
(7, 1, 'Login');

Exemple de requête : estimer le nombre d’ID utilisateur distincts

SELECT APPROX_COUNT_DISTINCT(user_id) AS approx_distinct_user_count
FROM user_events;

Résultat

| approx_distinct_user_count |
|----------------------------|
| 4 |