中电信翼康济世数据中台基于Apache SeaTunnel构建数据集成平台经验分享
作者 | 中电信翼康工程师 代来
编辑 | Debra Chen
一. 引言
Apache SeaTunnel作为一个高性能、易用的数据集成框架,是快速落地数据集成平台的基石。本文将从数据中台战略背景、数据集成平台技术选型、降低Apache SeaTunnel使用门槛及未来展望几个方面,详细讲解我们是如何基于Apache SeaTunnel快速构建数据集成平台的。
二. 数据中台战略背景
随着医疗行业对数据驱动决策的需求不断增加,挖掘医疗数据要素价值,激发新质生产力潜能机遇迫在眉睫。中电信翼康通过自研的“数据中台”开展医疗健康数据要素全流程管理和一站式赋能,打造医疗健康数据要素运营底座,助力医疗数据的价值挖掘与AI模型应用。在此战略背景下,数据集成平台作为我们数据中台的“大动脉”,需要能够快速落地且能够满足中台复杂的数据集成场景需求。
三. 数据集成平台技术选型
3.1. 关键考虑因素
在对数据集成平台底层进行技术选型时,需要考虑以下几个关键因素:
- 性能:数据集成引擎需要具备高吞吐量和低延迟,能够高效处理海量数据。
- 扩展性:数据集成引擎应具有良好的扩展性,能够根据业务需求动态扩展处理能力。
- 易用性:数据集成平台应易于使用和维护,减少对专业技术人员的依赖。
- 生态支持:数据集成引擎应支持多种数据源和目标,具备良好的生态系统支持。
3.2. 选择Apache SeaTunnel的优势
目前,市场上主流的数据集成技术主有Sqoop、Datax、Kettle、Flink CDC、Canal、Airbyte等。Apache SeaTunnel具备以下优势,使其成为我们数据集成平台的理想选择:
性能
根据官方最新公布的数据来看,Apache SeaTunnel在相同测试场景下比Datax快40%-80%,比Airbyte快30倍,其具有无与伦比的性能优势。我们也在客户现场亲测了一下,8C32G服务器上做同数据库上jdbc-source到jdbc-sink的性能测试,我们的数据集成平台的速率平均比第三方平台快近两万条每秒。优秀的性能源自于SeaTunnel优秀的设计,以JDBC连接器为例,SeaTunnel使用了数据库连接复用、动态分片、而SeaTunnel的zeta引擎更是实现了动态线程共享技术。在完成数据同步的同时尽量减少资源的使用,提高效率。
部署方式
在我们的客户场景中,大多数的医院只能提供前端采集节点的物理机给我们部署采集服务,而平台是部署在中心端的,只有采集端到医院数据库网络是通的,中心端到前端采集节点网络是通的,不能夸端通信。只有少数客户所有的服务可以部署在一套环境中。这就要求我们的部署必须是非常灵活的。SeaTunnel既支持分布式部署也支持单机部署,其无中心化的设计确保系统的高可用机制和易扩展。其可让每个节点可以既是Master也可以同时是Worker,也可以让Master和Worker分开部署。前者适合中小规模部署,后者适合超大规模部署。
容错
SeaTunnel的容错也是非常优秀的。
从集群角度看,当集群某一节点宕机,其任务可以自动容错到其他集群节点。当我们开启集群的IMAP持久化之后,即使集群节点全部宕机,也可以通过持久化的数据在重启集群时自动恢复。这里需要注意的是当集群第一个节点启动后会加载持久化的IMAP数据,因此集群节点之间启动时间差不宜太长,否则可能会造成所有任务都打到第一个启动的节点上去。
从作业的角度看,SeaTunnel也拥有checkpoint机制,当作业因意外突然异常时,也能从checkpoint恢复从而保证昂贵的数据同步任务不用重新同步。此外,由于网络延迟、节点故障等原因,分布式系统中的数据可能具有一致性问题,SeaTunnel在相关连接器中也实现了二阶段提交,能够保证数据的一致性。
丰富生态
SeaTunnel已经支持100+种数据源,并且易于扩展和支持自己的生态。其支持整库同步、多表同步、断点续传。更支持自动建表,这种功能体现出SeaTunnel设计的用心,这个功能在平台侧易实现且于用户而言是非常友好的功能,这在同步的表非常多的时候尤其能体现出其优势。
集成引擎架构
SeaTunnel的EtLT的架构非常适合数据中台的场景,在数据中台场景中,90%的场景都是将数据从源端搬运到目标端,其中可能包含转换(Transform),但这个T是一个小写的t,其主要包括复制列、过滤列、切分字段等转换而不是join或者group by之类的操作。这在数据中台中非常常见,当数据进入数仓平台之后在数据开发阶段才有大T的需求。此外EtLT的设计可谓是ETL的升级版,在很多场景下其数据同步的速率是远远高于ETL架构的。
平台架构
如果我们不选择SeaTunnel作为数据集成引擎,那么我们的平台架构可能就是这样子:
这种架构的劣势就是,使用多数据集成引擎,维护成本高昂,另外其还需要flink的执行环境来完成实时同步任务。从快速落地数据集成平台角度来看不是很友好,需要深入研究多数据集成引擎。当我们采用Seatunnel,则数据集成平台的架构可以优化成下面这样子:
我们只需要研究Apache seatunnel,并基于此快速落地数据集成平台,如果有不满足需求的也可以基于其二次开发,开发运维成本都相对前者低很多。
四. 如何降低Apache SeaTunnel使用门槛
1. 友好的功能界面
为了降低使用门槛,可以提供一个可视化的配置界面,使用户通过图形化界面来配置数据集成任务,而无需编写复杂的配置文件。
同步任务配置映射关系,可以灵活的调整字段顺序并且支持自定义字段值,增加缺省字段,删除多余字段。
针对复杂sql进行数据关联查询
支持批任务周期性调度方式以满足定时全量或增量同步
支持全局参数设置
以上为我们产品功能的一些样例截图,整个产品的功能远不止如此,通过这些样例抛砖引玉,帮助用户如何快速落地数据集成平台起到一个引导作用。
2. 提供丰富的文档和示例
优秀的数据集成平台当然少不了丰富和优秀的文档,通过提供详细的使用文档和丰富的示例代码,帮助用户快速上手。包括如何安装、配置和调试,以及常见问题的解决方案。
主要文档包括环境要求、项目配置、配置文件详解、运行测试、常见问题解决方案等,以常见问题解决方案为例:
常见问题解决方案
数据源连接问题:
确保数据源地址、端口和认证信息正确无误。
检查网络连接和防火墙设置。
数据转换错误:
检查转换规则是否正确。
确保所有字段和类型都匹配。
性能问题:
调整Connector参数和其他配置以提高性能。
优化数据转换逻辑。
插件问题:
确保所有必要的插件都已安装并正确配置。
检查插件的版本兼容性。
3. 集成自动化部署工具
SeaTunnel的自动化部署和管理,进一步降低使用和维护的难度。实现了这种根据服务器地址信息一键部署sSeaTunnel服务的功能。
下面是实现了对于部署的seatunnel服务进行实时监控
4. 社区支持
在整个数据集成平台的开发及实施过程中,难免会遇到一些问题,有的问题社区已经有一部分经验了,例如SeaTunnel集群的容错和恢复等功能,社区都能积极的给予回答和帮助。此外,有些功能不能满足我们的实际业务需求,例如在湖仓一体的数据中台架构中,我们使用的Apache paimon作为数据湖,但社区的Paimon connector尚不能完全满足我们的业务需求,我们先后针对Paimon connector进行了BUG修复及增加了很多新Feature
- 支持cdc写paimon
- 支持paimon sink自动建表,自动建表支持指定partition key、primary key并且支持指定多分桶(大数据量写场景下可提高写入性能)
- 支持paimon的多表sink
- 支持指定格式写paimon(默认是orc,可指定parquet、avro格式)
- 解决date字段写入不正确的问题、支持timestmap(n)类型
- 支持kerberos认证及HA模式hdfs集群
- 支持Hive catalog
- 支持写入Sink表前前置类型转换校验
- 修复批写数据丢失问题
以上只是对社区贡献的缩影,我们对社区的贡献不止于此,既然选择了Apache SeaTunnel作为数据集成引擎,享受了社区带来的益处,当然作为回报我们也应该积极的贡献社区、反馈社区让大家一起越来越优秀。
五. 未来与展望
随着医疗行业对大数据的需求不断增长,Seatunnel 作为一种高效、灵活的数据集成工具,将在医疗信息化建设中发挥重要作用,特别是在数据集成和处理方面。随着医疗行业对数据驱动决策的需求不断增加,Seatunnel 的功能和特性能够很好地满足医疗大数据平台的需求。以下是 Seatunnel 在医疗行业的一些展望:
1. 多数据源集成
集成医院的电子病历系统、影像信息系统(PACS)、实验室信息系统(LIS)等,实现跨系统的数据共享。
2. 数据标准
支持HL7 FHIR(Fast Healthcare Interoperability Resources)等医疗行业标准,提高数据的标准化和互操作性。
3. 安全性和隐私保护
数据加密:采用加密技术保护数据安全,尤其是在传输过程中。
匿名化和脱敏:实现数据的匿名化和脱敏处理,保护患者隐私。
4. AI与机器学习集成
数据集成平台将引入更多的智能化特性,如智能推荐配置等,帮助用户更高效地进行数据集成和处理。
六. 总结
Apache SeaTunnel作为一个高效、灵活的数据集成平台,在数据中台战略中扮演着重要角色。通过本文的介绍,读者可以了解如何基于SeaTunnel快速搭建数据集成平台,并在实际应用中灵活运用。未来,随着技术的不断发展,SeaTunnel将继续在数据集成领域发挥重要作用,助力企业实现数据驱动的业务变革。
中电信翼康济世数据中台基于Apache SeaTunnel构建数据集成平台经验分享的更多相关文章
- 《基于Apache Kylin构建大数据分析平台》
Kyligence联合创始人兼CEO,Apache Kylin项目管理委员会主席(PMC Chair)韩卿 武汉市云升科技发展有限公司董事长,<智慧城市-大数据.物联网和云计算之应用>作者 ...
- 基于Apache Hudi构建数据湖的典型应用场景介绍
1. 传统数据湖存在的问题与挑战 传统数据湖解决方案中,常用Hive来构建T+1级别的数据仓库,通过HDFS存储实现海量数据的存储与水平扩容,通过Hive实现元数据的管理以及数据操作的SQL化.虽然能 ...
- 基于Apache Hudi 构建Serverless实时分析平台
NerdWallet 的使命是为生活中的所有财务决策提供清晰的信息. 这涵盖了一系列不同的主题:从选择合适的信用卡到管理您的支出,到找到最好的个人贷款,再到为您的抵押贷款再融资. 因此,NerdWal ...
- Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解
Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...
- 大数据实时处理-基于Spark的大数据实时处理及应用技术培训
随着互联网.移动互联网和物联网的发展,我们已经切实地迎来了一个大数据 的时代.大数据是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合,对大数据的分析已经成为一个非常重要且紧迫的 ...
- 基于 Apache Mahout 构建社会化推荐引擎
基于 Apache Mahout 构建社会化推荐引擎 http://www.ibm.com/developerworks/cn/views/java/libraryview.jsp 推荐引擎利用特殊的 ...
- Polaristech 刘洋:基于 OpenResty/Kong 构建边缘计算平台
2019 年 3 月 23 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·北京站,Polaristech 技术专家刘洋在活动上做了<基于 ...
- KLOOK客路旅行基于Apache Hudi的数据湖实践
1. 业务背景介绍 客路旅行(KLOOK)是一家专注于境外目的地旅游资源整合的在线旅行平台,提供景点门票.一日游.特色体验.当地交通与美食预订服务.覆盖全球100个国家及地区,支持12种语言和41种货 ...
- 基于Apache Hudi构建分析型数据湖
为了有机地发展业务,每个组织都在迅速采用分析. 在分析过程的帮助下,产品团队正在接收来自用户的反馈,并能够以更快的速度交付新功能. 通过分析提供的对用户的更深入了解,营销团队能够调整他们的活动以针对特 ...
- 基于 RocketMQ Connect 构建数据流转处理平台
本文作者:周波,阿里云智能高级开发工程师, Apache RocketMQ Committer . 01 从问题中来的RocketMQ Connect 在电商系统.金融系统及物流系统,我们经常可以看到 ...
随机推荐
- mongodb安装及启动配置文件,允许远程访问连接
windows安装https://www.runoob.com/mongodb/mongodb-window-install.html https://www.runoob.com/mongodb/m ...
- Controller-runtime模块
Controller-runtime框架 Controller-runtime是社区提供的用于开发Controller的框架,包含了各种已封装的代码库.Kubebuilder与Operator SDK ...
- 集成学习与随机森林(四)Boosting与Stacking
Boosting Boosting(原先称为hypothesis boosting),指的是能够将多个弱学习器结合在一起的任何集成方法.对于大部分boosting方法来说,它们常规的做法是:按顺序训练 ...
- 【进阶篇】Java 项目中对使用递归的理解分享
[进阶篇]Java 项目中对使用递归的理解分享 目录 [进阶篇]Java 项目中对使用递归的理解分享 前言 一.什么是递归 1.1基本概念 1.2优缺点 1.3与迭代的区别 二.实际案例 三.改进方案 ...
- T3/A40i支持Linux-5.10新内核啦,Docker、Qt、Python统统升级!
自2021年创龙科技推出全志国产化率100%的T3/A40i工业核心板后,不到两年时间已超过800家工业客户选择创龙科技T3/A40i平台.随着客户产品的不断升级与迭代,部分"能源电力&qu ...
- 树莓派开机自启动python程序
step1 添加程序到rc.local 添加到rc.local 里的py脚本文件将会在树莓派开机是自动运行,这种方式适合没有显示器,具体操作如下: sudo nano /etc/rc.local st ...
- Java 、C# Excel模板,数据一对多,主从表关系,导入到数据库
思路 单表导入的比较容易,但是有的时候,可能会出现,一对多数据导入的,这个情况怎么办呢?先理解上面的图,后台获取数据的时候,除了"风险防控措施"外,其他字段先分组,"黄色 ...
- [oeasy]python0010_怎么用命令行保存文件
编写 py 文件 回忆上次内容 上次 真的输出了 程序员的浪漫 Hello world! print函数 可以输出 字符串 但是 print这个词 别拼错 就连 大小写 也别能错 错了就改 也没事 ...
- [oeasy]python0075_删除变量_del_delete_variable
删除变量 回忆上次内容 上次我们研究了字节序 字节序有两种 符号 英文名称 中文名称 < little-endian 小字节序 > big-endian 大字节序 字节序 用来 明确 ...
- 网络基础 Modbus协议学习总结
协议简介 Modbus协议,首先从字面理解它包括Mod和Bus两部分,首先它是一种bus,即总线协议,总线就意味着有主机,有从机,这些设备在同一条总线上. Modbus支持单主机,多个从机,最多支持2 ...