Descripción
AggregateFunction y almacenarse en una tabla. Esto suele hacerse
mediante una vista materializada.
Hay dos combinadores
de funciones de agregación que se usan habitualmente con el tipo AggregateFunction:
- El combinador de funciones de agregación [
-State], que, al añadirse al nombre de una función de agregación, produce estados intermedios deAggregateFunction. - El combinador de funciones de agregación [
-Merge], que se utiliza para obtener el resultado final de una agregación a partir de los estados intermedios.
Sintaxis
aggregate_function_name- El nombre de una función de agregación. Si la función es paramétrica, también se deben especificar sus parámetros.types_of_arguments- Los tipos de los argumentos de la función de agregación.
Uso
Inserción de datos
AggregateFunction, puede
usar INSERT SELECT con funciones de agregación y el
combinador de funciones de agregación
-State.
Por ejemplo, para insertar en columnas de tipo AggregateFunction(uniq, UInt64) y
AggregateFunction(quantiles(0.5, 0.9), UInt64), usaría las siguientes
funciones de agregación con combinadores.
uniq y quantiles, uniqState y quantilesState
(con el combinador -State añadido) devuelven el estado en lugar del valor final.
En otras palabras, devuelven un valor del tipo AggregateFunction.
En los resultados de la consulta SELECT, los valores del tipo AggregateFunction tienen
representaciones binarias específicas de la implementación en todos los formatos de salida
de ClickHouse.
Hay una configuración especial de nivel de sesión, aggregate_function_input_format, que permite construir el estado a partir de los valores de entrada.
Admite los siguientes formatos:
state- cadena binaria con el estado serializado (valor predeterminado). Si genera un volcado de datos, por ejemplo, en el formatoTabSeparatedcon una consultaSELECT, ese volcado puede volver a cargarse con la consultaINSERT.value- el formato esperará un único valor del argumento de la función de agregación o, en el caso de varios argumentos, una tupla con ellos; este valor se deserializará para formar el estado correspondientearray- el formato esperará un Array de valores, como se describe en la opciónvalueanterior; todos los elementos del array se agregarán para formar el estado
Selección de datos
AggregatingMergeTree, use la cláusula GROUP BY
y las mismas funciones de agregación que al insertar los datos, pero use el
combinador -Merge.
Una función de agregación con el combinador -Merge añadido toma un conjunto de
estados, los combina y devuelve el resultado de la agregación completa de los datos.
Por ejemplo, las dos consultas siguientes devuelven el mismo resultado:
Ejemplo de uso
- Blog: Uso de combinadores de agregación en ClickHouse
- Combinador MergeState.
- Combinador State.