SimpleAggregateFunction 

El tipo de dato SimpleAggregateFunction(name, types_of_arguments…) almacena el valor actual de la función agregada, no almacena su estado completo como hace AggregateFunction. Esta optimización se puede aplicar a las funciones con la siguiente propiedad: el resultado de aplicar una función f a un conjunto de filas S1 UNION ALL S2 se puede obtener aplicando f a partes de la fila establecida por separado, y luego aplicar de nuevo f los resultados: f(S1 UNION ALL S2) = f(f(S1) UNION ALL f(S2)). Un ejemplo de función con esta propiedad es la suma. Esta propiedad garantiza que los resultados de agregación parcial son suficientes para calcular el combinado, por lo que no tenemos que almacenar y procesar ningún dato adicional.

La lista de functiones de agregación soportadas son:

Cuando se usa SimpleAggregateFunction(func, Type) el resultado es almacenado datos Type así que no necesita aplicar los suficos -Merge/-State a las funciones de agregación para usarlas. Para la misma función de agregación SimpleAggregateFunction tiene un mejor rendimiento que AggregateFunction.

Parámetros

  • Nombre de la función de agregado.
  • Tipos de los argumentos de la función agregada.

Ejemplo

CREATE TABLE t
(
    column1 SimpleAggregateFunction(sum, UInt64),
    column2 SimpleAggregateFunction(any, String)
) ENGINE = ...

Artículo Original

Rating: 1.1 - 8 votes

Was this content helpful?
★☆☆☆☆