* Update of english version of descriprion of the table function `file`. * New syntax for ReplacingMergeTree. Some improvements in text. * Significantly change article about SummingMergeTree. Article is restructured, text is changed in many places of the document. New syntax for table creation is described. * Descriptions of AggregateFunction and AggregatingMergeTree are updated. Russian version. * New syntax for new syntax of CREATE TABLE * Added english docs on Aggregating, Replacing and SummingMergeTree. * CollapsingMergeTree docs. English version. * 1. Update of CollapsingMergeTree. 2. Minor changes in markup * Update aggregatefunction.md * Update aggregatefunction.md * Update aggregatefunction.md * Update aggregatingmergetree.md * GraphiteMergeTree docs update. New syntax for creation of Replicated* tables. Minor changes in *MergeTree tables creation syntax. * Markup fix * Markup and language fixes * Clarification in the CollapsingMergeTree article * DOCAPI-4821. Sync between ru and en versions of docs. * Fixed the ambiguity in geo functions description. * Example of JOIN in ru docs * Deleted misinforming example. * Fixed links to IN operators. * Updated the description of ALTER MODIFY. * [RU] Updated ALTER MODIFY description. * DOCAPI-4479. English changes are translated into russian. * DOCAPI-4479. Minor text and markup fixes. * DOCAPI-4479. Minor text edits.
6.7 KiB
GraphiteMergeTree
Движок предназначен для прореживания и агрегирования/усреднения (rollup) данных Graphite. Он может быть интересен разработчикам, которые хотят использовать ClickHouse как хранилище данных для Graphite.
Если rollup не требуется, то для хранения данных Graphite можно использовать любой движок таблиц ClickHouse, в противном случае используйте GraphiteMergeTree
. Движок уменьшает объем хранения и повышает эффективность запросов от Graphite.
Движок наследует свойства от MergeTree.
Создание таблицы
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, ...]
Описание параметров запроса смотрите в описании запроса.
Таблица для данных Graphite должна содержать следующие столбцы:
-
Колонка с названием метрики (Graphite sensor). Тип данных:
String
. -
Столбец со временем измерения метрики. Тип данных
DateTime
. -
Столбец со значением метрики. Тип данных: любой числовой.
-
Столбец с версией метрики. Тип данных: любой числовой.
ClickHouse сохраняет строки с последней версией или последнюю записанную строку, если версии совпадают. Другие строки удаляются при слиянии кусков данных.
Имена этих столбцов должны быть заданы в конфигурации rollup.
Параметры GraphiteMergeTree
config_section
— имя раздела в конфигурационном файле, в котором находятся правила rollup.
Секции запроса
При создании таблицы GraphiteMergeTree
используются те же секции запроса, что при создании таблицы MergeTree
.
Устаревший способ создания таблицы
!!! attention Не используйте этот способ в новых проектах и по возможности переведите старые проекты на способ описанный выше.
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)
Все параметры, кроме config_section
имеют то же значение, что в MergeTree
.
config_section
— имя раздела в конфигурационном файле, в котором находятся правила rollup.
Конфигурация rollup
Настройки для прореживания данных задаются параметром graphite_rollup Имя параметра может быть любым. Можно создать несколько конфигураций и использовать их для разных таблиц.
Структура конфигурации rollup:
required-columns
pattern
regexp
function
age + precision
...
pattern
...
default
function
age + precision
...
При обработке строки ClickHouse проверяет правила в разделе pattern
. Если имя метрики соответствует шаблону regexp
, то применяются правила из раздела pattern
, в противном случае из раздела default
.
Правила определяются с помощью полей function
и age + precision
.
Поля для разделов pattenrn
и default
:
regexp
– шаблон имени метрики.age
– минимальный возраст данных в секундах.precision
– точность определения возраста данных в секундах.function
– имя агрегирующей функции, которую следует применить к данным, чей возраст оказался в интервале[age, age + precision]
.
required-columns
:
path_column_name
— колонка с названием метрики (Graphite sensor).time_column_name
— столбец со временем измерения метрики.value_column_name
— столбец со значением метрики в момент времени, установленный вtime_column_name
.version_column_name
— столбец с версией метрики.
Пример настройки:
<graphite_rollup>
<path_column_name>Path</path_column_name>
<time_column_name>Time</time_column_name>
<value_column_name>Value</value_column_name>
<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>