更新时间:2026-08-21 GMT+08:00
分享

集群内ClickHouseServer节点间数据迁移

操作场景

ClickHouse数据迁移工具可以将某几个ClickHouseServer实例节点上的一个或多个MergeTree引擎分区表的部分分区迁移至其他ClickHouseServer节点上相同的表中。随着业务数据量持续增长,集群可能面临扩容后数据不均衡、节点故障需临时转移数据等场景,此时需要使用数据迁移工具在节点间迁移数据,以确保集群数据的均衡性和服务的连续性。

  • 扩容场景:可以使用该工具将原节点上的部分数据迁移至新增节点上,从而达到扩容后的数据均衡。
  • 节点故障场景:当某个节点出现故障时,需要将该节点上的数据临时迁移到其他节点,以确保服务的连续性。
  • 数据优化场景:为了提高查询性能,可能需要对数据进行重新分区或重新排序,这通常涉及数据的迁移。
  • 数据备份和恢复:在进行数据备份或恢复时,可能需要将数据从一个节点迁移到另一个节点,以确保数据的安全性和可用性。

前提条件

  • ClickHouse服务运行正常,ZooKeeper服务运行正常,迁入、迁出节点的ClickHouseServer实例状态正常。
  • 请确保迁入节点已有待迁移数据表,且确保该表是MergeTree系列引擎的分区表。
  • 创建迁移任务前请确保所有对待迁移数据表的写入任务已停止,且任务启动后,只允许对待迁移数据表进行查询操作,禁止对该表进行写入、删除等操作,否则可能会造成迁移前后数据不一致。
  • 迁入节点的ClickHouse数据目录有足够的空间。

ClickHouseServer节点间数据迁移

  1. 登录Manager,选择“集群 > 服务 > ClickHouse”, 在ClickHouse服务界面单击“数据迁移”页签,进入数据迁移界面。

  2. 单击“创建迁移任务”。
  1. 在创建迁移任务界面,填写迁移任务的相关参数,具体参考如下表1

    表1 迁移任务参数说明

    参数名

    参数取值说明

    任务名称

    填写具体的任务名称。可由字母、数字及下划线组成,长度为1~50位,且不能与已有的迁移任务相同。

    任务类型

    • 定时任务:选择定时任务时,可以设置“开始时间”参数,设定任务在当前时间以后的某个时间点执行。
    • 即时任务:任务启动后立即开始执行。

    开始时间

    在“任务类型”参数选择“定时任务”时填写,有效值为当前时间以后的某个时间(最长为90天以后)。

  2. 在选择迁移节点界面,填写“迁入节点主机名”、“迁出节点主机名”,单击“下一步”。

    • “迁入节点主机名”与“迁出节点主机名”只能各填写一个主机名,不支持多节点迁移。

      具体的参数值可以在ClickHouse服务界面单击“实例”页签,查看当前ClickHouseServer实例所在“主机名称”列获取。

    • “带宽上限”为可选参数,如果不填写则为无上限,最大可设置为10000MB/s。

  3. 在选择迁移数据表界面,单击“数据库”后的,选择待迁出节点上存在的数据库,在“数据表”处选择待迁移的数据表,数据表下拉列表中展示的是所选数据库中的MergeTree系列引擎的分区表。“节点信息”中展示的为当前迁入节点、迁出节点上ClickHouse服务数据目录的空间使用情况,单击“下一步”。

  4. 确认任务信息,确认无误后可以单击“提交”提交任务。

    数据迁移工具将根据待迁移数据表的大小自动计算需要迁移的分区,数据迁移量则是计算出的需要迁移的分区总大小。

  5. 提交迁移任务成功后,单击操作列的“启动”。如果任务类型是即时任务则开始执行任务,如果是定时任务则开始倒计时。

  6. 迁移任务执行过程中,可单击“取消”取消正在执行的迁移任务,如果取消任务,则会回退掉迁入节点上已迁移的数据。

    可以单击“更多 > 详情”查看迁移过程中的日志信息。

  7. 迁移完成后,选择“更多 > 结果”查看迁移结果。选择“更多 > 删除”清理ZooKeeper以及迁出节点上该迁移任务相关的目录。
  8. 验证迁移结果。

    迁移完成后,建议在迁入节点上执行以下操作验证数据是否正确迁移:

    1. 在“更多 > 结果”中查看迁移状态是否为“成功”,确认所有分区均已迁移完成。
    2. 在迁入节点上查询迁移表的数据行数:
      SELECT count() FROM 数据库名.表名;

      对比迁入节点和迁出节点的数据行数,确认数据完整性。

常见问题

Q:迁移任务执行失败怎么办?

A:请单击"更多 > 详情"查看迁移日志,定位失败原因。常见原因包括:迁入节点磁盘空间不足、源表正在被写入、ZooKeeper连接异常等。排查问题后可重新创建迁移任务。

Q:迁移过程中服务重启或断电怎么办?

A:迁移工具支持断点续传,服务恢复后可重新启动迁移任务,已迁移的分区不会重复迁移。如出现异常,可通过"更多 > 详情"查看日志排查问题。

Q:迁移任务取消后数据会怎样?

A:取消迁移任务后,工具会自动回退迁入节点上已迁移的分区数据,确保迁入节点恢复到迁移前的状态。迁出节点的数据不受影响。

相关文档

相关文档

相关文档