爆肝三天,我整理了500+ Seatunnel Connector 模板!

文摘   2024-11-12 00:00   重庆  
SeaTunnel是一个非常易用、超高性能的分布式数据集成平台,支持实时海量数据同步。每天可稳定高效同步数百亿数据,已被近百家企业应用于生产。

01

SeaTunnel 相关特性

  • 丰富且可扩展的Connector:SeaTunnel提供了不依赖于特定执行引擎的Connector API。基于该API开发的Connector(Source、Transform、Sink)可以运行在很多不同的引擎上,例如目前支持的SeaTunnel引擎(Zeta)、Flink、Spark等。
  • Connector插件:插件式设计让用户可以轻松开发自己的Connector并将其集成到SeaTunnel项目中。目前,SeaTunnel 支持超过 100 个连接器,并且数量正在激增。
  • 批流集成:基于SeaTunnel Connector API开发的Connector完美兼容离线同步、实时同步、全量同步、增量同步等场景。它们大大降低了管理数据集成任务的难度。
  • 支持分布式快照算法,保证数据一致性。
  • 多引擎支持:SeaTunnel默认使用SeaTunnel引擎(Zeta)进行数据同步。SeaTunnel还支持使用Flink或Spark作为Connector的执行引擎,以适应企业现有的技术组件。SeaTunnel 支持 Spark 和 Flink 的多个版本。
  • JDBC复用、数据库日志多表解析:SeaTunnel支持多表或全库同步,解决了过度JDBC连接的问题;支持多表或全库日志读取解析,解决了CDC多表同步场景下需要处理日志重复读取解析的问题。
  • 高吞吐量、低延迟:SeaTunnel支持并行读写,提供稳定可靠、高吞吐量、低延迟的数据同步能力。
  • 完善的实时监控:SeaTunnel支持数据同步过程中每一步的详细监控信息,让用户轻松了解同步任务读写的数据数量、数据大小、QPS等信息。
  • 支持两种作业开发方法:编码和画布设计。SeaTunnel Web 项目 https://github.com/apache/seatunnel-web 提供作业、调度、运行和监控功能的可视化管理。

这或许是一个对你有用的开源项目data-warehouse-learning 项目是一套基于 MySQL + Kafka + Hadoop + Hive + Dolphinscheduler + Doris + Seatunnel + Paimon + Hudi + Iceberg + Flink + Dinky + DataRT + SuperSet 实现的实时离线数仓(数据湖)系统,以大家最熟悉的电商业务为切入点,详细讲述并实现了数据产生、同步、数据建模、数仓(数据湖)建设、数据服务、BI报表展示等数据全链路处理流程。

https://gitee.com/wzylzjtn/data-warehouse-learning

https://github.com/Mrkuhuo/data-warehouse-learning

https://bigdatacircle.top/

项目演示:

02

SeaTunnel 工作流图

SeaTunnel的运行流程如上图所示。
用户配置作业信息并选择提交作业的执行引擎。
Source Connector负责并行读取数据并将数据发送到下游Transform或直接发送到Sink,Sink将数据写入目的地。值得注意的是,Source、Transform 和 Sink 可以很容易地自行开发和扩展。
SeaTunnel 是一个 EL(T) 数据集成平台。因此,在SeaTunnel中,Transform只能用于对数据进行一些简单的转换,例如将一列的数据转换为大写或小写,更改列名,或者将一列拆分为多列。
SeaTunnel 使用的默认引擎是 zeta引擎。如果您选择使用Flink或Spark引擎,SeaTunnel会将Connector打包成Flink或Spark程序并提交给Flink或Spark运行。

03

各类连接器

Seatunnel支持上百种连接器,这里以MySQLCDC举例,演示如何编写Seatunnel数据同步配置文件。

env {  # You can set engine configuration here  parallelism = 1  job.mode = "STREAMING"  checkpoint.interval = 5000}
source { MySQL-CDC { result_table_name = "customers_mysql_cdc" server-id = 5652 base-url = "jdbc:mysql://mysql_cdc_e2e:3306/mysql_cdc" username = "st_user_source" password = "mysqlpw" exactly_once = true table-names = ["mysql_cdc.mysql_cdc_e2e_source_table_1_custom_primary_key", "mysql_cdc.mysql_cdc_e2e_source_table_2_custom_primary_key"] table-names-config = [ { table = "mysql_cdc.mysql_cdc_e2e_source_table_1_custom_primary_key" primaryKeys = ["id"] }, { table = "mysql_cdc.mysql_cdc_e2e_source_table_2_custom_primary_key" primaryKeys = ["id"] } ] }}
sink { jdbc { source_table_name = "customers_mysql_cdc" url = "jdbc:mysql://mysql_cdc_e2e:3306/mysql_cdc2" driver = "com.mysql.cj.jdbc.Driver" user = "st_user_sink" password = "mysqlpw"
database = "mysql_cdc2" table = "${table_name}" primary_keys = ["${primary_key}"] generate_sink_sql = true }}

因为Seatunnel connector 非常多,限于篇幅没办法全部列出,我将剩余500+的Seatunnel 配置文件模板上传到了Github,各位圈友可访问自取:

https://github.com/Mrkuhuo/data-warehouse-learning

https://gitee.com/wzylzjtn/data-warehouse-learning

04

进交流群群添加作者

推荐阅读系列文章

如果喜欢 请点个在看分享给身边的朋友

大数据技能圈
分享大数据前沿技术,实战代码,详细文档
 最新文章