ClickHouse/docs/fr/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.1 KiB

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 35 AggregatingMergeTree

Aggregatingmergetree

Le moteur hérite de MergeTree, modifier la logique pour les parties de données Fusion. ClickHouse remplace toutes les lignes avec la même clé primaire (ou, plus précisément, avec la même clé de tri) avec une seule ligne (dans un rayon d'une partie des données) qui stocke une combinaison d'états de fonctions d'agrégation.

Vous pouvez utiliser AggregatingMergeTree tables pour l'agrégation incrémentielle des données, y compris pour les vues matérialisées agrégées.

Le moteur traite toutes les colonnes avec les types suivants:

Il est approprié d'utiliser AggregatingMergeTree si elle réduit le nombre de lignes par commande.

Création d'une Table

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, ...]

Pour une description des paramètres de requête, voir demande de description.

Les clauses de requête

Lors de la création d'un AggregatingMergeTree la table de la même clause sont nécessaires, comme lors de la création d'un MergeTree table.

Méthode obsolète pour créer une Table

!!! attention "Attention" N'utilisez pas cette méthode dans les nouveaux projets et, si possible, remplacez les anciens projets par la méthode décrite ci-dessus.

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)

Tous les paramètres ont la même signification que dans MergeTree.

Sélectionner et insérer

Pour insérer des données, utilisez INSERT SELECT requête avec l'ensemble-l'État des fonctions. Lors de la sélection des données AggregatingMergeTree table, utilisez GROUP BY et les mêmes fonctions d'agrégat que lors de l'insertion de données, mais en utilisant -Merge suffixe.

Dans les résultats de SELECT requête, les valeurs de AggregateFunction type ont une représentation binaire spécifique à l'implémentation pour tous les formats de sortie ClickHouse. Si les données de vidage dans, par exemple, TabSeparated format avec SELECT requête alors ce vidage peut être chargé en utilisant INSERT requête.

Exemple D'une vue matérialisée agrégée

AggregatingMergeTree vue matérialisée qui regarde le test.visits table:

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;

Insertion de données dans la test.visits table.

INSERT INTO test.visits ...

Les données sont insérées dans la table et la vue test.basic que va effectuer l'agrégation.

Pour obtenir les données agrégées, nous devons exécuter une requête telle que SELECT ... GROUP BY ... à partir de la vue test.basic:

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

Article Original