日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

05_ClickHouse、MergeTree系列引擎概述与存储结构、建表模板、建表语句、MergeTree设置、建表示例、数据存储、数据片段(data part)

發布時間:2024/9/27 42 豆豆

2.MergeTree系列引擎概述與存儲結構
2.1.建表模板
2.2.建表語句
2.3.MergeTree設置
2.4.建表示例
2.5.數據存儲
2.6.數據片段(data part)

2.MergeTree系列引擎概述與存儲結構

MergeTree系列引擎是ClickHouse中最強大的表引擎。
數據按照片段被一批批寫入表。
數據片段在后臺按照一定的規則進行合并。

主要特征:
?數據按照主鍵排序
稀疏索引快速檢索數據

?數據分片
增加查詢性能

?數據副本
ReplicatedMergeTree系列的引擎支持數據副本,提升查詢性能和容錯。

?數據采樣
設置采樣方法,快速分析數據。

2.1.建表模板

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] (name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1], name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2], ... INDEX index_name1 expr1 TYPE type1(...) GRANULARITY value1,INDEX index_name2 expr2 TYPE type2(...) GRANULARITY value2 ) ENGINE = MergeTree() [PARTITION BY expr] [ORDER BY expr] [PRIMARY KEY expr] [SAMPLE BY expr] [TTL expr [DELETE|TO DISK 'xxx'|TO VOLUME 'xxx'], ...] [SETTINGS name=value, ...]

2.2.建表語句

ENGINE:引擎的名稱和參數
PARTITION BY:分區鍵
ORDER BY:表的排序鍵
PRIMARY KEY:表的主鍵
SAMPLE BY:采樣表達式
TTL:定義行數據的存儲時間,磁盤和卷之間數據片段的自動移動的邏輯
SETTINGS:控制MergeTree行為的額外參數

2.3.MergeTree設置

重要參數:
1.index_granularity:索引粒度,以行數為單位,表示索引標記(mark)之間的最大數據行數。默 認值:8192。
2.index_granularity_bytes:索引粒度,以字節為單位, 表示索引粒度的最大字節大小, 默認值:10Mb。設置該參數為0, 將僅按行數限制索引粒度大小。
3.use_minimalistic_part_header_in_zookeeper : 數據片段(part)頭在ZooKeeper中的存儲方法。設置為1,緊湊存儲數據片段頭信息,極大減少ZooKeeper的存儲數據量
4.storage_policy : 存儲策略。存儲策略定義了使用多塊設備進行數據存儲的邏輯。

更多設置參數:參數列表及其功能參見表system.merge_tree_settings(SELECT * FROM system.merge_tree_settings;)。

MergeTree參數的設置:
1.表級別:在建表時設置。
2.全局:config.xml的merge_tree標簽內進行設置。

2.4.建表示例

1.非分區表

CREATE TABLE merge_demo ( srcip String, destip String, date_time DateTime ) ENGINE = MergeTree() ORDER BY srcip SETTINGS index_granularity = 8192;

2.分區表

CREATE TABLE merge_partition_demo ( `srcip` String, `destip` String, `date_time` DateTime ) ENGINE = MergeTree() PARTITION BY toYYYYMM(date_time) ORDER BY srcip;

2.5.數據存儲

進入類似:/var/lib/clickhouse/data/{DBNAME}/{TABLENAME}/201403_1_1_0,可以看到類似如下的文件:

[root@hbase2 TabSeparated_demo]# cd 201403_1_1_0/ [root@hbase2 201403_1_1_0]# ll總用量 84 -rw-r----- 1 clickhouse clickhouse 648 11月 23 18:54 checksums.txt -rw-r----- 1 clickhouse clickhouse 158 11月 23 18:54 columns.txt -rw-r----- 1 clickhouse clickhouse 39 11月 23 18:54 CounterID.bin -rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 CounterID.mrk2 -rw-r----- 1 clickhouse clickhouse 2 11月 23 18:54 count.txt -rw-r----- 1 clickhouse clickhouse 10 11月 23 18:54 default_compression_codec.txt -rw-r----- 1 clickhouse clickhouse 36 11月 23 18:54 EventDate.bin -rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 EventDate.mrk2 -rw-r----- 1 clickhouse clickhouse 36 11月 23 18:54 JavaEnable.bin -rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 JavaEnable.mrk2 -rw-r----- 1 clickhouse clickhouse 4 11月 23 18:54 minmax_EventDate.idx -rw-r----- 1 clickhouse clickhouse 4 11月 23 18:54 partition.dat -rw-r----- 1 clickhouse clickhouse 20 11月 23 18:54 primary.idx -rw-r----- 1 clickhouse clickhouse 41 11月 23 18:54 RegionID.bin -rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 RegionID.mrk2 -rw-r----- 1 clickhouse clickhouse 151 11月 23 18:54 Title.bin -rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 Title.mrk2 -rw-r----- 1 clickhouse clickhouse 52 11月 23 18:54 UserID.bin -rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 UserID.mrk2 -rw-r----- 1 clickhouse clickhouse 107 11月 23 18:54 WatchID.bin -rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 WatchID.mrk2 [root@hbase2 201403_1_1_0]#

checksums.txt :校驗文件的正確性和完整性。
columns.txt :存儲列的信息,包括數據類型。
count.txt : 存儲分區目錄下數據的總行數。
primary.idx : 存儲索引數據的文件。稀疏索引,能夠加速查詢。
bin文件 :存儲數據的文件, 以壓縮格式存儲,默認LZ4。
mrk文件 :存儲列的數據標記的文件。
partiton.dat : 存儲存儲分區表達式生成的值。使用二進制格式存儲。該文件只在分區表中存儲。
*minmax_文件 : 存儲能當前目錄下, 分區字段對應的原始字段的最小和最大值。
skp_idx_.idx、skp_idx_.mrk : skip索引標記文件。

2.6.數據片段(data part)

一個表是由按主鍵排序的數據片段(part)組成。
當向表中插入數據時, 將創建單獨的數據片段。
ClickHouse在后臺合并數據片段以便更高效的存儲。
不會合并來自不同分區的數據片段。

總結

以上是生活随笔為你收集整理的05_ClickHouse、MergeTree系列引擎概述与存储结构、建表模板、建表语句、MergeTree设置、建表示例、数据存储、数据片段(data part)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。