SeaTunnel:下一代超高性能、分布式、海量数据集成工具
SeaTunnel是下一代超高性能、分布式、海量数据集成工具。每天可以稳定高效地同步数百亿数据,已应用于多家企业的生产中。
为什么我们需要 SeaTunnel
SeaTunnel专注于数据集成和数据同步,主要旨在解决数据集成领域的常见问题:
- 数据源丰富:常用数据源有数百种,且版本不兼容。随着新技术的出现,更多的数据源不断出现。用户很难找到一个能够全面、快速支持这些数据源的工具。
- 同步场景复杂:数据同步需要支持离线全量同步、离线增量同步、CDC、实时同步、全库同步等多种同步场景。
- 对资源要求高:现有的数据集成和数据同步工具往往需要大量的计算资源或JDBC连接资源来完成海量小表的实时同步。这在一定程度上增加了企业的负担。
- 缺乏质量和监控:数据集成和同步过程经常会出现数据丢失或重复的情况。同步过程缺乏监控,无法直观了解任务过程中数据的真实情况。
SeaTunnel的特点
- 连接器多样:SeaTunnel已支持超过100种连接器,并且数量正在激增。以下是我们支持和计划支持的连接器列表。
- 批流集成:基于SeaTunnel Connector API开发的Connector完美兼容离线同步、实时同步、全量同步、增量同步等场景。大大降低了管理数据集成任务的难度。
- 支持分布式快照算法,保证数据一致性。
- 多引擎支持:SeaTunnel默认使用SeaTunnel Zeta Engine进行数据同步。同时,SeaTunnel还支持使用Flink或Spark作为Connector的执行引擎,以适应企业现有的技术组件。此外,SeaTunnel支持Spark和Flink的多个版本。
- JDBC复用、数据库日志多表解析:SeaTunnel支持多表或全库同步,解决了过度JDBC连接的问题;支持多表或全库日志读取解析,解决了CDC多表同步场景下日志重复读取解析的问题。
- 高吞吐量、低延迟:SeaTunnel支持并行读写,提供稳定可靠的高吞吐量、低延迟的数据同步能力。
- 完善的实时监控:SeaTunnel支持数据同步过程中每一步的详细监控信息,让用户轻松了解同步任务读写的数据数量、数据大小、QPS等信息。
- 支持两种作业开发方法:编码和画布设计。SeaTunnel Web 项目https://github.com/apache/seatunnel-web提供作业、调度、运行和监控功能的可视化管理。
此外,SeaTunnel提供了不依赖于特定执行引擎的Connector API。基于该API开发的Connector(Source、Transform、Sink)可以运行在很多不同的引擎上,例如目前支持的SeaTunnel Zeta Engine、Flink、Spark等。
SeaTunnel工作流程图
SeaTunnel的运行流程如上图所示。
用户配置作业信息并选择提交作业的执行引擎。
Source Connector负责并行化数据并将数据发送到下游Transform或直接发送到Sink,Sink将数据写入目的地。值得注意的是,Source、Transform和Sink都可以很容易地自行开发和扩展。
SeaTunnel 使用的默认引擎是SeaTunnel Engine。如果您选择使用Flink或Spark引擎,SeaTunnel会将Connector打包成Flink或Spark程序并提交给Flink或Spark运行。
SeaTunnel 支持的连接器
- 源连接器支持签出
- 支持的接收器连接器检查
- 转换支持签出
以下是我们的连接器及其健康状况的列表。连接器状态
下载
直接运行软件包下载地址: https:
//seatunnel.apache.org/download
快速开始
SeaTunnel 默认使用 SeaTunnel Zeta Engine 作为数据同步的运行时执行引擎。我们强烈建议使用 Zeta 引擎作为运行时引擎,因为它提供卓越的功能和性能。顺便说一句,SeaTunnel还支持使用Flink或Spark作为执行引擎。
SeaTunnel Zeta 引擎
https://seatunnel.apache.org/docs/start-v2/locally/quick-start-seatunnel-engine/
Spark https://seatunnel.apache.org/docs/start-v2/locally/quick-start-spark
Flink https://seatunnel.apache.org/docs/start-v2/locally/quick-start-flink
所有支持 Apache SeaTunnel 的接收器 (v2)。
AmazonDynamoDB
Amazon DynamoDB sink connector
Assert
Assert sink connector
Cassandra
Cassandra sink connector
Clickhouse
Clickhouse sink connector
ClickhouseFile
Clickhouse file sink connector
Console
Console sink connector
CosFile
Cos file sink connector
DB2
JDBC DB2 Sink Connector
DataHub
DataHub sink connector
DingTalk
DinkTalk sink connector
Doris
Doris sink connector
Elasticsearch
Description
Email source connector
Enterprise WeChat
Enterprise WeChat sink connector
Feishu
Feishu sink connector
FtpFile
Ftp file sink connector
GoogleFirestore
Google Firestore sink connector
Greenplum
Greenplum sink connector
Hbase
Hbase sink connector
HdfsFile
HDFS File Sink Connector
Hive
Hive sink connector
Http
Http sink connector
InfluxDB
InfluxDB sink connector
IoTDB
IoTDB sink connector
JDBC
JDBC sink connector
Kafka
Kafka sink connector
Kudu
Kudu sink connector
LocalFile
Local file sink connector
Maxcompute
Maxcompute sink connector
MongoDB
MongoDB Sink Connector
MySQL
JDBC Mysql Sink Connector
Neo4j
Neo4j sink connector
OceanBase
JDBC OceanBase Sink Connector
Oracle
JDBC Oracle Sink Connector
OssFile
Oss file sink connector
OssJindoFile
OssJindo file sink connector
Paimon
Paimon sink connector
Phoenix
Phoenix sink connector
PostgreSql
JDBC PostgreSql Sink Connector
Rabbitmq
Rabbitmq sink connector
Redis
Redis sink connector
RocketMQ
RocketMQ sink connector
S3Redshift
The way of S3Redshift is to write data into S3, and then use Redshift's COPY command to import data from S3 to Redshift.
S3File
S3 File Sink Connector
SelectDB Cloud
SelectDB Cloud sink connector
Sentry
Description
SftpFile
Sftp file sink connector
Slack
Slack sink connector
Snowflake
JDBC Snowflake Sink Connector
Socket
Socket sink connector
StarRocks
StarRocks sink connector
TDengine
TDengine sink connector
Tablestore
Tablestore sink connector
Vertica
JDBC Vertica Sink Connector
项目地址:
https://github.com/apache/seatunnel