推广

MergeTree分区合并原理初探

iseeyu2年前 (2024-02-21)推广132

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

相关文章

餐厅怎么推广运营(3个核心告诉你)

餐厅怎么推广运营(3个核心告诉你)

众所周知,餐厅经营是一门学问,也是一门手艺。餐厅的日常运营管理,既要有主心骨又要有外脑,如果能够把所有管理细节都做到到位并执行到位,就会事半功倍。所以今天我们就来谈谈餐饮推广运营的相关话题。如何推广运营?下面这篇文章从以下几个方面介绍了餐厅推广运营的一些方法和技巧。 1、用户分析 通过...

淘宝超级推荐优势和缺点,如何开,个人优点和缺点20个(我的优点和缺点是什么)

淘宝超级推荐优势和缺点,如何开,个人优点和缺点20个(我的优点和缺点是什么)

第一点肯定是能够进行全场景的一个覆盖,这样子的话,其实算起来覆盖的范围就非常的广了,甚至可以毫不犹豫的说是超过7亿用户,囊括手淘核心推荐渠道。...

如何优化SEO网站,使网站排名名列前茅。

如何优化SEO网站,使网站排名名列前茅。

随着搜索引擎的发展,SEO行业也在不断发展。几乎每天,影响的微妙因素都在发生变化。对于SEO人员来说,我们熟悉百度搜索引擎的原理,但在理论和实践上还存在一些分歧。 尤其是当你想让你的网站排名提前,我们需要了解更多的每一个过程。 根据以往的SEO实践经验,优化猩SEO顾问将通过以下...

关键词要霸屏。

关键词要霸屏。

1.大批量发掘关键字精确定位合理布局。2.账户大批量申请注册。3.引流方法文案编辑并提升。4.关键字刷屏点瑞。OK立即进到人们今日的文章正题。01大批量发掘关键字精确定位合理布局最先,以便处理需不需要发掘的难题,在人们发表文章以前,人们仅仅想写些哪些,而并不是从客户的来源于(检索层面)有意去做,可是...

微信视频号也能配合小店直播卖货吧?

各位好,今天给大家介绍一下在微信视频号的直播间里怎么样上架商品!首先,大家要先开通一下自己的微信小商店;一、开通微信小商店打开微信,在搜索框输入小商店助手 进入注册界面后可选择个人或者企业注册 (注意:企业注册会比个人有更多权限,比如:可以进行商品。但需要营业执照。一般情况...

SEO优化师分享:网站优化中比较注意哪些细节。

SEO优化师分享:网站优化中比较注意哪些细节。

网站优化非常注重方法和细节。很多人都会有这样的疑问,为什么我要根据搜索的要求对网站进行优化,虽然我的网站一直没有变,但有时候还会有关键词排名下降的趋势。问题很可能出在方法上。有时候我们不能简单地一步一步走,有时候我们需要给他一点刺激。很多人一般都注重基本战术的推广,多个都会被纳入概率,但我们要遵循规...

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

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