集群内ClickHouseServer节点间数据迁移
ClickHouse数据迁移工具可以将某几个ClickHouseServer实例节点上的一个或多个MergeTree引擎分区表的部分分区迁移至其他ClickHouseServer节点上相同的表中。在扩容场景中,可以使用该工具将原节点上的部分数据迁移至新增节点上,从而达到扩容后的数据均衡。
前提条件
- ClickHouse服务运行正常,Zookeeper服务运行正常,迁入、迁出节点的ClickHouseServer实例状态正常。
- 请确保迁入节点已有待迁移数据表,且确保该表是MergeTree系列引擎的分区表。
- 创建迁移任务前请确保所有对待迁移数据表的写入任务已停止,且任务启动后,只允许对待迁移数据表进行查询操作,禁止对该表进行写入、删除等操作,否则可能会造成迁移前后数据不一致。
- 迁入节点的ClickHouse数据目录有足够的空间。
操作步骤
- 登录Manager,选择“集群 > 服务 > ClickHouse”, 在ClickHouse服务界面单击“数据迁移”页签,进入数据迁移界面。
- 单击“创建迁移任务”。
- 在创建迁移任务界面,填写迁移任务的相关参数,具体参考如下表1。
- 在选择迁移节点界面,填写“迁入节点主机名”、“迁出节点主机名”,单击“下一步”。
- 在选择迁移数据表界面,单击“数据库”后的,选择待迁出节点上存在的数据库,在“数据表”处选择待迁移的数据表,数据表下拉列表中展示的是所选数据库中的MergeTree系列引擎的分区表。“节点信息”中展示的为当前迁入节点、迁出节点上ClickHouse服务数据目录的空间使用情况,单击“下一步”。
- 确认任务信息,确认无误后可以单击“提交”提交任务。
数据迁移工具将根据待迁移数据表的大小自动计算需要迁移的分区,数据迁移量则是计算出的需要迁移的分区总大小。
- 提交迁移任务成功后,单击操作列的“启动”。如果任务类型是即时任务则开始执行任务,如果是定时任务则开始倒计时。
- 迁移任务执行过程中,可单击“取消”取消正在执行的迁移任务,若取消任务,则会回退掉迁入节点上已迁移的数据。
可以单击“更多 > 详情”查看迁移过程中的日志信息。
- 迁移完成后,选择“更多 > 结果”查看迁移结果;选择“更多 > 删除”清理ZooKeeper以及迁出节点上该迁移任务相关的目录。