ClickHouse/docs/es/engines/table-engines/mergetree-family/aggregatingmergetree.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* split up select.md

* array-join.md basic refactoring

* distinct.md basic refactoring

* format.md basic refactoring

* from.md basic refactoring

* group-by.md basic refactoring

* having.md basic refactoring

* additional index.md refactoring

* into-outfile.md basic refactoring

* join.md basic refactoring

* limit.md basic refactoring

* limit-by.md basic refactoring

* order-by.md basic refactoring

* prewhere.md basic refactoring

* adjust operators/index.md links

* adjust sample.md links

* adjust more links

* adjust operatots links

* fix some links

* adjust aggregate function article titles

* basic refactor of remaining select clauses

* absolute paths in make_links.sh

* run make_links.sh

* remove old select.md locations

* translate docs/es

* translate docs/fr

* translate docs/fa

* remove old operators.md location

* change operators.md links

* adjust links in docs/es

* adjust links in docs/es

* minor texts adjustments

* wip

* update machine translations to use new links

* fix changelog

* es build fixes

* get rid of some select.md links

* temporary adjust ru links

* temporary adjust more ru links

* improve curly brace handling

* adjust ru as well

* fa build fix

* ru link fixes

* zh link fixes

* temporary disable part of anchor checks
2020-05-15 07:34:54 +03:00

4.0 KiB

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 35 AgregaciónMergeTree

Aggregatingmergetree

El motor hereda de Método de codificación de datos:, alterando la lógica para la fusión de partes de datos. ClickHouse reemplaza todas las filas con la misma clave principal (o más exactamente, con la misma clave de clasificación) con una sola fila (dentro de una parte de datos) que almacena una combinación de estados de funciones agregadas.

Usted puede utilizar AggregatingMergeTree tablas para la agregación de datos incrementales, incluidas las vistas materializadas agregadas.

El motor procesa todas las columnas con los siguientes tipos:

Es apropiado usar AggregatingMergeTree si reduce el número de filas por pedidos.

Creación de una tabla

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
) ENGINE = AggregatingMergeTree()
[PARTITION BY expr]
[ORDER BY expr]
[SAMPLE BY expr]
[TTL expr]
[SETTINGS name=value, ...]

Para obtener una descripción de los parámetros de solicitud, consulte descripción de la solicitud.

Cláusulas de consulta

Al crear un AggregatingMergeTree mesa de la misma clausula se requieren, como al crear un MergeTree tabla.

Método obsoleto para crear una tabla

!!! attention "Atención" No use este método en proyectos nuevos y, si es posible, cambie los proyectos antiguos al método descrito anteriormente.

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
) ENGINE [=] AggregatingMergeTree(date-column [, sampling_expression], (primary, key), index_granularity)

Todos los parámetros tienen el mismo significado que en MergeTree.

SELECCIONAR e INSERTAR

Para insertar datos, utilice INSERT SELECT consulta con funciones agregadas -State-. Al seleccionar datos de AggregatingMergeTree mesa, uso GROUP BY cláusula y las mismas funciones agregadas que al insertar datos, pero usando -Merge sufijo.

En los resultados de SELECT consulta, los valores de AggregateFunction tipo tiene representación binaria específica de la implementación para todos los formatos de salida de ClickHouse. Si volcar datos en, por ejemplo, TabSeparated formato con SELECT consulta entonces este volcado se puede cargar de nuevo usando INSERT consulta.

Ejemplo de una vista materializada agregada

AggregatingMergeTree vista materializada que mira el test.visits tabla:

CREATE MATERIALIZED VIEW test.basic
ENGINE = AggregatingMergeTree() PARTITION BY toYYYYMM(StartDate) ORDER BY (CounterID, StartDate)
AS SELECT
    CounterID,
    StartDate,
    sumState(Sign)    AS Visits,
    uniqState(UserID) AS Users
FROM test.visits
GROUP BY CounterID, StartDate;

Insertar datos en el test.visits tabla.

INSERT INTO test.visits ...

Los datos se insertan tanto en la tabla como en la vista test.basic que realizará la agregación.

Para obtener los datos agregados, necesitamos ejecutar una consulta como SELECT ... GROUP BY ... de la vista test.basic:

SELECT
    StartDate,
    sumMerge(Visits) AS Visits,
    uniqMerge(Users) AS Users
FROM test.basic
GROUP BY StartDate
ORDER BY StartDate;

Artículo Original