大数跨境
0
0

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

用 SeaTunnel 同步 MySQL 到 Doris:全量增量 + SQL 过滤 SeaTunnel
2025-09-24
0
导读:SeaTunnel能够实现MySQL到Doris的全量和增量数据同步,同时也支持SQL级别的数据过滤。

点击蓝字

关注我们

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

1

全量与增量同步支持

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"]  }}


2

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的数据  }}

3

关键配置与注意事项

  1. Doris Sink 参数

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

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

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

  1. 性能调优

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

4

与其他工具的对比

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

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

Apache SeaTunnel

Apache SeaTunnel是一个云原生的多模态、高性能海量数据集成工具。北京时间 2023 年 6 月1 日,全球最大的开源软件基金会ApacheSoftware Foundation正式宣布Apache SeaTunnel毕业成为Apache顶级项目。目前,SeaTunnel在GitHub上Star数量已达8k+,社区达到6000+人规模。SeaTunnel支持在云数据库、本地数据源、SaaS、大模型等170多种数据源之间进行数据实时和批量同步,支持CDC、DDL变更、整库同步等功能,更是可以和大模型打通,让大模型链接企业内部的数据。




同步Demo

MySQL→Doris | MySQLCDC | MySQL→Hive | HTTP → Doris  | HTTP → MySQL | MySQL→StarRocks|MySQL→Elasticsearch |Kafka→ClickHouse

新手入门

SeaTunnel 让数据集成变得 So easy!3 分钟入门指南
 0 到 1 快速入门 /初探/深入理解 
  分布式集群部署 | CDC数据同步管道 | Oracle-CDC
图片

最佳实践

OPPO | 清风|天翼云|马蜂窝|孩子王|哔哩哔哩|唯品会|众安保险|兆原数通 | 亚信科技|映客|翼康济世|信也科技|华润置地|Shopee|京东科技|58同城|互联网银行|JPMorgan
图片

测试报告

SeaTunnel VS GLUE |  VS Airbyte |  VS DataX|SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比

图片

源码解析

Zeta引擎源码解析(一) |(二) |(三)| API 源码解析 |2.1.1源码解析|封装 Flink 连接数据库解析





仓库地址: 
https://github.com/apache/seatunnel
网址:
https://seatunnel.apache.org/
Apache SeaTunnel 下载地址:
https://seatunnel.apache.org/download
衷心欢迎更多人加入!
我们相信,在Community Over Code(社区大于代码)、「Open and Cooperation」(开放协作)、「Meritocracy」(精英管理)、以及「多样性与共识决策」等 The Apache Way 的指引下,我们将迎来更加多元化和包容的社区生态,共建开源精神带来的技术进步!
我们诚邀各位有志于让本土开源立足全球的伙伴加入 SeaTunnel 贡献者大家庭,一起共建开源!
提交问题和建议:
https://github.com/apache/seatunnel/issues
贡献代码:
https://github.com/apache/seatunnel/pulls
订阅社区开发邮件列表 : 
dev-subscribe@seatunnel.apache.org
开发邮件列表:
dev@seatunnel.apache.org
加入 Slack:
https://join.slack.com/t/apacheseatunnel/shared_invite/zt-1kcxzyrxz-lKcF3BAyzHEmpcc4OSaCjQ
关注 X.com: 
https://x.com/ASFSeaTunnel


【声明】内容源于网络
0
0
SeaTunnel
Apache SeaTunnel 是新一代超高性能数据集成工具,同时支持海量数据离线和实时同步,每天可以稳定高效同步万亿级数据,已在数百家公司生产使用,致力于为企业提供高效、可靠的数据处理方案,助力构建数据驱动的智能应用。
内容 472
粉丝 0
SeaTunnel Apache SeaTunnel 是新一代超高性能数据集成工具,同时支持海量数据离线和实时同步,每天可以稳定高效同步万亿级数据,已在数百家公司生产使用,致力于为企业提供高效、可靠的数据处理方案,助力构建数据驱动的智能应用。
总阅读57
粉丝0
内容472