1、引言数据库
ClickHouse 是一个用于联机分析( OLAP )的列式数据库管理系统( DBMS )。它于 2016 年以 Apache 2.0 协议开源,以优秀的查询性能,深受广大大数据工程师欢迎。
为了服务客户业务,腾讯云于 2020 年 4 月正式上线 ClickHouse 服务。服务上线以来,迅速得到内外客户普遍支持,服务业务数量成规模增加。与此同时,运维与管控压力也随之而来,用户对弹性伸缩能力的呼声愈来愈大。
事实上,ClickHouse 是典型的 Share-Nothing 架构,自然支持弹性伸缩能力。不管是增长节点数量,仍是增长数据分片副本数量都很是容易。图1 ClickHouse Share-Nothing 架构
可是,ClickHouse 集群在增长节点后,集群上的数据集没法自动均衡分布。须要人工干预,确保数据均衡。同理,下线集群节点前,也须要人工干预,将被下线节点的机器迁移到其余节点。
在生产环境中,运维工做强度随着集群中表的数量,数据规模增长而急剧加强。为了缓解云上 ClickHouse 用户运维压力,将 ClickHouse 数据均衡运维工做自动化是很是有价值的。
本文将带你们了解腾讯云 ClickHouse 是如何实现无人值守的数据均衡服务,但愿与你们一同交流。网络
2、ClickHouse集群数据均衡功能缺失架构
将数据所有删除掉,从后备数据源从新导入数据到 ClickKhouse;app
增长新节点的权重,过必定时间后待数据均衡后,从新调整新增节点权重;运维
其余,如人工搬运数据到新增节点分布式
可是不管使用上述哪种种方法,都存在缺陷。好比对于第一个方案而言,若是 ClickHouse 中数据并没有后备数据源,那么该方案不可行。即便有后备数据源,从新导入数据耗时,且停服时间与数据量成正比,代价大。
对于第二种方案,须要对新节点进行屡次权限调整。在调整期间,数据存储压力向新增节点倾斜,没法充分利用集群优点。且容易致使新近数据集中在新增节点上,致使集群资源浪费,下降查询效率。
对于第三种方案而言,操做繁杂,在表多,数据量大的状况下,易出错。ide
3、云上ClickHouse解决方案性能
4、结语测试
新扩容节点后,使用数据迁移功能,迁移部分数据至新节点,让数据在集群节点上趋于均衡;大数据
缩容节点前,将待下线节点上的数据迁移到其余节点,避免数据丢失。
数据迁移功能极大的缓解了集群版 ClickHouse 运维压力。须要注意的是,数据均衡任务运行过程当中,被迁移的表没法被业务访问。