Todos os produtos
Search
Central de documentação

Simple Log Service:Funções HyperLogLog

Última atualização: Jul 03, 2026

As funções HyperLogLog são funções de agregação aproximada, semelhantes à approx_distinct. Elas retornam rapidamente resultados estimados na análise de grandes conjuntos de dados.

Estão disponíveis as seguintes funções HyperLogLog.

Importante

Para usar strings em instruções analíticas, coloque-as entre aspas simples (''). Strings sem aspas ou entre aspas duplas ("") indicam nomes de campos ou colunas. Por exemplo:

'status'

indica a string status, enquanto

status

ou

"status"

indica o campo de log status.

Função

Sintaxe

Descrição

Suporte SQL

Suporte SPL

Função approx_set

approx_set(x)

Estima o número de valores distintos em x. O erro padrão máximo é 0,01625.

×

Função cardinality

cardinality(x)

Converte um valor HyperLogLog em um valor bigint.

×

Função empty_approx_set

empty_approx_set()

Retorna um conjunto HyperLogLog vazio. O erro padrão máximo é 0,01625.

×

Função merge

merge(x)

Combina vários conjuntos HyperLogLog em um único conjunto.

×

Função approx_set

A função approx_set estima o número de valores distintos em x. O erro padrão máximo é 0,01625.

Syntax

approx_set(x)

Parameters

Parâmetro

Descrição

x

Uma expressão de qualquer tipo de dado.

Return value type

HyperLogLog

Examples

Estime os visitantes únicos (UVs) por minuto de um site. O resultado vem no formato HyperLogLog.

  • Instrução de consulta e análise

    * |
    SELECT
      date_trunc('minute', __time__) AS Time,
      approx_set(client_ip) AS UV
    FROM  website_log
    GROUP BY
      Time
    ORDER BY
      Time
  • Resultados da consulta e análise: Retorna Time (timestamp truncado ao minuto) e UV (conjunto aproximado codificado da função approx_set). Total: 16 registros.

Função cardinality

A função cardinality converte um valor HyperLogLog em um valor bigint.

Syntax

cardinality(x)

Parameters

Parâmetro

Descrição

x

Uma expressão HyperLogLog.

Return value type

bigint

Examples

Use approx_set para estimar os UVs por minuto (retorna um valor HyperLogLog) e, em seguida, use cardinality para converter esse valor em bigint.

  • Instrução de consulta e análise

    * |
    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
  • Os resultados mostram as contagens de UV por minuto nas colunas Time e UV. Por exemplo, 78 UVs às 2021-09-09 15:12:00 e 561 às 15:13:00.

Função empty_approx_set

A função empty_approx_set retorna um conjunto HyperLogLog vazio. O erro padrão máximo é 0,01625.

Syntax

empty_approx_set()

Return value type

HyperLogLog

Examples

Retorna um conjunto HyperLogLog vazio.

  • Instrução de consulta e análise

    * | SELECT  empty_approx_set()
  • Retorna uma única coluna _col0 com o valor AgwAAA==, que representa um conjunto aproximado vazio codificado em Base64.

Função merge

A função merge agrega vários conjuntos HyperLogLog em um único conjunto.

Syntax

merge(x)

Parameters

Parâmetro

Descrição

x

Uma expressão HyperLogLog.

Return value type

HyperLogLog

Examples

Use approx_set para estimar os UVs por minuto, merge para agregar os conjuntos de UV e cardinality para converter o valor final em bigint.

  • Instrução de consulta e análise

    * |
    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
      )
  • Resultados da consulta e análise: As contagens de UV por minuto variam (561, 658, 625), enquanto Total_UV exibe o total acumulado (8564) em todas as linhas.