基于Flink+ClickHouse打造轻量级点击流实时数仓( 二 )


ClickHouse 数据重平衡
ClickHouse 集群扩容之后 , 数据的重平衡(reshard)是一件麻烦事 , 因为不存在类似 HDFS Balancer 这种开箱即用的工具 。 一种比较简单粗暴的思路是修改 ClickHouse 配置文件中的 shard weight , 使新加入的 shard 多写入数据 , 直到所有节点近似平衡之后再调整回来 。 但是这会造成明显的热点问题 , 并且仅对直接写入分布式表才有效 , 并不可取 。
因此 , 我们采用了一种比较曲折的方法:将原表重命名 , 在所有节点上建立与原表 schema 相同的新表 , 将实时数据写入新表 , 同时用 clickhouse-copier 工具将历史数据整体迁移到新表上来 , 再删除原表 。 当然在迁移期间 , 被重平衡的表是无法提供服务的 , 仍然不那么优雅 。 如果大佬们有更好的方案 , 欢迎交流 。
作者:LittleMagic
本文为阿里云原创内容 , 未经允许不得转载 。