Exchangis,助力海量数据跨多种数据源轻松传递共享Exchangis是微众银行开源的数据交换平台,用于数据在不同计算存储中快速传递,并解决数据交换过程中面临的序列化反序列化耗时长、传输限流、数据读写权限管控、组件版本兼容性等问题。设计上采取微服务架构,上下层服务松耦合,易于进行定制扩展开发。 Exchangis Github地址 (https://github.com/WeBankFinTech/Exchangis](https://github.com/WeBankFinTech/Exchangis)
一、Exchangis是什么
Exchangis是一个数据交换系统,便捷且安全地进行数据交换流程是其主要职责。它提供创建和管理数据交换任务的功能,目的是以类似任务总线的方式,满足现有的同构或者异构数据源之间数据传输、管理的需求。Exchangis将数据交换中涉及的数据源抽象化,可以随时更新和修正数据源连接,数据交换任务的执行流程也被拆分成几大部分,对任务有更细粒度的管理。Exchangis底层使用的执行引擎具有可替换性,目前主要使用的执行引擎是基于阿里DataX框架二次开发后的成果,支持以记录或者二进制两种方式进行数据传输。
二、为什么需要Exchangis
随着数据利用率的提高和数据共享行为变得频繁,对于大数据平台应用开发来说,如何进行数据交换是每个平台组件都绕不过去的问题。目前大数据平台应用开发的痛点围绕在如下五点:
1. 随着大数据平台数据来源的增多,以及大数据集群本身之间的隔离,数据彼此之间缺少稳定安全的传输交换通道。
2. 不同业务数据的存储方式不一样,缺少统一标准的数据交换协议。
3. 数据所处的网络环境不一样,没有便捷的平台管理工具。
4. 数据通常对应有不同的数据属主和用户权限,不同用户之间的数据交换方向不可控。
5. 缺少便捷的数据交换操作入口,在配置自动化,报表图形化方面都有所欠缺。
可以说Exchangis的设计就是为了解决如上的痛点,作为一个平台系统,它针对数据交换的业务场景抽象出了一套统一的数据来源到目的的元数据映射结构,极大降低了用户使用数据交换的学习和使用成本,使数据在不同存储系统、不同存储格式之间的流转,变得更加的简单和易用,同时结合了数据权限管理的功能,增强用户对数据传输流向的把控和监管能力。
三、Exchangis的技术架构
Exchangis的设计理念是将平台的相关特性在高层抽象化为统一入口,例如任务作业管理,执行调度,权限管控等,而在底层方面(特指底层传输引擎)则采用多架构多实现的形式(例DataX等传输框架),不同架构之间彼此隔离,可以选择在旧传输架构上合理新增新特性,也可以选择引入新传输架构。而对于用户来说,入口是稳定且统一的。这使得Exchangis在特性拓展上有一定的灵活性。
* WEB/GATEWAY Container
界面和网关服务容器,用于各个服务容器之间的鉴权,外部请求的鉴权和与外部鉴权服务器的交互,维护着整个平台的路由链路。
* SERVICE Container
管理着多组和用户使用相关的API接口,是用户创建配置数据源,配置执行数据交换任务等业务操作的入口
* EXECUTOR Container
实际执行数据交换任务的容器,可以对接多种执行引擎,引擎之间可以自由切换,同时还维护任务作业的多种监听线程,监听作业日志、是否超时和作业资源分配
四、Exchangis核心特征
* 较为完善的数据源管理用户可以分别维护自己的数据源,通过绑定项目的方式共享自己的数据源,同时可以设置数据源的对外权限,控制数据的流入和流出。
* 多传输引擎支持传输底层可以横向扩展,目前聚合了离线批量传输引擎DataX和大数据批量导数引擎Sqoop,对两者功能进行了整合,还可以继续做动态扩充。
* 多引擎服务管理基于Spring Cloud的特性,可以动态扩充系统的某项服务,系统会接收这些服务上报的机器信息,调整调度传输任务的负载均衡策略,同时提供统一的服务管理界面,允许管理员对这些服务进行创建系统用户等基本的机器底层操作。
* 支持近实时的任务管控可以快速地抓取传输任务的日志以及传输速率等信息,可以实时地关闭正在运行的任务,并根据当下网络情况对单个运行中任务进行动态限流处理。
* 任务状态自检流程系统会周期性地去捕捉长时间运行的任务和排队等待的任务,检验任务状态是否异常,对异常的任务及时释放占用的资源并收集告警信息发出。
* 支持无结构化数据传输对底层批量传输引擎做架构改造,单独构建二进制流快捷通道,适用于某些无数据转换的纯数据同步的需求。
五、Exchangis和WeDataSphere
WeDataSphere是一套一站式、金融级、开源开放大数据平台套件,已在国内最大线上银行WeBank,经过了数年海量严苛金融业务场景的打磨和验证,表现卓越。
*更多关于WeDataSphere的介绍,请访问:[https://github.com/WeBankFinTech/WeDataSphereExchangis](https://github.com/WeBankFinTech/WeDataSphereExchangis)*
作为WeDataSphere的数据交换组件,负责各个工具组件与外部环境之间的数据传递工作,相对其他WeDataSphere组件,Exchangis以轻量级少依赖为设计出发点,目前还暂时处理独立状态,但部分功能例如数据源管理,已整合进已开源的Linkis组件中,后续Exchangis也将作为WeDataSphere Studio中的节点被使用。
六、Exchangis的前景规划
Exchangis数据交换系统在开源版本上后续会同步做两方面的提升,一方面是自身系统架构的优化改造,支持作业拆分调度,以分布式的形式执行子作业,充分利用集群每个传输节点的资源,并逐步开放支持的数据类型,接入更多的执行引擎;对于现有引擎例如DataX,则是会继续开放一读多写,断点续传等二次开发后的新特性。另一方面是和WeDataSphere社区其他开源组件的整合, Exchangis会将其数据源模块统一集成到Linkis组件中,而底层的引擎部分也会逐步做成Linkis的Engine引擎,会和Linkis做同步的适配。而对于DSS(DataSphere Studio),Exchangis则会以插件化的方式嵌入到其中,作为应用数据开发的第三方节点存在。
七、总结
Exchangis数据交换系统,提供了一个通用化的平台,整合并增强了现有的传输交换引擎功能,为后续的改进优化提供了可能。由于篇幅的限制,本文就不再多论述更多的设计点和优化点,期待有更多的开源社区力量,帮助和完善Exchangis的设计,推动其更进一步的成长。
WeDataSphere,BIG DATA MADE EASY.用心做一个有温度的开源社区~GitHub:[WeDataSphere](https://github.com/WeBankFinTech/WeDataSphere), 如有任何问题,欢迎添加小助手wpeace0916进一步交流。
网友评论