Saltar al contenido principal

Descripción

El combinador State puede aplicarse a la función avg para generar un estado intermedio de tipo AggregateFunction(avg, T), donde T es el tipo especificado para el promedio.

Ejemplo de uso

En este ejemplo, veremos cómo usar el tipo AggregateFunction, junto con la función avgState para agregar datos de tráfico de sitios web. Primero, cree la tabla de origen para los datos de tráfico del sitio web:
Cree la tabla de agregación que almacenará los tiempos de respuesta promedio. Tenga en cuenta que avg no puede usar el tipo SimpleAggregateFunction, ya que requiere un estado complejo (una suma y un recuento). Por ello, se utiliza el tipo AggregateFunction:
Crea una vista materializada incremental que actuará como disparador de inserción para los nuevos datos y almacenará el estado intermedio en la tabla de destino definida anteriormente:
Inserte algunos datos iniciales en la tabla de origen para crear una parte en disco:
Inserta más datos para crear una segunda parte en disco:
Examine la tabla de destino page_performance:
Observe que la columna avg_response_time es de tipo AggregateFunction(avg, UInt32) y almacena información de estado intermedio. Observe también que los datos de la fila para avg_response_time no son de utilidad y que aparecen caracteres extraños como �, n, F, }. Esto se debe a que el terminal intenta mostrar datos binarios como texto. El motivo es que los tipos AggregateFunction almacenan su estado en un formato binario optimizado para un almacenamiento y procesamiento eficientes, no para ser legible por humanos. Este estado binario contiene toda la información necesaria para calcular el promedio. Para utilizarlo, use el combinador Merge:
Ahora vemos los promedios correctos:

Véase también

Última modificación el 12 de junio de 2026