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 工作流图
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
进交流群群添加作者
推荐阅读系列文章
如果喜欢 请点个在看分享给身边的朋友