推广

MergeTree分区合并原理初探

iseeyu3年前 (2024-02-21)推广142

MergeTree数据块

执行两个批量insert语句:

INSERT INTO dmp_log.buffer_device_sty (id,product_key,device_name,device_key,org_id,status,version,enabled,sign) SELECT id,product_key,device_name,device_key,org_id,status,version,enabled,sign FROM buffer_device_all_0;

INSERT INTO dmp_log.buffer_device_sty (id,product_key,device_name,device_key,org_id,status,version,enabled,sign) SELECT id,product_key,device_name,device_key,org_id,status,version,enabled,sign FROM buffer_device_all_1;

相应的buffer_device_sty下会增加两个数据块文件夹:

两个insert sql执行后直接生成两个数据块(Block):all_0_0_0和all_1_1_0。

分区目录的命名规则

数据片段文件夹命名规则如下:PartitionID_MinBlockNum_MaxBlockNum_Level。

• PartitionID

分区ID。如果不使用分区键,既不使用PARTITION BY声明任何分区表达式,则分区ID默认取名为all,所有的数据都会被写入到这个all分区。buffer_device_sty表就是如此。

• MinBlockNum和MaxBlockNum

顾名思义,最小数据块编号与最大数据块编号。这里的BlockNum是一个整型的自增长编号。如果将其设为n的话,那么计数n在单张MergeTree数据表内全局累加,n从1开始,每当新创建一个分区目录时,计数n就会累积加1。对于一个新的分区目录而言,MinBlockNum与MaxBlockNum取值一样,同等于n。

• Level

合并的层级,可以理解为某个分区被合并过的次数。Level计数与BlockNum有所不同,它并不是全局累加的。对于每一个新创建的分区目录而言,其初始值均为0。之后,以分区为单位,如果相同分区发生合并动作,则在相应分区内计数累积加1。

ClickHouse会定期对统一个分区下面的数据block进行合并,默认超过3个block后,会将新增的block作为一组进行合并。合并后不会立即删除涉及到的block,下次合并会触发删除。

分区合并

1)在 08:13生成两个block,观察10分钟左右未触发分区合并。 08:27分再生成1个block。

=====================================================

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:10 all_0_31_6

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:13 all_32_32_0

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:13 all_33_33_0

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:27 all_34_34_0

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:31 all_35_35_0

2)08:27分再生成第4个block,超过3个block,触发分区合并,这个过程在我们的环境触发得比较快,1分钟左右:

======================================================

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:10 all_0_31_6

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:32 all_0_35_7

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:13 all_32_32_0

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:13 all_33_33_0

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:27 all_34_34_0

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:31 all_35_35_0

3)10分钟左右,再次触发一次合并,会将之前的冗余block进行删除。最后只剩下一个合并后的block:all_0_35_7。

========================================================

drwxr-x— 2 clickhouse clickhouse 4096 Apr 14 08:32 all_0_35_7

可以通过`system`.parts表查看详细信息,sql如下:select * from `system`.parts p where p.name =’all_0_35_7′;

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/56920.html

相关文章

西安企业做百度推广,一个月花三千和花三万到底差在哪?

4|最近跟几个西安的老板聊天,发现一个挺有意思的现象:同样做百度推广,有人一个月花三千块,询盘不断;有人一个月砸三万,水花都没见着。问他们区别在哪,大多数人说不清楚,只知道'钱花了,没效果'。 5| 6|百度推广这东西,说复杂也复杂,说简单也简单。核心就一件事:让你的潜在客户搜某个词的时候,你的信息...

我想当策划,大学应该选什么专业?

我想当策划,大学应该选什么专业?

学,广告,传播,公关,这些专业其实都可以。另外也可以学像汉语言文学,以及一些跟文学相关的一些专业,会对你找工作有帮助。但是,你想从事这个这份职业,除了专业的学习之外,更多的是,你要在上学的时候积极参与一些更营销策划相关的社会实践。比如说你可以做一些兼职,比如说帮别人去写稿,...

服装市场营销策略分析,“定位不慎满盘皆输”

服装市场营销策略分析,“定位不慎满盘皆输”

不同的区域需要不同的策略,而不同的营销策略需要不同的销售思路来配合。因此,在研究女装产品销售思路之前,最好先对于市场与营销策略做一次深入地了解。1.市场区域化(market segmentation):目标营销的第一步,是将整个市场拆分成若干个同性质的小市场。2.目标市场的...

晚间悦读丨你的思维方式,决定你的人生高度!

晚间悦读丨你的思维方式,决定你的人生高度!

越长大,越发现,能够决定你人生高度的,往往是你的认知层次。 你的认知在哪个层级,你的人生就处在什么状态。你认知的高度,决定了你人生的高度。 那如何才能升级方式、提升认知能力呢?可以从这三个方面做出改变。 NO. 1 改变态度 有人...

编写项目营销策划方案六大要点

编写项目营销策划方案六大要点

现在商业发展非常迅速,的需求非常的大,但是要做好营销策划是有一定难度的,我把自己做营销策划的一些体会在这里分享给朋友们。营销策划方案六大要点我们先说项目营销策划方案这个话题。大部分的营销策划人都是在企业里工作,大部分项目之初都是来源于一个想法,创始人、老板或者创始团队的一个...

【商场营销策划】如何进行商场营销策划?

【商场营销策划】如何进行商场营销策划?

商场是策划者们关注的永恒话题,那么究竟该如何作好商场营销策划呢?掌握以下这几点营销策略设计原则,至关重要!1.义利兼顾的原则。商场在获取利润的同时要充分考虑到消费者的合法利益和商场的长远利益。在作商场活动营销策略方案的时候应该将这一点作为首要的原则。对商场有利而对顾客不利的...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片