Todos los productos
Search
Centro de documentos

Simple Log Service:Funciones HyperLogLog

Última actualización: Sep 02, 2026

Las funciones HyperLogLog son funciones de agregación aproximada, similares a approx_distinct. Devuelven resultados estimados rápidamente al analizar grandes conjuntos de datos.

A continuación se presentan las funciones HyperLogLog disponibles.

Importante

Para usar cadenas en instrucciones analíticas, enciérrelas entre comillas simples (''). Las cadenas sin comillas o entre comillas dobles ("") indican nombres de campo o de columna. Por ejemplo,

'status'

indica la cadena status, mientras que

status

o

"status"

indican el campo de registro status.

Función

Sintaxis

Descripción

Compatibilidad con SQL

Compatibilidad con SPL

approx_set function

approx_set(x)

Estima el número de valores distintos en x. El error estándar máximo predeterminado es 0.01625.

√

×

cardinality function

cardinality(x)

Convierte un valor HyperLogLog a un valor bigint.

√

×

empty_approx_set function

empty_approx_set()

Devuelve un conjunto HyperLogLog vacío. El error estándar máximo predeterminado es 0.01625.

√

×

merge function

merge(x)

Combina varios conjuntos HyperLogLog en uno solo.

√

×

Función approx_set

La función approx_set estima el número de valores distintos en x. El error estándar máximo predeterminado es 0.01625.

Syntax

approx_set(x)

Parameters

Parámetro

Descripción

x

Una expresión de cualquier tipo de dato.

Return value type

HyperLogLog

Examples

Estime los visitantes únicos (UV) por minuto de un sitio web. El resultado se presenta en formato HyperLogLog.

  • Instrucción de consulta y análisis

    * |
    SELECT
      date_trunc('minute', __time__) AS Time,
      approx_set(client_ip) AS UV
    FROM  website_log
    GROUP BY
      Time
    ORDER BY
      Time
  • Resultados de la consulta y el análisis: devuelve Time (marca de tiempo truncada al minuto) y UV (conjunto aproximado codificado generado por approx_set). Total: 16 registros.

Función cardinality

La función cardinality convierte un valor HyperLogLog a un valor bigint.

Syntax

cardinality(x)

Parameters

Parámetro

Descripción

x

Una expresión HyperLogLog.

Return value type

bigint

Examples

Use approx_set para estimar los UV por minuto (devuelve un valor HyperLogLog) y luego use cardinality para convertir ese valor a bigint.

  • Instrucción de consulta y análisis

    * |
    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
  • Los resultados muestran los conteos de UV por minuto en las columnas Time y UV. Por ejemplo, 78 UV a las 2021-09-09 15:12:00 y 561 a las 15:13:00.

Función empty_approx_set

La función empty_approx_set devuelve un conjunto HyperLogLog vacío. El error estándar máximo predeterminado es 0.01625.

Syntax

empty_approx_set()

Return value type

HyperLogLog

Examples

Devuelve un conjunto HyperLogLog vacío.

  • Instrucción de consulta y análisis

    * | SELECT  empty_approx_set()
  • Devuelve una sola columna _col0 con el valor AgwAAA==, que corresponde a un conjunto aproximado vacío codificado en Base64.

Función merge

La función merge combina varios conjuntos HyperLogLog en un solo conjunto.

Syntax

merge(x)

Parameters

Parámetro

Descripción

x

Una expresión HyperLogLog.

Return value type

HyperLogLog

Examples

Use approx_set para estimar los UV por minuto, merge para combinar los conjuntos de UV y cardinality para convertir el valor final a bigint.

  • Instrucción de consulta y análisis

    * |
    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 de la consulta y el análisis: los conteos de UV por minuto varían (561, 658, 625), mientras que Total_UV muestra el total acumulado (8564) en todas las filas.