Tous les produits
Search
Centre de documentation

Simple Log Service:Fonctions HyperLogLog

Dernière mise à jour :Aug 19, 2026

Les fonctions HyperLogLog sont des fonctions d'agrégation approximatives, similaires à approx_distinct. Elles renvoient rapidement des résultats estimés lors de l'analyse de grands ensembles de données.

Les fonctions HyperLogLog suivantes sont disponibles.

Important

Si vous souhaitez utiliser des chaînes de caractères dans les instructions d'analyse, entourez-les de guillemets simples (''). Les chaînes non entourées de guillemets ou entourées de guillemets doubles ("") indiquent des noms de champ ou de colonne. Par exemple,

'status'

indique la chaîne de caractères « status », tandis que

status

ou

"status"

indique le champ de journal « status ».

Fonction

Syntaxe

Description

Prise en charge SQL

Prise en charge SPL

Fonction approx_set

approx_set(x)

Estime le nombre de valeurs distinctes dans x. L'erreur standard maximale par défaut est de 0,01625.

√

×

Fonction cardinality

cardinality(x)

Convertit une valeur HyperLogLog en valeur bigint.

√

×

Fonction empty_approx_set

empty_approx_set()

Renvoie un ensemble HyperLogLog vide. L'erreur standard maximale par défaut est de 0,01625.

√

×

Fonction merge

merge(x)

Fusionne plusieurs ensembles HyperLogLog en un seul ensemble.

√

×

Fonction approx_set

La fonction approx_set estime le nombre de valeurs distinctes dans x. L'erreur standard maximale par défaut est de 0,01625.

Syntaxe

approx_set(x)

Paramètres

Paramètre

Description

x

Une expression de n'importe quel type de données.

Type de valeur de retour

HyperLogLog

Exemples

Estimez les visiteurs uniques (UV) par minute pour un site web. Le résultat est au format HyperLogLog.

  • Instruction de requête et d'analyse

    * |
    SELECT
      date_trunc('minute', __time__) AS Time,
      approx_set(client_ip) AS UV
    FROM  website_log
    GROUP BY
      Time
    ORDER BY
      Time
  • Résultats de la requête et de l'analyse : Renvoie Time (horodatage tronqué à la minute) et UV (ensemble approximatif encodé issu de approx_set). Total : 16 enregistrements.

Fonction cardinality

La fonction cardinality convertit une valeur HyperLogLog en valeur bigint.

Syntaxe

cardinality(x)

Paramètres

Paramètre

Description

x

Une expression HyperLogLog.

Type de valeur de retour

bigint

Exemples

Utilisez approx_set pour estimer les UV par minute (renvoie une valeur HyperLogLog), puis cardinality pour convertir cette valeur en bigint.

  • Instruction de requête et d'analyse

    * |
    SELECT
      Time,
      cardinality(UV) AS UV
    FROM  (
        SELECT
          date_trunc('minute', __time__) AS Time,
          approx_set(client_ip) AS UV
        FROM      website_log
        GROUP BY
          Time
        ORDER BY
          Time
      ) AS UV
  • Les résultats affichent le nombre d'UV par minute dans les colonnes Time et UV. Par exemple, 78 UV à 2021-09-09 15:12:00 et 561 à 15:13:00.

Fonction empty_approx_set

La fonction empty_approx_set renvoie un ensemble HyperLogLog vide. L'erreur standard maximale par défaut est de 0,01625.

Syntaxe

empty_approx_set()

Type de valeur de retour

HyperLogLog

Exemples

Renvoie un ensemble HyperLogLog vide.

  • Instruction de requête et d'analyse

    * | SELECT  empty_approx_set()
  • Renvoie une seule colonne _col0 avec la valeur AgwAAA==, qui correspond à un ensemble approximatif vide encodé en Base64.

Fonction merge

La fonction merge agrège plusieurs ensembles HyperLogLog en un seul ensemble.

Syntaxe

merge(x)

Paramètres

Paramètre

Description

x

Une expression HyperLogLog.

Type de valeur de retour

HyperLogLog

Exemples

Utilisez approx_set pour estimer les UV par minute, merge pour agréger les ensembles d'UV, et cardinality pour convertir la valeur finale en bigint.

  • Instruction de requête et d'analyse

    * |
    SELECT
      Time,
      cardinality(UV) AS UV,
      cardinality(merge(UV) over()) AS Total_UV
    FROM  (
        SELECT
          date_trunc('minute', __time__) AS Time,
          approx_set(client_ip) AS UV
        FROM      log
        GROUP BY
          Time
        ORDER BY
          Time
      )
  • Résultats de la requête et de l'analyse : Le nombre d'UV par minute varie (561, 658, 625), tandis que Total_UV affiche le total cumulé (8564) sur toutes les lignes.