市面上同步 TP 库或者其他组件数据至 Doris 的组件众多,社区开源的诸如 FlinkCDC、SeaTunnel、DataX、TIS等管道工具,Dinky、StreamPark 等 Flink 流式开发管理平台,在市场上都拥有巨大的声量和装机量。
但是很多同学反馈,在实际开发过程中,负责数据同步任务的同学无比希望有一款拥有可视化配置页面,通过简单的方式就可以完成数据同步任务的开发工作。
巧合的是,在周末 WiFi 冲浪闲逛的时候,突然发现一款之前商业版的数据管道工具软件 —— NineData 要发布免费的社区版本了,而且 Doris 首当其冲,这不得火速来一波体验,看看效果具体如何?
走你~
以下是官网对 NineData 管道工具的定位和介绍。
NineData 是集成了数据库 DevOps、数据复制、数据备份、数据对比多个模块的云服务,支持混合云(自建库+云数据库的业务架构)和多云(多个不同云厂商数据库组成的业务架构)架构下的企业数据管理,大幅降低企业的数据运维难度和成本。
简单而言,就是为了满足各类环境的数据同步诉求的一款工具,支持全量同步、增量同步、DDL同步等日常数据同步任务的开发,最主要的是深度支持 Doris 和 SelectDB 的数据源!
社区版本当前采用 Docker 单镜像一键安装方式,使用比较方便,只需前置安装好Docker环境,一行命令即可完成拉起:
docker run --net=host --privileged -v /data/ninedata:/u01 --name ninedata -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest
镜像已经上传到 Docker Hub 和国内的华为云、阿里云 Docker 镜像仓库中,可以直接拉取。
我们可以使用 Docker logs 命令来观察启动进度,一般首次部署启动,大概需要10分钟左右的时间,可以耐心等待一会
当日志页面刷新出 NineData 的 Logo 时,即表示安装部署完成,可以通过浏览器端口来访问整个服务
浏览器控制台端口:http://localhost:30081
初始账号和密码:admin/admin
点击创建数据源即可开始配置上下游数据源
这里可根据自己的环境来配置,这里选择 Doris
测试通过以后保存即可,同样,我们需要再创建一个 OLTP 库作为我们测试的数据源库,这里我们选择 MySQL
创建数据同步任务,从 MySQL 到 Doris
但这里需要注意的是,社区版本对增量复制的限制还是比较明显的,数据源级别的整库同步,社区版本只支持2个槽,对小公司而言,在小型项目上这个是够用了,但是如果是上游数据源较多,同步任务复杂的场景,可能还是得看看 NineData 的商业版本了。
全量同步任务,非增量形式的,可支持10个任务槽。
无论怎样,我们先看看同步任务的速率如何。
上游 MySQL 源,使用 sysbench
工具对 MySQL 库生成了一批测试库表和数据。
一共模拟生成50张表,每张表100万行数据,共计5千万数据。
创建执行任务,选择**"保留结构并清空数据,再覆盖写入"**
选择 sysbench_test 整库,点击中间的 >
箭头同步至目标库
根据需要做预检查和调整
检查成功后,开启数据一致性对比,保证数据完整性
启动任务
从截图可以看到,单批次生成了5个并行表结构同步任务进行执行,但是每个批次之间有时间重叠部分,第一批次同步500万行数据是从 15:17:58-59
开始,至 15:18:28-31
结束,不算第二批次重叠同步部分,意味着大概30s左右同步了500w条数据。
从完整数据任务执行速度来看,5千万数据全量同步开始最早时间是 15:17:58
结束最迟时间是 15:24:13
,共计消耗时间 6分15秒
,换算速率大约是 158730条/s
本地服务器的硬盘都是 HDD 的,网络带宽是千兆网卡,相较于大部分的生产环境而言,这个配置都显著偏低了,因为大部分的生产环境网络要求最起码是万兆网卡。
全量复制同步后,即可同步的开启增量复制任务,即CDC式的同步任务,可以看到类似 FlinkCDC 的 CheckPoint 时间,在 NineData 中是一个动态变配的延迟值,平均看起来在5s以内,延迟已经非常不错了。
由于时间关系和篇幅关系,这里就不再模拟持续加载 MySQL 数据执行同步的情况了,有兴趣的同学可以测测看~
整个流程下来,给我最大的体感是 NineData 的部署易用性太高了,也就是我们常说的产品化程度很好。
窥一斑而知全豹,从产品打磨的完整程度而言,不愧的确是商业化的一款数据同步组件。
从部署、应用、演示、写文档,我都没有进行第二次重复,很顺利的就完成了实践和整篇的写作,这个给我的惊喜还是蛮大的。
首先我觉得 NineData 团队愿意进一步支持国内的免费市场,无论这是不是一个商业化考虑的行为,至少在用户角度是一件比较好的事情,有新的力量加入免费数据同步这个市场,会给更多的小型企业给出更多的选择空间。
至于后续资源不够是选择升级还是更换组件,我觉得这都是视情况而定了,如果不想自己花精力维护管道工具,在试用了免费社区版以后,也会有自己的感受和决定,如果老板就是没钱,那切换其他完全开源组件也没问题。
本文分享自 Apache Doris 补习班 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!