GraphiteMergeTree該引擎用來對Graphite資料(圖資料)進行瘦身及彙總。對於想使用ClickHouse來儲存Graphite資料的開發者來說可能有用。
如果不需要對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以最大的版本號儲存行記錄,若版本號相同,保留最後寫入的資料。
以上列必須設定在彙總引數配置中。
GraphiteMergeTree引數
- config_section - 配置檔案中標識彙總規則的節點名稱
建表語句
在建立GraphiteMergeTree表時,需要採用和clauses相同的語句,就像建立MergeTree一樣。
彙總配置的引數
彙總的配置引數由伺服器配置的graphite_rollup引數定義。引數名稱可以是任意的。允許為多個不同表建立多組配置並使用。
彙總配置的結構如下: 所需的列模式Patterns
所需的列
- path_column_name — 儲存指標名稱的列名 (Graphite sensor). 預設值: Path.
- time_column_name — 儲存指標時間度量的列名. 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.預設值: Value.
- version_column_name - 儲存指標的版本號列. 預設值: Timestamp.
模式Patterns
patterns 的結構:
pattern
regexp
function
pattern
regexp
age + precision
...
pattern
regexp
function
age + precision
...
pattern
...
default
function
age + precision
...
!!! 注意 "Attention" 模式必須嚴格按順序配置:
- 不含'function' or 'retention'的Patterns
- 同時含有'function' and 'retention'的Patterns
- 'default'的Patterns.
ClickHouse在處理行記錄時,會檢查pattern節點的規則。每個pattern(含default)節點可以包含function用於聚合操作,或retention引數,或者兩者都有。如果指標名稱和regexp相匹配,相應pattern的規則會生效;否則,使用default節點的規則。
pattern和default節點的欄位設定:
- regexp– 指標名的pattern.
- age – 資料的最小存活時間(按秒算).
- precision– 按秒來衡量資料存活時間時的精確程度. 必須能被86400整除 (一天的秒數).
- function – 對於存活時間在 [age, age + precision]之內的資料,需要使用的聚合函式
配置示例
<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>
資料分享
參考文章
- ClickHouse(01)什麼是ClickHouse,ClickHouse適用於什麼場景
- ClickHouse(02)ClickHouse架構設計介紹概述與ClickHouse資料分片設計
- ClickHouse(03)ClickHouse怎麼安裝和部署
- ClickHouse(04)如何搭建ClickHouse叢集
- ClickHouse(05)ClickHouse資料型別詳解
- ClickHouse(06)ClickHouse建表語句DDL詳細解析
- ClickHouse(07)ClickHouse資料庫引擎解析
- ClickHouse(08)ClickHouse表引擎概況
- ClickHouse(09)ClickHouse合併樹MergeTree家族表引擎之MergeTree詳細解析
- ClickHouse(10)ClickHouse合併樹MergeTree家族表引擎之ReplacingMergeTree詳細解析
- ClickHouse(11)ClickHouse合併樹MergeTree家族表引擎之SummingMergeTree詳細解析
- ClickHouse(12)ClickHouse合併樹MergeTree家族表引擎之AggregatingMergeTree詳細解析
- ClickHouse(13)ClickHouse合併樹MergeTree家族表引擎之CollapsingMergeTree詳細解析
- ClickHouse(14)ClickHouse合併樹MergeTree家族表引擎之VersionedCollapsingMergeTree詳細解析