|NO.Z.00007|——————————|BigDataEnd|——|Hadoop&OLAP_ClickHouse.V04|——|ClickHouse.v04|表引擎|MergeTree|数据分区|

一、ClickHouse表引擎&MergeTree数据分区
### --- 数据分区

~~~     数据是以分区目录的形式组织的,每个分区独立分开存储。
~~~     这种形式,查询数据时,可以有效的跳过无用的数据文件。
~~~     数据分区的规则分区键的取值生成分区ID分区根据ID决定。
~~~     根据分区键的数据类型不同,
~~~     # 分区ID的生成目前有四种规则:
~~~     不指定分区键
~~~     使用整形
~~~     使用日期类型 toYYYYMM(date)
~~~     使用其他类型
~~~     # 数据在写入时,会对照分区ID落入对应的分区。
### --- 分区目录的生成规则

~~~     partitionID_MinBlockNum_MaxBlockNum_Level
~~~     BlockNum是一个全局整型,从1开始,每当新创建一个分区目录,此数字就累加1。
~~~     MinBlockNum:最小数据块编号
~~~     MaxBlockNum:最大数据块编号
~~~     对于一个新的分区,MinBlockNum和MaxBlockNum的值相同
~~~     如:2020_03_1_1_0, 2020_03_2_2_0
~~~     Level:合并的层级,即某个分区被合并过得次数。不是全局的,而是针对某一个分区。
### --- 分区目录的合并过程

~~~     MergeTree的分区目录在数据写入过程中被创建。
~~~     不同的批次写入数据属于同一分区,也会生成不同的目录,
~~~     在之后的某个时刻再合并(写入后的10-15分钟),合并后的旧分区目录默认8分钟后删除。
~~~     # 同一个分区的多个目录合并以后的命名规则:

~~~     MinBlockNum:取同一分区中MinBlockNum值最小的
~~~     MaxBlockNum:取同一分区中MaxBlockNum值最大的
~~~     Level:取同一分区最大的Level值加1

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(22)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示