告别重复手动同步!用SeaTunnel+ DolphinScheduler,让增量数据自动“飞”起来

还在为每天手动同步新增数据而烦恼?试试这个开源黄金组合,一键搞定定时增量同步,解放你的生产力!
1784171898137677e66b23c7f6f45


点亮⭐️

https://github.com/apache/DolphinScheduler



点击蓝字 关注我们









摘要: 还在为每天手动同步新增数据而烦恼?试试这个开源黄金组合,一键搞定定时增量同步,解放你的生产力!

你是否也有这样的困扰:数据库里的数据每天都在增长,你需要把前一天的新数据同步到另一个地方进行分析。手动执行?太麻烦还容易忘。写个定时脚本?维护起来又不方便。

今天,就给大家分享一个 “懒人”必备的解决方案:用 SeaTunnel 做数据同步引擎,用 DolphinScheduler 做智能调度管家,强强联合,实现每日增量数据的全自动同步。

一、这个组合到底解决什么问题?


简单来说,它能帮你自动化处理每天的数据同步任务。

想象一下这个场景:公司有一个核心业务表,数据每天都会更新。你需要把每天的新数据同步到另一个数据库或者数据仓库里,用于报表分析或给其他系统使用。

  • 只用 SeaTunnel:你可以写一个同步脚本,它能很好地完成一次性的全量或增量同步。但是你需要每天手动去执行它,或者自己写一个系统的 crontab 定时任务。
  • 加入 DolphinScheduler:事情就变得优雅了。你只需要配置好一次,它就能每天自动、准时地触发 SeaTunnel 任务,并且能清晰地看到每次任务执行是成功还是失败,失败了还能设置重试或告警。


它的核心价值在于:将固定的数据同步流程任务化、可视化、自动化,让你从重复的运维操作中彻底解放出来。

下面,我们就手把手带你实现一个经典案例:每天自动将 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
2. 配置 SeaTunnel 环境变量
这一步是告诉管家 SeaTunnel 安装在哪里。如果使用的是 standalone-server 模式,需要配置系统环境变量以确保调度器能正确找到 SeaTunnel。

# 环境变量是必须配置的# 方法:在系统环境变量文件(如 /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}
配置完成后,别忘了重启 DolphinScheduler 服务。

3. 创建工作流(核心步骤)

现在,我们来给管家布置一个具体的任务。在 DolphinScheduler 网页界面中:

  1. 进入数据集成 -> 创建 SeaTunnel 任务

  1. 填写关键参数:

  • 启动脚本:填写 seatunnel.sh

  • 选项参数:这是实现 “动态日期” 的魔法钥匙!填入:


-i date=$(date -d "1 day ago" +"%Y-%m-%d")
这行 bash 命令会在每次任务执行时,自动计算出“昨天的日期”并赋值给变量 date
  • 部署方式:选择 local (本地模式)。

  • 脚本:填入下面这个 SeaTunnel 配置脚本。


    四、核心魔法:SeaTunnel同步脚本


这个脚本定义了 “同步什么” 和 “同步到哪里”。关键点在于,我们使用了 ${date} 这个变量来动态过滤数据。

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"]  }}
配置完成后,点击保存。然后在工作流列表中,将这条任务 上线,并设置 定时规则(例如,每天凌晨1点执行),最后点击 定时上线

五、效果验收:查看与管理任务


任务上线后,一切就交给自动化流程了。你可以在 DolphinScheduler 的 “工作流实例” 页面,清晰地看到每次任务的执行记录。
  • 状态监控:成功、失败、正在运行,一目了然。


  • 日志查看:如果任务失败,点击任务实例,右键选择 “查看日志”,就能像下图一样,快速定位是网络问题、SQL错误还是配置错误,高效排查。


178417190097312123729cbf59d4e1784171901533eb76dea675eb6ac5
1784171902112496dea826c2f1562

写在最后


数据同步,本是数据工程师的日常功课。但借助 SeaTunnel + DolphinScheduler 这对开源利器,我们可以将重复、机械的操作转化为稳定、可靠的自动化流程。

这不仅降低了人为操作的错误风险,也极大提升了工作效率,让你能有更多时间聚焦于更有价值的数据分析和业务洞察上。

如果你也受困于每日的手动同步,不妨尝试搭建一下这个流程。从今天开始,让你的数据同步工作,变得智能又轻松!

来源 | 数仓生态圈




END






用户案例


DolphinScheduler Agent开源上线Cisco Webex天翼云Zoom网易邮箱 每日互动 惠生工程作业帮 博世智驾蔚来汽车 长城汽车集度长安汽车思科网讯食行生鲜联通医疗联想新网银行兴业证券唯品富邦消费金融 自如有赞伊利当贝大数据珍岛集团传智教育BigoYY直播 拈花云科太美医疗深圳某智能制造企业
1784171902112496dea826c2f1562



迁移实战


Azkaban Ooize(当贝迁移案例)airflow (有赞迁移案例)Air2phin(迁移工具)Airflow
1784171902112496dea826c2f1562



最新发版消息



Apache DolphinScheduler 3.4.2 正式发布!新增 Amazon EMR Serverless 插件,增强监控与补数据能力
1784171902112496dea826c2f1562



加入社区


关注社区的方式有很多:

  • GitHub: https://github.com/apache/dolphinscheduler
  • 官网:https://dolphinscheduler.apache.org/en-us
  • 订阅开发者邮件:dev@dolphinscheduler@apache.org(向邮箱发送任意内容,收到邮件后回复同意订阅即可)
  • X.com:@DolphinSchedule
  • YouTube:https://www.youtube.com/@apachedolphinscheduler
  • Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。

非代码方式包括:

完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。

‍代码方式包括:

查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3A%22first+time+contributor%22

优先级问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3Apriority%3Ahigh

如何参与贡献链接https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97_menu/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E_menu

如果你❤️小海豚,就来为我点亮Star吧!

https://github.com/apache/dolphinscheduler


1784171904099f33ce91bb9eaa4af


178417190461964bafe7d1de40805

你的好友小海豚拍了拍你

并请你帮她点一下“分享”