# Apache SeaTunnel 究竟是什么?
作者 | Shawn Gordon
翻译 | Debra Chen
原文链接 | What the Heck is Apache SeaTunnel?
我在2023年初开始注意到Apache SeaTunnel的相关讨论,一直低调地关注着。该项目始于2017年,最初名为Waterdrop,在Apache DolphinScheduler的创建者的贡献下发展起来,后者支持SeaTunnel作为任务插件。
我最初对于SeaTunnel是什么以及为什么我会关心它感到困惑。这意味着我将在至少能回答我的这些问题的层面上,对Apache SeaTunnel有一个深度的介绍。那么,让我们开始吧。
什么是SeaTunnel?
Apache SeaTunnel的项目介绍是“一个高性能的、分布式的、大规模数据集成工具,提供了异构数据集成和数据同步的一体化解决方案。”它包括三个主要组件:
- 源连接器
- 转换连接器
- 目标连接器
许多源连接器(Connector)可供选择;在版本2.3.3中,可用的连接器如链接所示。它支持包括关系型、NoSQL和图形等格式,以及分布式文件系统(如HDFS)和对象存储(如S3)等。
如果源和目标之间的格式不同,则转换连接器(Transform Tonnector)会发挥作用,实质上它就是对数据进行映射。
目标连接器(Sink)是源的另一侧,但现在你是在写入数据而不是读取。截至本文撰写时,SeaTunnel声明已支持超过100个连接器。
有了这些组件,SeaTunnel可以解决数据集成和同步中常见的问题。因此,它提供了实时和批处理数据的高性能数据同步。文章称它可以“实时同步数十亿数据量”。虽然我不确定是什么意思,但考虑到像阿里巴巴这样的公司在使用它,它的速度可能非常快。
SeaTunnel的特性
我对系统中的连接器API功能印象深刻。正如前面所述,Apache SeaTunnel已有超过100个预先构建的连接器,但如果需要其他连接器,你可以创建自己的连接器。这些连接器不与特定的执行引擎绑定,而可以使用Flink、Spark或本地的SeaTunnel引擎。连接器的插件架构让我想起了Trino的生态系统。
数据可以以批处理或实时方式同步,并提供了各种同步选项。SeaTunnel一个很棒的特性是它可以与JDBC已配合工作,支持多表或整个数据库的同步。这就解决了CDC多表同步方案的需求。
SeaTunnel的运行时流程如下所示:
- 配置作业信息并选择执行引擎。
- 源连接器并行读取数据,并将其传递到转换器、目标连接器或直接传递到目标。
请记住,SeaTunnel是一个EL(T)集成平台,因此它只能自行进行基本的数据转换:
- 更改列中的数据大小写
- 更改列名
- 将一列拆分为多列
SeaTunnel job
SeaTunnel job,或配置文件可能由四个部分组成:env、source、transform和sink。如果不执行转换,则可以忽略transform部分。配置文件可以采用hocon或json格式编写。从SeaTunnel文档中借鉴,以下是hocon格式的简单示例:
Copy code
env {
job.mode = "BATCH"
}
source {
FakeSource {
result_table_name = "fake"
row.num = 100
schema = {
fields {
name = "string"
age = "int"
card = "int"
}
}
}
}
transform {
Filter {
source_table_name = "fake"
result_table_name = "fake1"
fields = [name, card]
}
}
sink {
Clickhouse {
host = "clickhouse:8123"
database = "default"
table = "seatunnel_console"
fields = ["name", "card"]
username = "default"
password = ""
source_table_name = "fake1"
}
}
虽然格式非常易于阅读和理解,但我可以看出,对于大型表格,它可能会变得相当复杂。我要在此评论一下,就像许多开源项目一样,SeaTunnel的文档相当缺乏,但据我观察的时间,该项目似乎有一个相当活跃的Slack频道。
SeaTunnel使用要求
它是一个Java系统,支持Java 8或Java 11版本,但应该与较旧的系统兼容。如果你已经安装了Java,则只需从其网站获取所需的插件(或编写自己的插件),并在配置文件中进行设置。之后,按照上文所述创建用于管理作业的配置文件。只要你有访问源和目标数据存储库的凭据,控制台就会提供反馈信息。
Apache SeaTunnel还提供了Web界面,供那些想要替代CLI的用户选择。这将是我个人使用这个系统的首选方式,因为它的可视性更好,但安装和使用也需要更多的步骤。
总结
SeaTunnel显然适用于某些场景,就我目前所看到的情况而言,在处理各种数据源和目标的大量数据时,它才会发挥作用。我完全可以预见,SeaTunnel还将在很多场景中让事情变得更简单,所以我会把这个项目放在我的工具箱里。SeaTunnel团队提供了一个很好的快速入门指南,帮助用户可以轻松地自行尝试,看看它是否能解决你的问题吧!
本文由 白鲸开源 提供发布支持!
# Apache SeaTunnel 究竟是什么?的更多相关文章
- 陈胡:Apache SeaTunnel实现 非CDC数据抽取实践
导读: 随着全球数据量的不断增长,越来越多的业务需要支撑高并发.高可用.可扩展.以及海量的数据存储,在这种情况下,适应各种场景的数据存储技术也不断的产生和发展.与此同时,各种数据库之间的同步与转化的需 ...
- Apache SeaTunnel (Incubating) 2.1.0 发布,内核重构、全面支持 Flink
2021 年 12 月 9 日,SeaTunnel (原名 Waterdrop) 成功加入 Apache 孵化器,进入孵化器后,SeaTunnel 社区花费了大量时间来梳理整个项目的外部依赖以确保整个 ...
- 中国联通改造 Apache DolphinScheduler 资源中心,实现计费环境跨集群调用与数据脚本一站式访问
截止2022年,中国联通用户规模达到4.6亿,占据了全中国人口的30%,随着5G的推广普及,运营商IT系统普遍面临着海量用户.海量话单.多样化业务.组网模式等一系列变革的冲击. 当前,联通每天处理话单 ...
- 倒计时0日!Apache DolphineScheduler4月 Meetup 大佬手把手教你大数据开发,离线调度
随着互联网技术和信息技术的发展,信息的数据化产生了许多无法用常规工具量化.处理和捕捉的数字信息.面对多元的数据类型,海量的信息价值,如何有效地对大数据进行挖掘分析,对大数据工作流进行调度,是保障企业大 ...
- Apache DolphinScheduler ASF 孵化器毕业一周年,汇报来了!
不知不觉,Apache DolphinScheduler 已经从 Apache 软件基金会(以下简称 ASF)孵化器毕业一年啦! 北京时间 2021 年 4 月 9 日,ASF 官方宣布 Apache ...
- 恭喜社区喜提三枚新 Committer!
点击上方 蓝字关注我们 ✎ 编 者 按 Apache DolphinScheduler 社区最近又迎来三位新的 Committer,凭借对社区的高质量贡献,社区很荣幸地邀请他们加入 Committer ...
- 修改代码150万行!与 Blink 合并后的 Apache Flink 1.9.0 究竟有哪些重大变更?
8月22日,Apache Flink 1.9.0 正式发布,早在今年1月,阿里便宣布将内部过去几年打磨的大数据处理引擎Blink进行开源并向 Apache Flink 贡献代码.当前 Flink 1. ...
- 避免用Apache Beanutils进行属性的copy。why?让我们一起一探究竟
在实际的项目开发中,对象间赋值普遍存在,随着双十一.秒杀等电商过程愈加复杂,数据量也在不断攀升,效率问题,浮出水面. 问:如果是你来写对象间赋值的代码,你会怎么做? 答:想都不用想,直接代码走起来,g ...
- Apache Spark源码剖析
Apache Spark源码剖析(全面系统介绍Spark源码,提供分析源码的实用技巧和合理的阅读顺序,充分了解Spark的设计思想和运行机理) 许鹏 著 ISBN 978-7-121-25420- ...
- apache无法正常启动,80端口被占用的解决方法
apache无法正常启动,80端口被占用的解决方法 网上的方法: 仔细查看提示: make_sock: could not bind to address 0.0.0.0:80 恍然大悟,计算机上安装 ...
随机推荐
- sqlyog 工具 查看 历史记录
sqlyog 工具 查看 历史记录 可以查看当前客户端的执行脚本的情况
- 时间戳,mysql 秒数,毫秒数与时间之间的相互转换
时间戳,mysql 秒数,毫秒数与时间之间的相互转换 时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数.通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已 ...
- IDEA生成类和方法注释模板详细说明 绝对好用
吐槽 今天心血来潮,将使用了很久的IDEA旗舰版卸载了,想换社区版用一段时间,毕竟社区版开源免费.精简不卡顿,如果够用的话以后就省去了破解的烦恼,而且可以紧跟官网使用最新版 旧的IDEA配置忘记保存了 ...
- HTML元素如何按字符串原格式输出文本换行制表符信息
只需给相应HTML元素添加 style="white-space: pre"
- Scrcpy - 开源免费在电脑显示手机画面并控制手机的工具 (投屏/录屏/免Root)
教程:https://www.iplaysoft.com/scrcpy.html 官方地址:https://github.com/Genymobile/scrcpy
- 高通Android Cam-x Actuator Bring up
高通Android Camera Bring Up Actuator reference:https://blog.csdn.net/mr_zjc/article/details/105736925 ...
- 【Mysql】 MysqlDump导表结构或数据
mysqldump只导出表结构或只导出数据的实现方法 语法: 默认不带参数的导出,导出文本内容大概如下:创建数据库判断语句-删除表-创建表-锁表-禁用索引-插入数据-启用索引-解锁表. Usage: ...
- Nuxt3 的生命周期和钩子函数(十)
title: Nuxt3 的生命周期和钩子函数(十) date: 2024/6/30 updated: 2024/6/30 author: cmdragon excerpt: 摘要:本文详细介绍了Nu ...
- 判断浏览器是否是 IE 及 IE8 以下版本
作为一个前端,避免不了会遇见IE的坑,其他浏览器都好好的,测到IE就完蛋,各种不支持,服气了 有些属性和方法是所有版本IE都不支持,而有些则是部分支持,在项目中能够,主要分界岭为IE8,我相信目前大部 ...
- 只会建数据库怎么写API?database2api 能帮到你!
database2api 意为 DataBase to API,即只要有数据库,就可以生成开放 API. database2api 是一款强大而便捷的工具,主要功能是依据现有的数据库自动生成开放的 A ...