本文为您介绍通过控制台进行 ClickHouse 集群数据重分布的能力。目前云数据仓库 ClickHouse 已经支持通过水平扩容增加集群节点,提高集群的计算和存储能力,但是 ClickHouse 集群上的数据集无法自动均衡分布,需要人工干预才能确保数据均衡,这一直是 ClickHouse 使用和运维上的一大痛点。云数据仓库 ClickHouse 的数据重分布功能提供了白屏化的方式,支持 Part 或 Resharding 的模式对数据进行集群均衡。
Part 模式
:通过在集群 shard 间迁移 part,来实现 shard 间的数据均衡。这种方式不遵循分布式表的分片规格,更适合 rand()方式的分布式表。Resharding 模式
:通过将原表数据重新按照分布式表的规格写入整个集群,来实现数据的重新写入,达到 shard 间数据均衡,若数据需要基于主键分配到一个分片,则优先使用此种模式。
表级别支持按 Partition 粒度选择对部分数据进行重分布。另外在 Partition 粒度下,可以选择是否打开表可写:如果重分布的 Partition 没有数据写入,可选择关闭表只读;如果重分布的 Partition 有数据写入,关闭表只读会导致数据不一致。
数据重分布功使用的组件是采用多种并发机制来提高任务的高性能,为了让用户平衡业务负载和重分布对集群的影响,用户可以通过 任务总并发
和 节点级并发数
来调整重分布任务的性能和速度。
说明:
节点级并发数
表示当 ReSharding 模式时,单台 clickhouse 节点同时处理的 Partition 粒度的并发度;当 Part 模式时,单台 clickhouse 节点同时处理的 Part 粒度的并发度。任务总并发
表示整个任务在运行过程中,所有参与任务的节点的总并发数。状态变更中
(在集群基础页面也会进入 状态变更中
,但是没有进度条)。
当任务启动后,可以通过修改参数修改任务和节点的并发数,控制任务速度和对集群的负载,甚至暂停任务。
执行结束
,云数据仓库 ClickHouse 实例的状态也变为运行中
。
重分布前建议添加以下参数,在重分布过程中,会有临时表的删除操作,如果没有以下权限,可能导致任务暂停。
<max_table_size_to_drop>0</max_table_size_to_drop>
<max_partition_size_to_drop>0</max_partition_size_to_drop>
32核以上高配机器进行 resharding 模式重分布时建议适当提高以下参数,原因是在数据重新灌入的过程中有大量写入,需要进行提高后台 merge 能力防止出现大量 part,出现 Too Many Part 的错误。
<background_pool_size>64</background_pool_size>
<background_schedule_pool_size>64</background_schedule_pool_size>
内核版本:21.8.12.29。
高可用:高可用。
计算节点类型:高 IO 型。
计算节点规格:64核256G。
计算节点数量:4(2shard)、8(4shard)、16(8shard)。
计算节点存储:本地盘14280GB。
ZK节点规格:16核64G。
ZK节点数量:3。
ZK节点存储:增强型 SSD 云硬盘100GB。
数据生成工具: ssb-dbgen
。
场景:2shard 扩容到4shard。
Resharding 模式
序号 | 表个数 | 数据总量 | 总耗时 | 平均速度 |
---|---|---|---|---|
1 | 1 | 335GB | 2分58秒 | 1.878GB/s |
2 | 1 | 898GB | 9分18秒 | 1.609GB/s |
3 | 2 | 670GB | 5分23秒 | 2.074GB/s |
4 | 2 | 1796GB | 13分25秒 | 2.23GB/s |
5 | 4 | 1340GB | 11分17秒 | 1.979GB/s |
6 | 4 | 3592GB | 24分33秒 | 2.439GB/s |
Part 模式
序号 | 表个数 | 数据总量(迁移part量) | 总耗时 | 平均速度 |
---|---|---|---|---|
1 | 1 | 335GB(180GB) | 1分44秒 | 1.737GB/s |
2 | 1 | 898GB(476GB) | 6分27秒 | 1.229GB/s |
3 | 2 | 792GB(397GB) | 4分50秒 | 1.370GB/s |
4 | 2 | 1796GB(952GB) | 11分38秒 | 1.364GB/s |
5 | 4 | 1675GB(903GB) | 10分28秒 | 1.438GB/s |
6 | 4 | 3592GB(2379GB) | 28分6秒 | 1.411GB/s |
场景:4shard 扩容到8shard。 Resharding 模式
序号 | 表个数 | 数据总量 | 总耗时 | 平均速度 |
---|---|---|---|---|
1 | 1 | 1034GB | 3分39秒 | 4.715GB/s |
2 | 2 | 2068GB | 6分58秒 | 4.95GB/s |
3 | 4 | 4136GB | 13分1秒 | 5.301GB/s |
Part 模式
序号 | 表个数 | 数据总量(迁移part量) | 总耗时 | 平均速度 |
---|---|---|---|---|
1 | 1 | 1034GB(524GB) | 3分19秒 | 2.633GB/s |
2 | 2 | 2068GB(1049GB) | 6分35秒 | 2.656GB/s |
3 | 4 | 4136GB(2097GB) | 12分3秒 | 2.900GB/s |
场景:4shard 扩容到4shard。 Resharding 模式
序号 | 表个数 | 数据总量 | 总耗时 | 平均速度 |
---|---|---|---|---|
1 | 1 | 1034GB | 10分16秒 | 1.679GB/s |
2 | 2 | 2068GB | 20分34秒 | 1.676GB/s |
3 | 4 | 4136GB | 37分12秒 | 1.853GB/s |
内核版本:21.8.12.29。 高可用:高可用。 计算节点类型:大数据型。 计算节点规格:64核256G。 计算节点数量:16。 计算节点存储:本地盘2142720GB。 ZK节点规格:16核64G。 ZK节点数量:3。 ZK节点存储:增强型 SSD 云硬盘500GB。
场景:2shard 扩容到4shard。
Resharding 模式
序号 | 表个数 | 数据总量 | 总耗时 | 平均速度 |
---|---|---|---|---|
1 | 1 | 773GB | 7分21秒 | 1.752GB/s |
2 | 2 | 1585GB | 15分43秒 | 1.681GB/s |
3 | 4 | 3209GB | 32分9秒 | 1.664GB/s |
Part 模式
序号 | 表个数 | 数据总量(迁移part量) | 总耗时 | 平均速度 |
---|---|---|---|---|
1 | 1 | 774GB(393GB) | 4分47秒 | 1.371GB/s |
2 | 2 | 1548GB(786GB) | 9分53秒 | 1.563GB/s |
3 | 4 | 3096GB(1572GB) | 19分18秒 | 1.358GB/s |
场景:4shard 扩容到8shard。 Resharding 模式
序号 | 表个数 | 数据总量 | 总耗时 | 平均速度 |
---|---|---|---|---|
1 | 1 | 855GB | 4分37秒 | 3.087GB/s |
2 | 2 | 1667GB | 9分6秒 | 3.053GB/s |
3 | 4 | 3292GB | 18分49秒 | 2.916GB/s |
Part 模式
序号 | 表个数 | 数据总量(迁移part量) | 总耗时 | 平均速度 |
---|---|---|---|---|
1 | 1 | 1072GB(542GB) | 3分21秒 | 2.697GB/s |
2 | 2 | 2144GB(1084GB) | 6分24秒 | 2.823GB/s |
3 | 4 | 4288GB(2167GB) | 12分34秒 | 2.874GB/s |
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。