将自建ClickHouse数据迁移到云ClickHouse中

MapReduce BMR

  • 发行版本
  • 功能发布记录
  • 产品描述
    • 节点类型说明
    • 产品优势
    • 应用场景
    • 产品功能
    • 产品简介
  • Python-SDK
    • Cluster(集群)
    • BmrClient
    • 异常处理
    • InstanceGroup(实例组)
    • 简介
    • 文档更新记录
    • Step(作业)
    • 版本变更记录
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
  • 开源组件介绍
    • Impala
    • Pig
    • Druid
    • Presto
    • Hue
    • Ooize
    • HBase
    • Kudu
    • Sqoop
    • Hadoop-Streaming
    • Zeppelin
    • Alluxio
    • Kerberos
      • 集群互信配置
      • 概述
    • ClickHouse
      • 常见问题
      • 数据迁移同步
        • 从Spark导入
        • 从Kafka同步数据
        • 将自建ClickHouse数据迁移到云ClickHouse中
        • 从Flink导入
        • 从MySQL导入和同步
        • 从本地数据导入
          • Parquet格式
          • JSON
          • SQL转储
          • CSV and TSV
      • 快速入门
        • 访问模式
        • 客户端登录
        • 创建ClickHouse集群
        • 基础操作
      • 运维相关操作
        • ClickHouse集群扩容
        • ClickHouse集群缩容
        • 日志配置说明
        • 监控告警配置
    • Ranger
      • ranger概述
      • 权限策略配置
    • Paimon
      • Hive示例
      • StarRocks示例
      • 联合查询示例
      • Flink示例
      • Spark示例
    • Flink
      • 基础使用
    • Trino
      • 基础使用
      • 概述
    • Spark
      • 引擎增强
      • 基础使用
    • Hive
      • 开发指南
        • 自定义函数(UDF)
      • 实践操作
        • Hive迁移
        • Hive操作HBase外表
      • 基础使用
        • Hive基础操作
        • Hive连接方式
  • Java-SDK
    • Cluster(集群)
    • 异常
    • BmrClient
    • InstanceGroup(实例组)
    • 日志
    • 文档更新记录
    • 版本更新记录
    • Step(作业)
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
    • 概述
  • 快速入门
    • 操作流程概览
    • 环境准备
    • 创建集群
    • 数据准备
    • 开发作业
    • 查看结果
    • ClickHouse
      • 导入数据
      • 创建数据库
      • 连接集群
      • 创建表
  • 操作指南
    • 集群模板
    • 服务管理
    • 集群配置
      • 用户管理
      • 弹性伸缩
      • 创建集群
      • 集群安全模式
      • EIP
      • Hive元数据说明
      • 集群审计
      • 配置已有集群
      • 安全组
    • 管理作业
      • 创建作业
      • 诊断、调优
      • 定时任务
      • 查看作业
    • 访问集群
      • 访问集群服务页面
      • 访问集群-openVPN访问集群
      • 使用OpenVPN提交Hadoop作业
      • SSH连接到集群
    • 实践操作
      • 存储数据至HBase
      • 导入数据
      • 编译Maven项目
      • Sqoop导入导出数据
        • 导出数据
    • 权限管理
      • 多用户访问控制
      • 用户管理
    • 集群管理
      • 节点管理
      • 监控报警
      • 集群指标
      • 资源管理
  • 服务等级协议SLA
    • BMR服务等级协议SLA
  • API参考
    • 通用说明
    • 公共头
    • 数据类型
    • 版本更新记录
    • 服务域名
    • 实例操作接口
    • 实例组操作接口
    • 集群操作接口
    • API简介
    • 错误码
  • 常见问题
    • 安全性问题
    • 计费类问题
    • 常见问题总览
    • 性能类问题
    • 配置类问题
    • 故障类问题
  • 视频专区
    • 操作指南
    • 产品介绍
  • 场景教程
    • 流式应用场景
    • 离线应用场景
    • 使用Hive分析网站日志
    • Sqoop应用文档
    • 定时分析日志数据
    • HIVE
      • 不同集群的 Hive 迁移方案
      • Hive 操作 Hbase 外部表
  • 产品定价
    • 转换计费方式
    • 计费项
    • 到期或欠费说明
    • 包年包月计费
    • 续费说明
    • 变更配置计费说明
    • 计费方式
    • 按需计费
    • 账单和用量查询
    • 退款说明
所有文档
menu
没有找到结果,请重新输入

MapReduce BMR

  • 发行版本
  • 功能发布记录
  • 产品描述
    • 节点类型说明
    • 产品优势
    • 应用场景
    • 产品功能
    • 产品简介
  • Python-SDK
    • Cluster(集群)
    • BmrClient
    • 异常处理
    • InstanceGroup(实例组)
    • 简介
    • 文档更新记录
    • Step(作业)
    • 版本变更记录
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
  • 开源组件介绍
    • Impala
    • Pig
    • Druid
    • Presto
    • Hue
    • Ooize
    • HBase
    • Kudu
    • Sqoop
    • Hadoop-Streaming
    • Zeppelin
    • Alluxio
    • Kerberos
      • 集群互信配置
      • 概述
    • ClickHouse
      • 常见问题
      • 数据迁移同步
        • 从Spark导入
        • 从Kafka同步数据
        • 将自建ClickHouse数据迁移到云ClickHouse中
        • 从Flink导入
        • 从MySQL导入和同步
        • 从本地数据导入
          • Parquet格式
          • JSON
          • SQL转储
          • CSV and TSV
      • 快速入门
        • 访问模式
        • 客户端登录
        • 创建ClickHouse集群
        • 基础操作
      • 运维相关操作
        • ClickHouse集群扩容
        • ClickHouse集群缩容
        • 日志配置说明
        • 监控告警配置
    • Ranger
      • ranger概述
      • 权限策略配置
    • Paimon
      • Hive示例
      • StarRocks示例
      • 联合查询示例
      • Flink示例
      • Spark示例
    • Flink
      • 基础使用
    • Trino
      • 基础使用
      • 概述
    • Spark
      • 引擎增强
      • 基础使用
    • Hive
      • 开发指南
        • 自定义函数(UDF)
      • 实践操作
        • Hive迁移
        • Hive操作HBase外表
      • 基础使用
        • Hive基础操作
        • Hive连接方式
  • Java-SDK
    • Cluster(集群)
    • 异常
    • BmrClient
    • InstanceGroup(实例组)
    • 日志
    • 文档更新记录
    • 版本更新记录
    • Step(作业)
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
    • 概述
  • 快速入门
    • 操作流程概览
    • 环境准备
    • 创建集群
    • 数据准备
    • 开发作业
    • 查看结果
    • ClickHouse
      • 导入数据
      • 创建数据库
      • 连接集群
      • 创建表
  • 操作指南
    • 集群模板
    • 服务管理
    • 集群配置
      • 用户管理
      • 弹性伸缩
      • 创建集群
      • 集群安全模式
      • EIP
      • Hive元数据说明
      • 集群审计
      • 配置已有集群
      • 安全组
    • 管理作业
      • 创建作业
      • 诊断、调优
      • 定时任务
      • 查看作业
    • 访问集群
      • 访问集群服务页面
      • 访问集群-openVPN访问集群
      • 使用OpenVPN提交Hadoop作业
      • SSH连接到集群
    • 实践操作
      • 存储数据至HBase
      • 导入数据
      • 编译Maven项目
      • Sqoop导入导出数据
        • 导出数据
    • 权限管理
      • 多用户访问控制
      • 用户管理
    • 集群管理
      • 节点管理
      • 监控报警
      • 集群指标
      • 资源管理
  • 服务等级协议SLA
    • BMR服务等级协议SLA
  • API参考
    • 通用说明
    • 公共头
    • 数据类型
    • 版本更新记录
    • 服务域名
    • 实例操作接口
    • 实例组操作接口
    • 集群操作接口
    • API简介
    • 错误码
  • 常见问题
    • 安全性问题
    • 计费类问题
    • 常见问题总览
    • 性能类问题
    • 配置类问题
    • 故障类问题
  • 视频专区
    • 操作指南
    • 产品介绍
  • 场景教程
    • 流式应用场景
    • 离线应用场景
    • 使用Hive分析网站日志
    • Sqoop应用文档
    • 定时分析日志数据
    • HIVE
      • 不同集群的 Hive 迁移方案
      • Hive 操作 Hbase 外部表
  • 产品定价
    • 转换计费方式
    • 计费项
    • 到期或欠费说明
    • 包年包月计费
    • 续费说明
    • 变更配置计费说明
    • 计费方式
    • 按需计费
    • 账单和用量查询
    • 退款说明
  • 文档中心
  • arrow
  • MapReduceBMR
  • arrow
  • 开源组件介绍
  • arrow
  • ClickHouse
  • arrow
  • 数据迁移同步
  • arrow
  • 将自建ClickHouse数据迁移到云ClickHouse中
本页目录
  • 环境准备
  • 启动方式
  • 使用实例
  • 注意事项

将自建ClickHouse数据迁移到云ClickHouse中

更新时间:2025-08-21

本工具是为给云上bmr Clickhouse集群做上云或下云数据迁移而准备,采用点对点的方式进行迁移,支持高并行、断点续传。适用于数据量较大、数据表较多且只需保证源和目标集群间数据最终一致的场景。

环境准备

  1. 本工具使用python3开发,因此执行节点上需要部署python3环境,版本最低要求为3.6,推荐3.7(附件有python安装包以及已经集成好的python环境)。
  2. 迁移过程需要保存迁移元数据信息,元数据库选择的是mysql(每个bmr集群会自带一个mysql实例,无需另外搭建),因此需要安装python的mysql connector依赖,附件的python_venv中已经集成。
  3. 迁移需要连接源集群实例和目标集群实例,因此需要安装clickhouse-client依赖,附件的python_venv中已经集成.
  4. (可选)为了不影响原来的python环境,推荐使用附件中的python_venv集成环境来执行迁移。
  5. 启动虚拟环境后再启动迁移工具。

image (1).png

启动方式

启动之前需要将迁移任务录入元数据库,此信息对应的mysql 数据表为migrator.jobs,如下所示:

image.png

表一 字段说明

字段 字段说明
job_id job的标识
src_host 源集群实例主机名或ip
src_port 源集群实例端口
src_user 源集群实例用户名
src_password 源集群实例密码
dst_host 目标集群实例主机名
dst_port 目标集群实例端口
dst_user 目标集群用户名
dst_password 目标集群密码

表二 参数说明

参数名称 参数说明
hostname 直接使用bmr提供的hostname,例如:core-0cb9d33-01,切记不要使用ip或者alias后的hostnmae。
taskID 当前job的task的标识,是为了提高并行度,和taskSize配合使用可以在一个job上执行更高并行度的迁移,加快迁移速度。
taskSize 当前job总共的task数,一般和taskID配合使用。
runType 当前迁移任务的类型,目前支持的类型有如下几种:
  • migration(既迁移库表结构也迁移数据)
  • migration_schema (只迁移库表结构,并对表数据做快照)
  • migration_data (只迁移数据,不迁移库表结构,前提是表快照已经完成)
  • check (校验数据)
  • drop_schema (删除目标实例上的数据库表)
  • migration_mv (删除目标实例上的物化视图)
  • 使用实例

    1. 执行命令:
    Plain Text
    1python ck_migrator.py  core-0cb9d33-01  0  5   migration_schema

    上述命令参数意义为:在core-0cb9d33-01 这个节点上执行job,task 并行度为5(taskID 为0,1,2,3,4),当前task id 为0,任务类型迁移库表结构(migration_schema)

    1. 上述命令执行后会显示:Will migrator all schemas!,执行完成后会显示以下信息:Migrator all shcema done!如果中间失败了可以重新拉起task进程,参数不变,不用担心数据或表会重复。

    注意事项

    1. 在迁移过程中不要对源集群的库表执行ddl操作,例如增删表字段等
    2. 如果有物化视图需要单独迁移
    3. mysql元数据库访问的用户名和密码指定在工具代码内的如图位置,可以依据实际情况进行修改,若不清楚当前集群mysql的访问密码可以咨询bmr值班同学。

    1.png

    4.如果想过滤自定义的表或者库,可以在工具内的如下位置进行修改:

    2.png

    在filter里面加上不想迁移的表名即可(直接修改代码),如下图。修改后迁移工具将不会迁移表'za_search_info' 和表 'deeptrace_info'。

    3.png

    上一篇
    从Kafka同步数据
    下一篇
    从Flink导入