Exchangis是微众银行开源的数据交换平台,用于数据在不同计算存储中快速传递,并解决数据交换过程中面临的序列化反序列化耗时长、传输限流、数据读写权限管控、组件版本兼容性等问题。设计上采取微服务架构,上下层服务松耦合,易于进行定制扩展开发。 Exchangis Github地址: https://github.com/WeBankFinTech/Exchangis
Exchangis是一个数据交换系统,便捷且安全地进行数据交换流程是其主要职责。它提供创建和管理数据交换任务的功能,目的是以类似任务总线的方式,满足现有的同构或者异构数据源之间数据传输、管理的需求。Exchangis将数据交换中涉及的数据源抽象化,可以随时更新和修正数据源连接,数据交换任务的执行流程也被拆分成几大部分,对任务有更细粒度的管理。
Exchangis底层使用的执行引擎具有可替换性,目前主要使用的执行引擎是基于阿里DataX框架二次开发后的成果,支持以记录或者二进制两种方式进行数据传输。
随着数据利用率的提高和数据共享行为变得频繁,对于大数据平台应用开发来说,如何进行数据交换是每个平台组件都绕不过去的问题。目前大数据平台应用开发的痛点围绕在如下五点:
1. 随着大数据平台数据来源的增多,以及大数据集群本身之间的隔离,数据彼此之间缺少稳定安全的传输交换通道。
2. 不同业务数据的存储方式不一样,缺少统一标准的数据交换协议。
3. 数据所处的网络环境不一样,没有便捷的平台管理工具。
4. 数据通常对应有不同的数据属主和用户权限,不同用户之间的数据交换方向不可控。
5. 缺少便捷的数据交换操作入口,在配置自动化,报表图形化方面都有所欠缺。
可以说Exchangis的设计就是为了解决如上的痛点,作为一个平台系统,它针对数据交换的业务场景抽象出了一套统一的数据来源到目的的元数据映射结构,极大降低了用户使用数据交换的学习和使用成本,使数据在不同存储系统、不同存储格式之间的流转,变得更加的简单和易用,同时结合了数据权限管理的功能,增强用户对数据传输流向的把控和监管能力。
Exchangis的设计理念是将平台的相关特性在高层抽象化为统一入口,例如任务作业管理,执行调度,权限管控等,而在底层方面(特指底层传输引擎)则采用多架构多实现的形式(例DataX等传输框架),不同架构之间彼此隔离,可以选择在旧传输架构上合理新增新特性,也可以选择引入新传输架构。而对于用户来说,入口是稳定且统一的。这使得Exchangis在特性拓展上有一定的灵活性。
WeDataSphere是一套一站式、金融级、开源开放大数据平台套件,已在国内最大线上银行WeBank,经过了数年海量严苛金融业务场景的打磨和验证,表现卓越。
更多关于WeDataSphere的介绍,请访问: https://github.com/WeBankFinTech/WeDataSphereExchangis
作为WeDataSphere的数据交换组件,负责各个工具组件与外部环境之间的数据传递工作,相对其他WeDataSphere组件,Exchangis以轻量级少依赖为设计出发点,目前还暂时处理独立状态,但部分功能例如数据源管理,已整合进已开源的Linkis组件中,后续Exchangis也将作为WeDataSphere Studio中的节点被使用。
Exchangis数据交换系统在开源版本上后续会同步做两方面的提升,一方面是自身系统架构的优化改造,支持作业拆分调度,以分布式的形式执行子作业,充分利用集群每个传输节点的资源,并逐步开放支持的数据类型,接入更多的执行引擎;对于现有引擎例如DataX,则是会继续开放一读多写,断点续传等二次开发后的新特性。
另一方面是和WeDataSphere社区其他开源组件的整合, Exchangis会将其数据源模块统一集成到Linkis组件中,而底层的引擎部分也会逐步做成Linkis的Engine引擎,会和Linkis做同步的适配。而对于DSS(DataSphere Studio),Exchangis则会以插件化的方式嵌入到其中,作为应用数据开发的第三方节点存在。
Exchangis数据交换系统,提供了一个通用化的平台,整合并增强了现有的传输交换引擎功能,为后续的改进优化提供了可能。由于篇幅的限制,本文就不再多论述更多的设计点和优化点,期待有更多的开源社区力量,帮助和完善Exchangis的设计,推动其更进一步的成长。
领取专属 10元无门槛券
私享最新 技术干货