SelectDB 是基于 Apache Doris 构建的实时数仓,常见需求是把 MySQL 业务库的数据持续同步过去做实时分析。本教程基于 NineData 数据复制控制台的完整实操录屏,演示从创建复制任务、选择实例、配置复制类型与黑名单,到预检查、结构/全量/增量复制、运行监控与数据对比的完整流程。

全程图形化配置,几分钟即可建立 MySQL 到 SelectDB 的持续同步链路,历史数据与增量变更自动衔接,分析侧无需再依赖人工导数。
• 三阶段同步:结构复制完成建表、全量复制初始化历史数据、增量复制持续同步后续变更。
• 黑名单排除:全库复制时可按库、按表排除不需要同步的对象,灵活控制同步范围。
• 键列与分布键映射:针对 Doris/SelectDB 的表模型,可视化核对键列与分布键配置。
• 监控与告警:读取延迟、复制延迟、读写流量与速率等指标实时可视,支持自定义告警策略。
• 数据对比:增量首次追平后开启一致性对比,源目标记录数与结果一目了然。
• 源端 MySQL:开启 Binlog(ROW 格式),同步账号具备相应读取与复制权限。
• 目标端 SelectDB:已创建 SelectDB 集群/实例,账号具备建库建表与写入权限。
• NineData 控制台:已添加 MySQL 与 SelectDB 两类数据源,网络互通。
点击「创建复制」,填写任务名称,源端选择 MySQL 并确认实例,目标端选择 SelectDB 及对应实例。


本次采用结构、全量和增量复制,完成表结构创建、历史数据初始化与后续变更同步;结合目标端已有数据,确认同名对象、存量数据与增量冲突的处理策略。

在选择复制对象页面勾选需要同步的数据库,加入右侧目标对象列表。全库复制时,可通过黑名单排除不需要同步的库或对象。

黑名单支持先选择数据库、再选择需要排除的表。本次将所选表加入黑名单后,它们将不参与复制;如果对象留空,则排除整个数据库,还可以继续添加记录。

进入配置映射页面,核对目标库、目标表、键列和分布键,确认对象对应关系;打开「映射与过滤」,核对源字段、目标字段及数据类型,并按需配置数据过滤条件。

保存并执行预检查,系统检查两端连接、账号权限、Binlog 配置和复制对象。本次预检查全部通过,并已勾选数据一致性对比,随后启动复制任务。

进入复制详情后,可分别查看结构、全量和增量复制三个页签。先配置告警策略:确认告警规则与接收人,及时发现自己任务的异常。


结构复制列表展示各表的执行时间与状态,右侧可查看目标端建表语句。结构复制完成后,顶部显示任务进入全量阶段,将历史数据写入 SelectDB。

切换到全量复制页签,跟踪各表存量数据的写入进度。

全量完成后,查看读取延迟、复制延迟与变更统计;向下还可查看读取流量、写入流量以及读写速率,持续观察链路吞吐表现。页面还提供同步位点管理、线程查看、限流设置和日志入口,方便日常运维与排查。

当增量复制首次追平时可开启数据对比。本任务创建时已启用一致性对比,在数据对比页面可以查看源端与目标端记录数、对比结果和执行状态。本次多张表对比结果一致,状态为已完成。

以上就是使用 NineData 将 MySQL 同步到 SelectDB 的对象配置、黑名单排除、运行监控与数据校验全流程。通过结构+全量+增量的组合配置与自动化对比校验,业务库到实时数仓的数据链路可以长期稳定运行,让分析数据始终与业务保持同步。
Q1:MySQL 到 SelectDB 同步会中断业务吗?
不会。全量读取采用快照方式,增量通过 Binlog 实时获取,源库仅需正常复制权限,无需停机或锁表。
Q2:不需要同步的表如何排除?
在选择复制对象页面通过黑名单排除:选择数据库后指定要排除的表即可;对象留空表示排除整个数据库。
Q3:分布键配置错误会有什么影响?
分布键影响 SelectDB 中的数据分布与查询性能,建议在配置映射页面仔细核对键列与分布键,必要时在映射中调整。
Q4:什么时候可以做数据对比?
建议在增量复制首次追平、延迟为 0 之后开启对比,避免全量与增量交叉阶段产生误报差异。
Q5:同步延迟高如何排查?
在监控页查看读取/复制延迟与读写流量,结合同步位点、线程查看与日志入口定位瓶颈,也可通过限流设置按业务负载调整吞吐。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。