
# 集群内ClickHouseServer节点间数据迁移
ClickHouse数据迁移工具可以将某几个ClickHouseServer实例节点上的一个或多个MergeTree引擎分区表的部分分区迁移至其他ClickHouseServer节点上相同的表中。在扩容场景中，可以使用该工具将原节点上的部分数据迁移至新增节点上，从而达到扩容后的数据均衡。
#### 前提条件
- ClickHouse服务运行正常，Zookeeper服务运行正常，迁入、迁出节点的ClickHouseServer实例状态正常。
- 请确保迁入节点已有待迁移数据表，且确保该表是MergeTree系列引擎的分区表。
- 创建迁移任务前请确保所有对待迁移数据表的写入任务已停止，且任务启动后，只允许对待迁移数据表进行查询操作，禁止对该表进行写入、删除等操作，否则可能会造成迁移前后数据不一致。
- 迁入节点的ClickHouse数据目录有足够的空间。
 
#### 操作步骤
1. 登录Manager，选择"集群 \> 服务 \> ClickHouse"， 在ClickHouse服务界面单击"数据迁移"页签，进入数据迁移界面。 
   ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0000001522537981.png)
   
   
2. 单击"创建迁移任务"。 
   ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0000001482403380.png)
   
   

3. 在创建迁移任务界面，填写迁移任务的相关参数，具体参考如下[表1]。
   
   ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0000001532762873.png)
    表1迁移任务参数说明 
   | 参数名  | 参数取值说明                                                                                                                                                                                                                           |
   |:---|:---|
   | 任务名称 | 填写具体的任务名称。可由字母、数组及下划线组成，长度为1\~50位，且不能与已有的迁移任务相同。                                                                                                                                                                                 |
   | 任务类型 | - 定时任务：选择定时任务时，可以设置"开始时间"参数，设定任务在当前时间以后的某个时间点执行。  - 即时任务：任务启动后立即开始执行。   |
   | 开始时间 | 在"任务类型"参数选择"定时任务"时填写，有效值为当前时间以后的某个时间（最长为90天以后）。                                                                                                                                                                                  |
      
   
   
4. 在选择迁移节点界面，填写"迁入节点主机名"、"迁出节点主机名"，单击"下一步"。 
   ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0000001481925088.png)
   ![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - "迁入节点主机名"与"迁出节点主机名"只能各填写一个主机名，不支持多节点迁移。 具体的参数值可以在ClickHouse服务界面单击"实例"页签，查看当前ClickHouseServer实例所在"主机名称"列获取。
     
   
   - "带宽上限"为可选参数，若不填写则为无上限，最大可设置为10000MB/s。
    
   
   
5. 在选择迁移数据表界面，单击"数据库"后的![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0000001182627521.png)，选择待迁出节点上存在的数据库，在"数据表"处选择待迁移的数据表，数据表下拉列表中展示的是所选数据库中的MergeTree系列引擎的分区表。"节点信息"中展示的为当前迁入节点、迁出节点上ClickHouse服务数据目录的空间使用情况，单击"下一步"。
   
   ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0000001532765301.png)
   
   
6. 确认任务信息，确认无误后可以单击"提交"提交任务。 
   数据迁移工具将根据待迁移数据表的大小自动计算需要迁移的分区，数据迁移量则是计算出的需要迁移的分区总大小。
   
   
7. 提交迁移任务成功后，单击操作列的"启动"。如果任务类型是即时任务则开始执行任务，如果是定时任务则开始倒计时。 
   ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0000001482245308.png)
   
   
8. 迁移任务执行过程中，可单击"取消"取消正在执行的迁移任务，若取消任务，则会回退掉迁入节点上已迁移的数据。 
   可以单击"更多 \> 详情"查看迁移过程中的日志信息。
   
   
9. 迁移完成后，选择"更多 \> 结果"查看迁移结果；选择"更多 \> 删除"清理ZooKeeper以及迁出节点上该迁移任务相关的目录。
 
