功能介绍
本文为您介绍通过控制台进行腾讯云数据仓库 TCHouse-C 集群数据迁移的能力。集群数据迁移功能支持将源集群的数据(包括元数据与业务数据)迁移至目标集群,适用于集群版本升级、机房裁撤、业务整合等场景。
当前支持的迁移场景如下:
场景 | 说明 |
自建 ClickHouse 集群 | 将 IDC 私有环境部署、腾讯云 CVM 及其他云平台云服务器自建的 ClickHouse 集群迁移到腾讯云 TCHouse-C 中。 |
云数据仓库 TCHouse-C | 同一账号或跨账号、同一地域或跨地域下的云数据仓库 TCHouse-C 实例迁移。 |
说明:
功能范围
1. 支持不对等节点数集群间的数据迁移(源集群与目标集群节点数可不同),覆盖少节点到多节点、多节点到少节点两种场景。
2. 支持 SSH 连接被拒时自动重试,避免迁移过程中因网络波动导致任务中断,降低人工介入频率。
3. 支持「迁移并行度」和「单任务带宽限制」两个参数设置,使“迁移”任务进行精细化速度控制。
4. 前置连通性校验,在采集元数据前先验证源集群网络可达性与账户权限。
5. 创建任务时即校验源/目标集群的库表读写权限及 SYSTEM 命令执行权限。
6. 支持跨地域 TCHouse-C 实例间迁移(需用户自行通过云联网或对等连接打通 VPC 网络)。
7. 迁移任务取消或失败时,自动回滚并清理目标集群中已创建的临时库表。
注意事项
1. 迁移过程中,源集群可正常读写,目标集群仅可读、不可写入待迁移的表,否则数据校验将无法通过。
2. 迁移过程中,源集群和目标集群均不可执行 DDL 操作(增、删、改库表等)。
3. 当前仅支持迁移 MergeTree 引擎系列的表(含本地表、分布式表、副本表以及物化视图,不对等迁移仅支持本地表迁移),暂不支持外部表、日志表、系统表等特殊表引擎。
4. 跨地域迁移场景,请确保源集群与目标集群之间的 VPC 网络已通过云联网或对等连接方式打通。
5. 迁移并行度参数表示单目标节点同时执行的子任务数;单任务带宽限制使用 rsync --bwlimit 控制单个任务的最大网络带宽。预期单目标节点迁移最大速度为:迁移并行度 × 单任务带宽限制。
6. 增量数据迁移开启前,需要用户自行停止源集群的数据写入,并勾选确认源集群已停写,确保增量数据能够快速追齐。
操作步骤
进入数据迁移页面
1. 登录 腾讯云数据仓库 TCHouse-C 控制台,在 集群列表 中选择对应的集群,进入集群详情页面。
2. 单击左侧导航栏 数据管理 > 数据迁移 进入数据迁移管理页面。
3. 在该页面可查看已有的集群迁移任务列表,已创建的任务会自动保存,避免用户输入信息丢失。

创建迁移任务 — 基本信息配置
1. 单击 新建任务 进入迁移任务创建向导。
2. 填写任务名称(自定义,建议包含迁移用途和时间信息)。
3. 选择执行方式:目前支持 立即执行,定时执行功能正在规划中。
4. 选择源集群类型:
自建ClickHouse:适用于 IDC 私有环境、CVM 自建或第三方云平台自建的 ClickHouse 集群。
云数据仓库TCHouse-C:适用于同一账号/跨账号、同一地域/跨地域的 TCHouse-C 实例。
配置源集群与目标集群连接信息
根据所选源集群类型,填写对应的连接信息:
说明:
自建 ClickHouse 场景下,需在创建任务前确认源集群与腾讯云 VPC 之间的网络访问通道已打通(如 VPN 连接、专线接入、云联网等)。
需要输入的源集群连接信息如下:
源集群节点信息:填写每个 CK 节点的 IP 地址、SSH 端口、节点账户名及密码。
备份目录:源集群的数据备份目录路径(rsync 传输所需的中间目录)。
数据库访问账户及密码:具备库表读写权限和 SYSTEM 命令执行权限的数据库账号(建议使用 default 账号)。

需要输入的目标集群连接信息如下:
数据库端口:目标集群的访问端口,默认为 9000。
数据库访问账户及密码:具备库表读写权限和 SYSTEM 命令执行权限的数据库账号及密码(建议使用 default 号)。

说明:
当前仅支持同一账号、同一地域下的云数据仓库 TCHouse-C 实例迁移,后续将支持跨账号及跨地域间的集群迁移。
需要输入的集群连接信息如下:
源集群:从下拉列表中选择需要迁移数据的源集群 ID。
源/目标集群数据库访问账户及密码:具备库表读写权限和 SYSTEM 命令执行权限的数据库账号(建议使用 default 账号)。
跨地域迁移时,需确认源集群与目标集群之间的 VPC 网络已通过云联网或对等连接方式打通。

前置连通性校验
1. 系统自动对源集群进行连通性校验,包括:网络可达性检测、用户名/密码校验。
2. 只有通过连通性校验后,系统才会继续采集源集群的元数据库表信息。未通过校验时,请检查网络连接和账户密码配置后重试。
选择迁移库表范围
1. 系统通过前置校验后,会自动采集源集群的元数据库表信息。库表数量较大时,采集过程约需 1-2 分钟。
2. 选择迁移粒度:
整库迁移:自动选择源集群 default_cluster 下的所有 MergeTree 引擎表(含本地表、分布式表、副本表以及物化视图)。
按库表迁移:手动勾选需要迁移的具体库表,支持按表名搜索过滤。不对比节点数迁移时,不可选择分布式表。
3. 配置迁移并行度:表示单目标节点同时执行的子任务数,默认为 10。
4. 配置单任务带宽限制:单个迁移任务的网络带宽上限(单位:MB/s),使用 rsync --bwlimit 控制。一般情况下保持默认值即可,网络带宽充裕时可适当调大以提升迁移速度。
5. 预期迁移速度参考:单目标节点最大速度 = 迁移并行度 × 单任务带宽限制。

任务前置检测
1. 单击 下一步:任务前置检测,系统将自动对迁移任务进行全面的前置检测。
2. 根据集群规模和库表数据量,前置检测约持续 1-5 分钟,系统会异步更新每个检测项的结果。
3. 只有全部检测项通过后,才可发起数据迁移操作。检测不通过时,可调整对应配置后单击 重试。

前置检测项说明如下:
检测项 | 检测说明 | 不通过时的调整建议 |
节点连通性检查 | 检查源集群和目标集群每个节点之间的网络连通性 | 打通源集群与目标集群之间的网络访问通道 |
集群流程状态检查 | 检查集群是否处于其他流程中(如垂直变配、水平扩容、版本升级等) | 等待当前流程执行完毕 |
集群状态检查 | 检查集群运行状态是否正常 | 确认集群可正常访问 |
容量预估检查 | 预估迁移涉及库表的容量,确保目标集群可用容量为预估容量的 1.2 倍以上 | 扩容目标集群磁盘空间 |
源集群磁盘容量检查 | 检查源集群磁盘使用率是否低于 80% | 清理部分数据或扩容源集群磁盘空间 |
system.parts 启用检查 | 检查 system.parts 系统表是否已开启 | 确认 system.parts 已启用 |
配置对齐检查 | 检查源集群与目标集群的重要配置项是否一致 | 调整配置参数使其对齐 |
版本兼容性检查 | 检查源集群和目标集群的内核版本兼容性 | 将低版本集群升级至兼容版本 |
目标表存在性检查 | 检查目标集群中是否已存在待迁移的表 | 删除目标集群中与待迁移表同名的表 |
Cluster 信息检查 | 检查目标集群的 Cluster 配置是否正确,暂不支持多 vcluster 迁移 | 调整多 vcluster 配置 |
账户权限校验 | 检查源集群和目标集群的数据库账户是否具备必要权限 | 为账户授予库表读写及 SYSTEM 命令执行权限 |
执行数据迁移
1. 单击 立即执行:数据迁移,系统将正式开启数据迁移任务。
2. 迁移过程分为两个阶段:
存量数据迁移:迁移源集群中已有的全部存量数据。受数据总量、网络带宽、节点规模等因素影响,持续数分钟到数小时不等。系统后台异步刷新迁移进度。
增量数据迁移:存量数据迁移完成后,单击 开启增量迁移。开启前需要用户自行停止源集群写入,并勾选 确认源集群已停写。系统将关闭源集群迁移库表的 Merge 功能,便于后续数据校验。预计需要 10-60 分钟。
3. 迁移过程中,如果个别子任务因网络抖动等原因失败,系统会自动重试。若自动重试仍失败,可单击 重试 手动触发。

注意:
迁移过程中,源集群可正常读写;目标集群可读但不可写入待迁移的表,否则数据校验无法通过。同时源集群和目标集群均不可执行 DDL 操作(增、删、改库表等操作)。

数据校验与割接
1. 当源集群和目标集群的存量及增量数据完全追齐后,单击 开启数据校验。
2. 系统将自动对比源集群与目标集群的数据,包括:总 Part 数、迁移成功 Part 数、总数据行数、迁移成功数据行数。
3. 未通过校验的数据表会自动执行重试。
4. 数据校验通过后,单击 关闭任务,数据迁移正式完成。
5. 关闭任务后,系统将重新打开源集群和目标集群迁移库表的 Merge 功能,且源集群的新增数据不再同步至目标集群。
6. 建议在单击 关闭任务 前完成业务读写切流,将业务流量切换至目标集群。

任务异常处理
1. 若迁移过程中需要取消任务,系统将自动回滚并清理目标集群中已创建的临时库表。
2. 任务失败时,可通过任务详情查看具体的错误信息。系统错误分为两类:
环境/校验错误:如网络不通、账户权限不足等,系统会在报错信息中明确提示具体原因及解决建议。
系统内部错误:建议 提交工单 由腾讯云技术人员协助排查。
实践教程
迁移场景
将自建 ClickHouse 集群整体搬迁至腾讯云 TCHouse-C,降低自建运维成本,享受云上弹性扩缩容及高可用能力。
TCHouse-C 同地域实例升级替换:创建新版本集群后,通过数据迁移将业务数据平滑过渡至新集群。
跨地域数据迁移:将业务从某个地域的 TCHouse-C 实例迁移至另一地域,用于灾备或就近接入。
缩容场景下数据迁移:减少集群节点前,先将下线节点上的数据迁移至保留节点。
迁移前参数调整
迁移前建议在源集群和目标集群的配置文件中添加以下参数,避免临时表删除操作因权限不足而失败:
<max_table_size_to_drop>0</max_table_size_to_drop>
<max_partition_size_to_drop>0</max_partition_size_to_drop>
性能优化建议
1. 迁移前可手动执行 OPTIMIZE 语句触发 Merge,增大 Part 体积,减少传输元数据开销,提升迁移效率。
2. 在网络带宽和磁盘 IO 未跑满时,适当调大迁移并行度参数可提升迁移速度。
3. 对于数据量较大的场景,建议在业务低峰期执行迁移,避免对线上业务造成影响。