SeaTunnel是一个非常易用的超高性能分布式数据集成平台,在企业中由于开发时间或开发部门不通用往有多个异构的、运行在不同的软硬件平台上的信息系统同时运行;而一个有价值的数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享;SeaTunnel 支持海量数据的实时同步,它每天可以稳定高效地同步数百亿的数据,并已用于近100家公司的生产。最新版本为v2.1.3(作为下一代高性能、分布式、海量数据集成框架)
- SeaTunnel原名WaterDrop(水滴),自2021年 10月 12日更名为 SeaTunnel。2021年 12月 9日,SeaTunnel正式通过 Apache软件基金会的投票决议,以全票通过的优秀表现正式成为 Apache 孵化器项目。2022 年 3 月 18 日社区正式发布了首个 Apache 版本v2.1.0。
- 本质上SeaTunnel 没有对 Spark 和 Flink的改造,而是在这两者的基础上做了一层包装,主要运用控制反转设计模式,这也是 SeaTunnel实现的基本思想。
- SeaTunnel 的日常使用,就是编辑配置文件,编辑好的配置文件由 SeaTunnel 转换为具体的 Spark或 Flink 任务。
使用场景
- 海量数据同步
- 海量数据集成
- 海量数据的ETL
- 海量数据聚合
- 多源数据处理
特点
- 使用方便,配置灵活,近乎低代码开发
- 实时流媒体
- 离线多源数据分析
- 高性能、海量数据处理能力
- 模块化和插件机制,易于扩展
- 支持SQL对数据进行处理和聚合
- 支持Spark structured streaming
- 支持Spark 2.x
工作流程
SeaTunnel 有丰富的连接器且以 Spark 和 Flink 为引擎,所以可以很好地进行分布式的海量数据同步。一般来说使用SeaTunnel作为出仓入仓的工具,或者用于数据集成,主要流程如下:
Source[Data Source Input] -> Transform[Data Processing] -> Sink[Result Output]
数据处理管道由多个滤波器组成,以满足各种数据处理需求,最简单有效就是通过SQL直接构造数据处理管道。目前,SeaTunnel支持的过滤列表还在扩展中。此外,还可以开发自己的数据处理插件,得益于SeaTunnel系统基于插件化设计思想实现的强可扩展性。
连接器
- Source:Druid、Elasticsearch、Fake(伪造数据主要用于测试)、Feishu、Sheet、File、HBase、Hive、Http、Hudi、Iceberg、InfluxDb、Jdbc、Kafka、Kudu、MongoDb、Phoenix、Redis、Socket、Tidb、WebhookStream、Common OptionsSource common parametersNeo4j自主开发的输入插件。
- Sink: Assert、Clickhouse、 ClickhouseFile、 Console、 Doris、Druid、Elasticsearch、 Email、 File、 Hbase、 Hive、 Hudi、 Iceberg、InfluxDB、 Jdbc、 Kafka、 Kudu、 MongoDB、 Phoenix、 Redis、 TiDb、 Common Options、自主开发的输出插件。
- Flink-sql of SeaTunnel:Flink SQL ElasticSearch 连接器、Flink SQL JDBC 连接器、Flink SQL Kafka 连接、如何使用flink sql 模块。
连接器在实际开发中的使用直接查找官方对应章节即可
转换
用于转换或过滤插件包括如下:添加校验、转换、日期、删除、Grok、Json、KV、大写、小写、删除、重命名、重分区、替换、样本、拆分、Sql、表、截断、Uuid,自主开发的过滤器插件。详细可查阅官网地址
为何选择SeaTunnel
SeaTunnel将尽力解决在海量数据同步过程中可能遇到的问题: