用 SeaTunnel 同步 MySQL 到 Doris:全量增量 + SQL 过滤

news/2025/9/25 16:38:19/文章来源:https://www.cnblogs.com/seatunnel/p/19111466

Apache SeaTunnel 能够实现 MySQL 到 Doris 的全量和增量数据同步,同时也支持 SQL 级别的数据过滤。以下是具体实现方式及功能特点:

全量与增量同步支持

1. 全量同步

实现方式:通过 SeaTunnel 的批处理模式(job.mode = "BATCH"),将 MySQL 的历史数据一次性导入 Doris。支持分片读取(如按主键分片)以提升效率,并可通过配置参数优化并行度、批量写入大小等。

source {Jdbc {query = "SELECT * FROM orders"  -- 全量数据读取partition_column = "id"        -- 分片字段split.size = 5000              -- 每分片读取行数}
}

2. 增量同步

  • 基于时间戳字段:通过WHERE update_time >= '${last_update_time}'动态参数筛选增量数据,需外部系统记录时间点并触发定期任务。
  • 基于 CDC(变更数据捕获):使用 MySQL CDC 连接器实时捕获 Binlog 变更(如插入、更新、删除),同步至 Doris。支持精确一次语义(Exactly-Once)和流式处理。
source {MySQL-CDC {startup.mode = "latest"  -- 从最新位点开始同步table-names = ["db.table"]}
}

SQL 级数据过滤支持

1. 数据源层过滤

  • 在源端 SQL 中定义过滤条件:通过 source 模块的 query 参数直接筛选数据,例如仅同步特定状态或时间范围的数据。
source {Jdbc {query = """SELECT * FROM orders WHERE status = 1 AND create_time > '2025-01-01'"""}
}
  1. 转换层过滤
    Transform 模块的 SQL 转换:在 transform 阶段通过自定义 SQL 对数据进行清洗、过滤或字段映射。
transform {Sql {query = "SELECT id, name FROM source WHERE amount > 1000"  -- 过滤金额小于1000的数据}
}

关键配置与注意事项

  1. Doris Sink 参数

需配置 Doris FE 节点地址、批量写入参数(batch_size)、数据合并策略(merge_type)等。

sink {Doris {fenodes = "doris_fe:8030"batch_size = 10000stream_load_properties = { "merge_type" = "MERGE" }}
}
  1. CDC 同步依赖条件

MySQL 需开启 Binlog 并配置ROW模式,用户需具备SELECT, REPLICATION SLAVE权限。

  1. 性能调优

全量同步建议分片读取避免单节点压力;增量同步可调整 Flink 或 Zeta 引擎的并行度以提升吞吐量。

与其他工具的对比

  • SeaTunnel 优势:支持批流一体、SQL 级灵活性、精确一次语义,适合复杂场景;相比之下,DataX 仅支持离线批量,Sqoop 局限于 Hadoop 生态 123。
  • 与 CloudCanal 对比:虽然 CloudCanal 提供可视化界面,但 SeaTunnel 的插件化架构和开源特性更适合自定义开发。

原文链接:https://blog.csdn.net/a772304419/article/details/146341445

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在CodeBolcks下wxSmith的C++编程教程——使用自定义绘制和鼠标处理创建项目

0.前言欢迎来到 wxSmith 教程页面!wxSmith 与 Code::Blocks、wxWidgets 和 C++ 编译器相结合,为您提供一种所见即所得的方式来创建具有图形用户界面 (GUI) 的应用程序。该组合形成了一个用于快速应用程序开发 (RA…

trae 配置mysql_mcp

trae 配置mysql_mcpMySQL MCP 安装配置完整指南 🎉 成功案例 版本: @benborla29/mcp-server-mysql@2.0.2 状态: ✅ 安装成功 环境: Windows + Trae.ai 📋 安装步骤 1. 安装稳定版本 npm install -g @benborla29/mc…

Apache NiFi 1.28.1 集群 + Kerberos 认证 + 多租户模式部署

Apache NiFi 1.28.1 集群 + Kerberos 认证 + 多租户模式部署1. 系统要求Java 8 或 Java 112. 物料包准备包名 下载地址 说明nifi-1.28.1-bin.zip https://archive.apache.org/dist/nifi/1.28.1/nifi-1.28.1-bin.zip Ni…

【cv】cycleGAN代码解析:train.py

【cv】cycleGAN代码解析:train.pyPosted on 2025-09-25 16:37 SaTsuki26681534 阅读(0) 评论(0) 收藏 举报import time # 计时:统计每轮/每次迭代耗时 from options.train_o…

做移动网站优化网站建设过程中要怎么打开速度

这次我们将学着怎么从一个深度图里面导出边界。我们对3种不同种类的点很感兴趣:物体的边框的点,阴影边框点,和面纱点(在障碍物边界和阴影边界),这是一个很典型的现象在通过雷达获取的3D深度。 下面是代码 /* \author Bastian Steder */#incl…

注册 网站开发 公司重庆招聘网

作者 | 轩辕之风O来源 | 编程技术宇宙相信大家这两天应该被这么一条新闻刷屏了:这个漏洞到底是怎么回事?核弹级,真的有那么厉害吗?怎么利用这个漏洞呢?我看了很多技术分析文章,都太过专业,很多非…

创建网站怎么创电子商务网站有哪些类型

项目介绍: 使用javaspringbootmysql开发的法律咨询网(文书),系统包含管理员、用户角色,功能如下: 管理员:登录系统;用户管理;文章管理(法律知识&#xff09…

网站建设公司业务在哪里来百度网站的总结

I老师就职于双非二本院校,希望通过出国研修以提升科研背景,在公派访学和申请导师出资的博士后之间,其选择了后者。最终我们落实了美国耶鲁大学的职位,头衔为Associate Research Scientist(副研究科学家)&am…

企业网站 联系我们电商培训机构有哪些?哪家比较好

常用示例 入门 Hello CMake CMake 是一个用于配置跨平台源代码项目应该如何配置的工具建立在给定的平台上。 ├── CMakeLists.txt # 希望运行的 CMake命令 ├── main.cpp # 带有main 的源文件 ├── include # 头文件目录 │ └── header.h └── src # 源代码目录 ├…

深入解析:李宏毅2023机器学习作业 HW01实操

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

基于Java+SpringBoot+SSM,Flask福聚苑社区团购体系(源码+LW+调试文档+讲解等)/福聚苑社区/团购系统/社区团购/福聚苑/团购/社区/环境/福聚苑小区/在线团购/社区购物

基于Java+SpringBoot+SSM,Flask福聚苑社区团购体系(源码+LW+调试文档+讲解等)/福聚苑社区/团购系统/社区团购/福聚苑/团购/社区/环境/福聚苑小区/在线团购/社区购物pre { white-space: pre !important; word-wrap: nor…

按需引入echarts

--// echarts-config.js // ECharts按需引入配置文件 import * as echarts from echarts/core; import {BarChart,LineChart,PieChart,ScatterChart,RadarChart } from echarts/charts; import {TitleComponent,Toolti…

软件构造的用户交互设计 4章

交互设计的原则 1.尽量保持一致 2.满足普遍可用性 3.提供信息反馈 4.设计对话框以产生结束信息 5.预防并成立错误 6.允许撤销操作 7.支持内部控制点 8.减轻短时记忆负担 交互设计的基本过程 标识和建立用户需求 提出满…

自定义制作docker容器自动自愈容器镜像

包括:完整的 autoheal.sh(支持每分钟检查一次、连续 5 次 unhealthy 才重启) Dockerfile docker-compose.yml 详细文档,包含参数说明、用法1️⃣ autoheal.sh #!/usr/bin/env sh set -e set -o pipefailDOCKER_SOC…

阀门公司网站建设广州动漫制作公司

1 mpl_toolkits.mplot3d 功能介绍 mpl_toolkits.mplot3d 是 Matplotlib 库中的一个子模块,用于绘制和可视化三维图形,包括三维散点图、曲面图、线图等。它提供了丰富的功能来创建和定制三维图形。以下是 mpl_toolkits.mplot3d 的主要功能和功能简介&am…

如何利用海外 NetNut 网络代理与 AICoding 实战获取 iPhone 17 新品用户评论数据?

如何利用海外 NetNut 网络代理与 AICoding 实战获取 iPhone 17 新品用户评论数据?如何利用海外 NetNut 网络代理与 AICoding 实战获取 iPhone 17 新品用户评论数据? 一、引言 在数据驱动时代,开发者与研究者越来越依…

第一次编码器测试

共1055圈 平均2047.974408 平均每张丢失距离 0.00001132 mm可以忽略 不丢帧

04-FreeRTOS的概述及编程规范

概述 本文对FreeRTOS源码进行概述,包括其核心文件作用,及其编程规范,有助于阅读rtos的内核源码,更好的帮助理解。 一、FreeRTOS 源码核心结构概述 FreeRTOS 是轻量级实时操作系统,核心功能围绕 “任务调度” 和 “…

10_ select/poll/epoll实现服务端的io多路复用

一、io多路复用 在现有模型中,似乎每一个线程都做了同样的事情,1、监听客户端消息;2、业务消息处理。 “一消息一线程”的缺点究其根本,在于让每个线程都做了同样重复、且消耗资源巨大的事情——单独持有fd、监听客…

模拟实战配置实验

vlan之间的互通 要实现 VLAN 10(192.168.150.0/24)、VLAN 100(192.168.100.0/24)、VLAN 200(192.168.200.0/24) 之间的互联互通,核心原理是:二层交换机仅负责 VLAN 内流量转发,跨 VLAN 流量需通过三层设备(核…