Todos los productos
Search
Centro de documentos

Simple Log Service:Instrucciones de agregación

Última actualización: Sep 02, 2026

Las instrucciones de agregación realizan análisis estadísticos, ordenamiento y limitación de filas en los resultados de consultas de registros.

stats

La instrucción stats realiza análisis estadísticos sobre los registros, de forma similar a las funciones de agregación de SQL como COUNT, SUM y AVG. Esta instrucción agrupa y agrega campos específicos en los datos de registros.

Importante
  • Esta instrucción se utiliza únicamente para consultas y análisis en un logstore. No aplica a escenarios como transformación de datos, consumo de reglas de Structured Process Language (SPL), Ingest Processors o configuraciones de Logtail.

  • De forma predeterminada, la instrucción stats devuelve los primeros 100 resultados de agregación. Para obtener más resultados, utilice la instrucción limit.

Sintaxis

stats <output>=<aggOperator> by <group>,[<group>...]

Parámetros

Parámetro

Tipo

Obligatorio

Descripción

output

String

Sí

Especifica un alias para el campo del resultado estadístico.

aggOperator

SQLExp

Sí

A continuación se listan las funciones de agregación compatibles:

  • count

  • count_if

  • min

  • max

  • sum

  • avg

  • skewness

  • kurtosis

  • approx_percentile

  • approx_distinct

  • bool_and

  • bool_or

  • every

  • arbitrary

  • array_agg

group

String

No

Especifica la dimensión para la agregación. Es equivalente al campo GROUP BY en SQL.

Ejemplos

  • Ejemplo 1: Calcular el valor de pv de los registros de acceso agrupado por ip.

    • Instrucción SPL

      * | stats pv=count(*) by ip
    • Datos de entrada

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • Datos de salida

      ip: 192.168.1.2
      pv: 1
      
      ip: 192.168.1.1
      pv: 2
  • Ejemplo 2: Calcular la latencia min/max para todas las direcciones ip en el registro accesslog.

    • Instrucción SPL

      * 
      | extend latencyMs=cast(latencyMs as bigint)
      | stats minLatencyMs=min(latencyMs), maxLatencyMs=max(latencyMs) by ip
    • Datos de entrada

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • Datos de salida

      ip: 192.168.1.2
      minLatencyMs: 10
      maxLatencyMs: 20
      
      ip: 192.168.1.1
      minLatencyMs: 10
      maxLatencyMs: 10
  • Ejemplo 3: Calcular el total de pv en un registro de acceso.

    • Instrucción SPL

      * | stats pv=count(*)
    • Datos de entrada

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • Datos de salida

      pv: 3

sort

La instrucción sort ordena los resultados de la consulta según los valores de los campos o los resultados estadísticos en orden ascendente (asc) o descendente (desc).

Importante

Esta instrucción se utiliza únicamente para consultas y análisis en un logstore. No aplica a escenarios como transformación de datos, consumo de reglas SPL, Ingest Processors o configuraciones de Logtail.

Sintaxis

sort <field> [asc/desc] ,(<field> [asc/desc])

Parámetros

Parámetro

Tipo

Obligatorio

Descripción

field

String

Sí

Especifica el campo por el cual ordenar. Los siguientes tipos de campo son compatibles:

  • Campos originales del registro, como status y request_time.

  • Campos estadísticos, como count(*) y avg(response_time).

  • Campos de tiempo, como @timestamp.

asc/desc

String

No

  • asc: Ordena de forma ascendente (predeterminado).

  • desc: Ordena de forma descendente.

Ejemplo

Ordene el registro accesslog por latencyMs.

  • Instrucción SPL

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs desc
  • Datos de entrada

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • Datos de salida

    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
    
    ip: 192.168.1.1
    latencyMs: 10

limit

La instrucción limit restringe la cantidad de filas de registros devueltas en los resultados de la consulta, lo que ayuda a prevenir problemas de rendimiento causados por conjuntos de resultados excesivamente grandes.

Importante
  • Esta instrucción se utiliza únicamente para consultas y análisis en un logstore. No aplica a escenarios como transformación de datos, consumo de reglas SPL, Ingest Processors o configuraciones de Logtail.

  • Si no utiliza la instrucción sort para especificar un criterio de ordenamiento, la salida de la instrucción limit se presenta en un orden aleatorio. Esto se debe a que el orden natural de los registros no está garantizado durante el almacenamiento.

Sintaxis

limit (<offset>,) <size>

Parámetros

Parámetro

Tipo

Obligatorio

Descripción

offset

Integer

No

Omite las primeras offset filas.

size

Integer

Sí

El límite de filas.

Ejemplo

Ordene un registro de acceso por el campo latencyMs y luego recupere la primera fila.

  • Instrucción SPL

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs
    | limit 1
  • Datos de entrada

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • Datos de salida

    ip: 192.168.1.1
    latencyMs: 20