GraphiteMergeTree 

Ce moteur est conçu pour l'amincissement et l'agrégation / moyenne (cumul) Graphite données. Il peut être utile aux développeurs qui veulent utiliser ClickHouse comme un magasin de données pour Graphite.

Vous pouvez utiliser N'importe quel moteur de table ClickHouse pour stocker les données Graphite si vous n'avez pas besoin de cumul, mais si vous avez besoin d'un cumul, utilisez GraphiteMergeTree. Le moteur réduit le volume de stockage et augmente l'efficacité des requêtes de Graphite.

Le moteur hérite des propriétés de MergeTree.

Création d'une Table 

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    Path String,
    Time DateTime,
    Value <Numeric_type>,
    Version <Numeric_type>
    ...
) ENGINE = GraphiteMergeTree(config_section)
[PARTITION BY expr]
[ORDER BY expr]
[SAMPLE BY expr]
[SETTINGS name=value, ...]

Voir une description détaillée de la CREATE TABLE requête.

Un tableau pour les données de Graphite devrait avoir les colonnes suivantes pour les données suivantes:

  • Nom métrique (Capteur De Graphite). Type de données: String.

  • Temps de mesure de la métrique. Type de données: DateTime.

  • La valeur de la métrique. Type de données: tout numérique.

  • La Version de la métrique. Type de données: tout numérique.

    ClickHouse enregistre les lignes avec la version la plus élevée ou la dernière écrite si les versions sont les mêmes. Les autres lignes sont supprimées lors de la fusion des parties de données.

Les noms de ces colonnes doivent être définis dans la configuration de cumul.

GraphiteMergeTree paramètres

  • config_section — Name of the section in the configuration file, where are the rules of rollup set.

Les clauses de requête

Lors de la création d'un GraphiteMergeTree de 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

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    EventDate Date,
    Path String,
    Time DateTime,
    Value <Numeric_type>,
    Version <Numeric_type>
    ...
) ENGINE [=] GraphiteMergeTree(date-column [, sampling_expression], (primary, key), index_granularity, config_section)

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

  • config_section — Name of the section in the configuration file, where are the rules of rollup set.

Configuration De Cumul 

Les paramètres de cumul sont définis par graphite_rollup paramètre dans la configuration du serveur. Le nom du paramètre pourrait être tout. Vous pouvez créer plusieurs configurations et les utiliser pour différentes tables.

Structure de configuration de cumul:

  required-columns
  patterns

Les Colonnes Requises 

  • path_column_name — The name of the column storing the metric name (Graphite sensor). Default value: Path.
  • time_column_name — The name of the column storing the time of measuring the metric. Default value: Time.
  • value_column_name — The name of the column storing the value of the metric at the time set in time_column_name. Valeur par défaut: Value.
  • version_column_name — The name of the column storing the version of the metric. Default value: Timestamp.

Modèle 

La Structure de la patterns section:

pattern
    regexp
    function
pattern
    regexp
    age + precision
    ...
pattern
    regexp
    function
    age + precision
    ...
pattern
    ...
default
    function
    age + precision
    ...

Lors du traitement d'une ligne, ClickHouse vérifie les règles pattern section. Chacun pattern (comprendre default) les articles peuvent contenir des function paramètre d'agrégation, retention les paramètres ou les deux à la fois. Si le nom de la métrique correspond regexp les règles de la pattern section (ou sections) sont appliquées; sinon, les règles de la default section sont utilisés.

Champs pour pattern et default section:

  • regexp– A pattern for the metric name.
  • age – The minimum age of the data in seconds.
  • precision– How precisely to define the age of the data in seconds. Should be a divisor for 86400 (seconds in a day).
  • function – The name of the aggregating function to apply to data whose age falls within the range [age, age + precision].

Exemple De Configuration 

<graphite_rollup>
    <version_column_name>Version</version_column_name>
    <pattern>
        <regexp>click_cost</regexp>
        <function>any</function>
        <retention>
            <age>0</age>
            <precision>5</precision>
        </retention>
        <retention>
            <age>86400</age>
            <precision>60</precision>
        </retention>
    </pattern>
    <default>
        <function>max</function>
        <retention>
            <age>0</age>
            <precision>60</precision>
        </retention>
        <retention>
            <age>3600</age>
            <precision>300</precision>
        </retention>
        <retention>
            <age>86400</age>
            <precision>3600</precision>
        </retention>
    </default>
</graphite_rollup>

Article Original

Rating: 3.8 - 4 votes

Was this content helpful?
★★★★☆