ITPub博客

首页 > 大数据 > 可视化 > 告别重复手动同步!用 SeaTunnel+ DolphinScheduler,让增量数据自动“飞”起来

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

原创 可视化 作者:SeaTunnel 时间:2026-07-16 15:32:06 0 删除 编辑

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

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

今天,就给大家分享一个 “懒人”必备的解决方案:用 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 任务。
  2. 填写关键参数:
  • 启动脚本:填写  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 错误还是配置错误,高效排查。

4f68daa145967fec853ee2cc90155acb

98c4da3328a4088285b9636b0a3e13d9

写在最后

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

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

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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049562/viewspace-3176086/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2026-02-27

  • 博文量
    85
  • 访问量
    81809