### 摘要
本文深入探讨了Apache SeaTunnel及其商业版可视化数据同步平台WhaleTunnel在数据整合领域的应用,特别是如何高效地将SAP系统中的数据同步到[Amazon Redshift](https://aws.amazon.com/cn/redshift/?trk=cndc-detail)。通过技术介绍、操作流程、性能对比以及实际案例分析,本文为企业介绍了一种快速、可靠的数据整合解决方案。
### Apache SeaTunnel概览
当今,无论是国内还是国外,越来越的云上或线下数据库会增加一些例如SAP、Oracle、Oracle ERP等软件。如何更快地把这里面的数据集中到数据仓库?或者说已经有一些数据进入到Redshift/Aurora里面,我们如何把它们分发到SAP或者CRM系统中?
Apache SeaTunnel是一款创新的批流一体数据整合工具,被比喻成是一条“大数据的高速公路”,它支持广泛的数据源和目标数据库,包括但不限于MySQL、PostgreSQL、Kafka、MongoDB、Elastic、Hive、Druid、Redis等。Apache SeaTunnel以其卓越的性能,相较于传统解决方案,能够实现高达30倍的同步速度提升。
相较于早年大家做数据整合和数据处理习惯使用的Spark和Flink这两个用于数据计算的引擎,Apache SeaTunnel是一个专业的批流一体的数据同步工具,在CDC和流式计算场景中有很大的优势。
![1.png](https://dev-media.amazoncloud.cn/1409e5b3a91f4a44adac2ae0f224316e_1.png "1.png")
Apache SeaTunnel从2018年开源,2022年进入Apache孵化器,2023年从Apache孵化器毕业成为顶级开源项目,从一些数据中可以看到,现在Apache SeaTunnel社区非常活跃,目前GitHub Star已经7600+,成为过万星的开源项目指日可待。
![2.png](https://dev-media.amazoncloud.cn/9b9120055dd24a52881b200b36cb744c_2.png "2.png")
得益于它强大的数据同步和整合性能以及易用性,Apache SeaTunnel已经有不少用户,典型用户包括JP Morgan Chase,哔哩哔哩等。
#### Apache SeaTunnel核心特性
- **多种同步方式优势**:支持批流一体的同步,批量数据同步能够从数据源头上通过JDBC的方式进行同步,或直接对接原来的数据接进行批量数据读写,这比JDBC加载的方式快很多。批流一体的数据同步也是使得CDC非常方便,可以自动化同步历史数据,在内存里驱动并加载相关binlog,省去了手工同步地址等相关工作。同时,Apache SeaTunnel还支持动态加载表,分库分表、Checkpoint等场景。
![4.png](https://dev-media.amazoncloud.cn/30e8654d10294903947a7eecc92a196b_4.png "4.png")
![5.png](https://dev-media.amazoncloud.cn/e9c6adee75b2438b8c0bd147907f6985_5.png "5.png")
- **连接器支持**:支持超过130种连接器,覆盖了主流的数据库和数据存储系统。
![3.png](https://dev-media.amazoncloud.cn/a502dde79ef04287a823d7921e9b09af_3.png "3.png")
- **支持多引擎**:Apache SeaTunnel支持自研的Zeta数据同步专用引擎,并与Spark、Flink、Zeta等多种数据处理引擎兼容,提供snapshot存储功能。
![6.png](https://dev-media.amazoncloud.cn/8ef0f6723c254bfcb7a705ed764564f9_6.png "6.png")
- **性能优势**:Apache SeaTunnel在数据同步任务中表现出色,在实际场景中性能优于大部分数据同步工具,例如比DataX快30%,比DMS快80%。
![7.png](https://dev-media.amazoncloud.cn/580ec67521f447d5a1cb096967f906e8_7.png "7.png")
![8.png](https://dev-media.amazoncloud.cn/0aa88ad5f4bb4a739137e6ef11b57085_8.png "8.png")
#### 部署便捷性
Apache SeaTunnel的部署过程简单快捷,不需要依赖HDFS,3分钟即可完成部署,可以在Spark、Flink或Zeta上运行,推荐使用Zeta以获得更佳性能。经实测,如果要同步的数据量不大,一台SeaTunnel的服务器就可以支持每天几十G的数据同步。
![9.png](https://dev-media.amazoncloud.cn/92f671a5658a4575b1a600772b62df6c_9.png "9.png")
Apache SeaTunnel相关资源:
* 官网: https://seatunnel.apache.org
- GitHub:https://github.com/apache/incubator-seatunnel
- Slack:https://apacheseatunnel.slack.com
* X:https://twitter.com/asfseatunnel
B 站:https://space.bilibili.com/1542095008
### SAP数据到Redshift的集成实践
接下来以使用Apache SeaTunnel及其商业版本WhaleTunnel将SAP数据同步Redshift的详细过程为例,为企业介绍一种快速、可靠的数据整合解决方。
#### 数据同步作业创建
在Apache SeaTunnel中,通过SQL代码,用户可以创建数据同步作业,包括数据源的读取、转换以及数据的写入操作。
![10.png](https://dev-media.amazoncloud.cn/ad90a6ba4d0f44cbb2f5c1baff011ca9_10.png "10.png")
对于不同的数据源,Source负责从各种数据源中读取数据,通过Tranform将其转化成SeaTunnelRow抽象层(匹配Apache SeaTunnel定义的数据类型),Sink负责从抽象层上拉取数据,写到具体的数据存储上,转化成存储具体的格式。
通过Source+抽象层+Sink这样的组合,就能够完成多种异构数据源之间数据的搬运同步。
#### 从AWS Marketplace快速部署WhaleTunnel
如果那你觉得Apache SeaTunnel的部署方式不够简单,那么可以尝试体验一下它的商业版本——WhaleTunnel。
![11.png](https://dev-media.amazoncloud.cn/501e377dee0a444aab0f14e7c0c3b168_11.png "11.png")
WhaleTunnel是Apache SeaTunnel核心团队(包括PMC Chair和PMC)建立的DataOps商业公司——白鲸开源打造的一个可视化、高性能的大数据集成工具,感兴趣的话可以直接在AWS [Marketplace](https://aws.amazon.com/marketplace/pp/prodview-kzzy36f3blbxu)下载并一键部署。
#### WhaleTunnel帮助企业快速完成复杂数据源之间CDC与批量整合问题
![13.png](https://dev-media.amazoncloud.cn/36ddc37494c946b6924bae7984dde197_13.png "13.png")
相较于开源版本的Apache SeaTunnel,WhaleTunnel具有一些特殊的商业版特性,比如提供了一个可视化界面,支持可视化操作、运维与监控配置,简化了数据源的配置和管理;数据源的支持更丰富,目前支持180+种数据源,比如针对Redshift单独做了连接器,与AWS做了深入的技术适配;支持CDC、整库同步、表自动变更场景,并且和Apache DolphinScheduler调度做了全面的整合;以及支持DDL变更自动同步、断点续传等便于数据同步的功能。
通过对比不同工具的性能数据,可以看到WhaleTunnel在不同场景下的性能表现亮眼,尤其是在SAP Hana数据源的同步上。
#### 通过WhaleTunnel可视化配置SAP到Redshift集成
WhaleTunnel可以帮助用户快速可视化配置SAP到Redshift,中间支持针对字段和记录级别的Transform以及类SQL处理。我们在配置SAP只需要把SAP数据源拉进来,然后进行可视化的配置。如果SAP有一些数据要做处理,可以直接通过字段重命名,或者自定义SQL脚本把Redshift数据源拉进来。
![14.png](https://dev-media.amazoncloud.cn/3683e786a64c47d6a69f24f247c69e0a_14.png "14.png")
- 创建SAP Hana数据源
WhaleTunnel可以可视化建立和管理数据源,比如SAP Hana数据源在配置一次之后,就可以被各种同步、数据开发调用。
![15.png](https://dev-media.amazoncloud.cn/b28b5d42f1024cf8a5d469cf70007fc6_15.png "15.png")
- 创建S3-Redshift数据源
![16.png](https://dev-media.amazoncloud.cn/889bcd9527254efb879e5d532e1d243c_16.png "16.png")
与Apache SeaTunnel所采用的JDBC数据加载方式不同,WhaleTunnel针对Redshift数据源与AWS进行了技术双向认证,采用自动Merge的方式加载数据,这样,单台8c机器的速度可以达到22w/s,同时支持CDC实时数据源写入,性能卓越。
| 窄表同步速率(6个字段,4000w行数据) | WT离线批量同步性能15w行/s | XXS全量同步性能:18w行/s |
|:---------------------------------------|--------------------------------|:------------------------------|
| | WT CDC同步初始化阶段性能9w行/s | XXS CDC同步初始化阶段:22w行/s |
| | WT CDC增量阶段:3w行/s | XXS CDC增量同步:无法同步 |
| 查看宽表同步速率(360个字段,800w行数据) | WT离线批量同步性能3260行/s | XXS离线批量同步3250行/s |
| | WT CDC同步初始化阶段3000行/s | XXS CDC同步初始化阶段3250行/s |
| | WT CDC同步增量同步阶段 800行/s | XXS CDC增量同步:无法同步 |
- 可视化勾选同步表格,自动类型映射与可视化转化
在配置了数据源之后,就把Redshift数据源拖拽进来了。选择目标数据源的操作很简单,直接勾选需要同步的SAP/Oracle/MangoDB等数据源就可以,在界面里还可以进行可视化的配置和修改,支持“模型推演”,在执行任务之前就可以发现数据源匹配、不一致等问题。
![17.png](https://dev-media.amazoncloud.cn/5c0d56b0f7e145488150de6ccec5f183_17.png "17.png,18.png")
![18.png](https://dev-media.amazoncloud.cn/283ce0feb309498c830a91b69ccaf703_18.png "18.png")
- 直接在Redshift中自动建表和类型转换
WhaleTunnel商业版本还增加了自动建表的功能,并支持自动进行类型转化,无需人工手工建表,可以配置目标端数据的处理策略,支持自定义建表规则。
![19.png](https://dev-media.amazoncloud.cn/c7d9154cceee4807bab215377b363fc2_19.png "19.png")
![20.png](https://dev-media.amazoncloud.cn/e5753879d80e4ed9baa8b9ec3b1f57f6_20.png "20.png")
- SAP RFC数据同步到Redshift
如果有SAP RFC数据,我们可以使用WhaleTunnel中整合的共工作流调度工具Apache DolphinScheduler,来调用RFC SDK先获取数据,写成一个file,然后再将file数据加载到Redshift当中,省去了原来数据从SAP Hana到Redshift的过程。
![21.png](https://dev-media.amazoncloud.cn/bcd5ee3d687546628dbfd4ff23977fef_21.png "21.png")
- 全面可视化监控数据同步过程,并根据不同情况报警
WhaleTunnel针对数据同步过程支持全面可视化监控,支持数据延迟报警、DDL变更报警等多种报警策略和钉钉、微信、Slack等多个报警渠道。
![22.png](https://dev-media.amazoncloud.cn/943ba9b6f0674d5cb1e16543cb92a1d3_22.png "22.png")
### AWS客户案例分析
#### 案例背景
客户是一家多元化的台资企业,总部位于上海。集团以食品饮料业务起家,经过多年的发展,已经拓展到医疗服务、餐饮连锁、农业、酒店和房地产等多个领域。近年来,集团的业绩持续增长,2020财年营收达到220亿元。
客户有大量业务数据存在SAP、Oracle、MySQL当中,每日数据达到100G+。原来客户采用的数据整合技术方案是使用Talend抽取SAP数据到S3,形成Hudi文件后,利用EMR处理进入Hive,再进入Redshift。
#### 痛点分析
然而在实际应用中,客户原有的数据整合方案遇到了一些问题,如数据链路过长、抽取速度慢等,具体包括:
* 从SAP到Redshift数据链路过长,采用多种技术消耗多种资源,且使用原有产品抽取Hana速度过慢
* 数据直接进入Redshift速度太慢,需要先变成文件再处理
* Talend使用比较复杂,不能支持Spark Controller,且只支持SAP Hana 6.2,对SAP Hana 7.3支持不好
#### 客户选择白鲸WhaleStudio原因
由于公司人员维护精力有限,客户决定对原有的数据整合方案做出改变,经过竞品对比和测试,最终采用了白鲸开源提供的WhaleStudio(含WhaleTunnel)+SQL的解决方案,更高效地解决了业务问题。
客户最终选择WhaleStudio有诸多因素:
* 经过POC验证,抽取Hana速度明显提升,不受制于工具本身,而是Hana库资源
* WhaleStudio界面简单操作,支持可视化开发,支持统一数据源管理与版本控制
* 采用WhaleStudio可以直接用SAP进入Redshift,再用WhaleStudio 在Redshift上直接SQL开发调试,而不用Hudi、Hive、S3、EMR等复杂开发,使得整体开发效率提升
最终,客户决定全面将Talend迁移至WhaleStudio,目前已经完成迁移并验证1个领域数据全链路,其它19个数据领域链路客户正在迁移进行中。
#### WhaleStudio解决方案
WhaleStudio的解决方案帮助客户解决了上面所述客户遇到的问题,提升了客户数据抽取的速度,并简化了开发流程。
下面来看一下新旧两套方案的对比,WhaleStudio的优势很明显:
- **原有方案:Redshift+Talend+Hudi+EMR+SQL**,即客户使用Talend抽取SAP数据到S3,形成Hudi文件后,利用EMR处理进入Hive,再进入Redshift。这个方案的优点是可以进行大对象(视频等)存储和复杂非结构化处理,但缺点也很突出,比如组件过多,不易于维护,要求开发人员水平高。
![23.png](https://dev-media.amazoncloud.cn/d142e6b8ab974ecdbfabfb5ee4fd1686_23.png "23.png")
而经过白鲸开源了解,实际上客户的业务数据以结构化数据为主,人员维护精力有限,使用WhaleStudio+SQL能更有效率地解决业务问题。
最终,**白鲸开源给出的解决方案是:Redshift+WhaleStudio+SQL**,即使用WhaleStudio提供的数据集成平台WhaleTunnel和数据调度平台WhaleScheduler,从SAP Hana来的数据,通过JDBC,在Redshift的ODS层直接写SQL,然后直接写DWD、DWA场景,这样开发起来就相当简单了。
![24.png](https://dev-media.amazoncloud.cn/d15a36b3ef9940fd9b2b920e9892b0d5_24.png "24.png")
#### 案例成效
![25.png](https://dev-media.amazoncloud.cn/1c93ed0cd86d415aa81c73fa780db828_25.png "25.png")
使用WhaleStudio提供的方案,客户从SAP Hana来的数据,以及自己的IDC数据和Oracle数据可以通过WhaleTunnel快速地加载到Redshift中,通过WhaleScheduler在Redshift中进行相关的SQL开发、IDE和CI/CD、调度和监控等,形成完整的DataOps流程。
### 结语
基于Apache SeaTunnel和WhaleTunnel,白鲸开源为企业提供了一个高效、可靠的数据整合解决方案。通过本文的技术介绍和案例分析,希望能够帮助更多企业优化其数据处理流程,提升数据整合效率。