
点亮⭐️
https://github.com/apache/
点击蓝字 关注我们
摘要: 还在为每天手动同步新增数据而烦恼?试试这个开源黄金组合,一键搞定定时增量同步,解放你的生产力!
你是否也有这样的困扰:数据库里的数据每天都在增长,你需要把前一天的新数据同步到另一个地方进行分析。手动执行?太麻烦还容易忘。写个定时脚本?维护起来又不方便。
今天,就给大家分享一个 “懒人”必备的解决方案:用 做数据同步引擎,用 DolphinScheduler 做智能调度管家,强强联合,实现每日增量数据的全自动同步。
一、这个组合到底解决什么问题?
简单来说,它能帮你自动化处理每天的数据同步任务。
想象一下这个场景:公司有一个核心业务表,数据每天都会更新。你需要把每天的新数据同步到另一个数据库或者数据仓库里,用于报表分析或给其他系统使用。
它的核心价值在于:将固定的数据同步流程任务化、可视化、自动化,让你从重复的运维操作中彻底解放出来。
下面,我们就手把手带你实现一个经典案例:每天自动将 MySQL 中指定表的前一天数据,同步到另一张表。
二、准备工作:环境与数据
1. 所需环境
确保你已有以下环境,版本供参考:
DolphinScheduler 3.4.0(任务调度平台)
SeaTunnel 2.3.12(数据同步引擎)
MySQL 5.7(作为数据源和目标)
2. 准备测试数据
我们在 MySQL 中创建一张简单的表,并插入一些测试数据,模拟每日新增的场景。
CREATE TABLE `paramtest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `rq` date NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4;INSERT INTO `paramtest` VALUES (1, '张三', '2026-02-06');INSERT INTO `paramtest` VALUES (2, '李四', '2026-02-05');
我们的目标是:每天自动同步 rq 日期为“前一天”的所有数据。
三、黄金搭档:DolphinScheduler配置详解
下载SEATUNNEL依赖
1. 安装 SeaTunnel 插件
首先,得让管家认识 SeaTunnel 这个工具。在 DolphinScheduler 的安装目录下操作:
vi conf/plugins_configdolphinscheduler-task-seatunnel
bash ./bin/install-plugins.sh 3.4.0
# 环境变量是必须配置的# 方法:在系统环境变量文件(如 /etc/profile)中添加export SEATUNNEL_HOME=/your/path/to/apache-seatunnel-2.3.12# 保存后,让配置生效source /etc/profile# 下面2个文件是先配置的,不知道是否是必须的# ${SEATUNNEL_HOME}/bin/env/dolphinscheduler_env.shexport SEATUNNEL_HOME={SEATUNNEL_HOME:/your/path/to/apache-seatunnel-2.3.12}# ${SEATUNNEL_HOME}/standalone-server/conf/dolphinscheduler_env.shexport SEATUNNEL_HOME={SEATUNNEL_HOME:/your/path/to/apache-seatunnel-2.3.12}3. 创建工作流(核心步骤)
现在,我们来给管家布置一个具体的任务。在 DolphinScheduler 网页界面中:
进入数据集成 -> 创建 SeaTunnel 任务。
填写关键参数:
启动脚本:填写 seatunnel.sh 。
选项参数:这是实现 “动态日期” 的魔法钥匙!填入:
-i date=$(date -d "1 day ago" +"%Y-%m-%d")
部署方式:选择 local (本地模式)。
脚本:填入下面这个 SeaTunnel 配置脚本。
四、核心魔法:SeaTunnel同步脚本
env { parallelism = 1 job.mode = "BATCH"}source { Jdbc { url = "jdbc:mysql://10.0.12.100:3306/cdc?serverTimezone=UTC" driver = "com.mysql.cj.jdbc.Driver" connection_check_timeout_sec = 100 user = "root" password = "root" query = "select * from paramtest where rq = '${date}'" }}sink { Jdbc { url = "jdbc:mysql://10.0.12.100:3306/cdc?serverTimezone=UTC" driver = "com.mysql.cj.jdbc.Driver" user = "root" password = "root" generate_sink_sql = true database = cdc table = "paramtest2" primary_keys = ["id"] }}五、效果验收:查看与管理任务
状态监控:成功、失败、正在运行,一目了然。
日志查看:如果任务失败,点击任务实例,右键选择 “查看日志”,就能像下图一样,快速定位是网络问题、SQL错误还是配置错误,高效排查。



写在最后
数据同步,本是数据工程师的日常功课。但借助 SeaTunnel + DolphinScheduler 这对开源利器,我们可以将重复、机械的操作转化为稳定、可靠的自动化流程。
这不仅降低了人为操作的错误风险,也极大提升了工作效率,让你能有更多时间聚焦于更有价值的数据分析和业务洞察上。
如果你也受困于每日的手动同步,不妨尝试搭建一下这个流程。从今天开始,让你的数据同步工作,变得智能又轻松!
来源 | 数仓生态圈
END
用户案例

迁移实战

最新发版消息

加入社区
关注社区的方式有很多:
同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。
非代码方式包括:
完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。
代码方式包括:
查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。


你的好友小海豚拍了拍你
并请你帮她点一下“分享”
