GraphiteMergeTree該引擎用來對Graphite數據(圖數據)進行瘦身及彙總。對於想使用ClickHouse來存儲Graphite數據的開發者來說可能有用。 如果不需要對Graphite數據做彙總,那麼可以使用任意的ClickHouse表引擎;但若需要,那就採用GraphiteMerg ...
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詳細解析
本文來自博客園,作者:張飛的豬,轉載請註明原文鏈接:https://www.cnblogs.com/the-pig-of-zf/p/17720745.html
公眾號:張飛的豬大數據分享,不定期分享大數據學習的總結和相關資料,歡迎關註。
個人網站"張飛的豬編程工作室"鏈接: https://zhangfeidezhu.com