免费活动:声网/伴鱼/新东方技术大咖邀您参加实时音视频技术专场 了解详情
写点什么

微众开源数据交换平台 Exchangis,可跨多数据源实现传递共享

2020 年 6 月 11 日

微众开源数据交换平台Exchangis,可跨多数据源实现传递共享

Exchangis 是微众银行开源的数据交换平台,用于数据在不同计算存储中快速传递,并解决数据交换过程中面临的序列化反序列化耗时长、传输限流、数据读写权限管控、组件版本兼容性等问题。设计上采取微服务架构,上下层服务松耦合,易于进行定制扩展开发。

Exchangis Github 地址:

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


作为 WeDataSphere 的数据交换组件,负责各个工具组件与外部环境之间的数据传递工作,相对其他 WeDataSphere 组件,Exchangis 以轻量级少依赖为设计出发点,目前还暂时处理独立状态,但部分功能例如数据源管理,已整合进已开源的 Linkis 组件中,后续 Exchangis 也将作为 WeDataSphere Studio 中的节点被使用。


六、Exchangis 的前景规划

Exchangis 数据交换系统在开源版本上后续会同步做两方面的提升,一方面是自身系统架构的优化改造,支持作业拆分调度,以分布式的形式执行子作业,充分利用集群每个传输节点的资源,并逐步开放支持的数据类型,接入更多的执行引擎;对于现有引擎例如 DataX,则是会继续开放一读多写,断点续传等二次开发后的新特性。


另一方面是和 WeDataSphere 社区其他开源组件的整合, Exchangis 会将其数据源模块统一集成到 Linkis 组件中,而底层的引擎部分也会逐步做成 Linkis 的 Engine 引擎,会和 Linkis 做同步的适配。而对于 DSS(DataSphere Studio),Exchangis 则会以插件化的方式嵌入到其中,作为应用数据开发的第三方节点存在。



七、总结

Exchangis 数据交换系统,提供了一个通用化的平台,整合并增强了现有的传输交换引擎功能,为后续的改进优化提供了可能。由于篇幅的限制,本文就不再多论述更多的设计点和优化点,期待有更多的开源社区力量,帮助和完善 Exchangis 的设计,推动其更进一步的成长。


2020 年 6 月 11 日 11:162037
用户头像
陈思 InfoQ编辑

发布了 575 篇内容, 共 204.2 次阅读, 收获喜欢 1180 次。

关注

评论 3 条评论

发布
用户头像
1.文章里说的数据交换是指查询,还是增删改查都支持?2.如果在数据交互时需要对数据按照业务逻辑进行加工,是需要定制开发还是通过配置呢?
2020 年 06 月 11 日 12:11
回复
数据交换是专门用于多个数据源直接的数据交换用的,如果是对数据进行增删改查,或者是清洗加工,可以使用DataSphere Studio,DataSphere Studio作为一站式数据应用开发管理门户,可以做到从数据交换、脱敏清洗、分析挖掘、质量检测、可视化展现、定时调度到数据输出应用等,数据应用开发全流程场景需求,感兴趣请戳:https://github.com/WeBankFinTech/DataSphereStudio/blob/master/README-ZH.md

可以加wpeace0916微信进行社区交流
展开
2020 年 06 月 11 日 16:06
回复
多个数据源直接 _----->多个数据源之间
2020 年 06 月 11 日 16:07
回复
没有更多了
发现更多内容

邀请领好礼!米家显示器挂灯、雷蛇烈焰神虫送给你!

Obsuite

Web 安全之 CSRF

架构精进之路

Web 安全 3月日更

融云聊天室属性 kv

融云 RongCloud

IM

配置融云SDK的自签证书

融云 RongCloud

sdk

PBAC相对于传统ABAC的优势

龙归科技

IT 架构师 权限 ABAC PBAC

第八章作业

Kasn

产品经理 产品经理训练

小树量化交易机器人系统开发策略

薇電13O25249123

数字货币

php 实现单链表以及链表反转等操作

一个大红包

3月日更

2万字系统总结,带你实现 Linux 命令自由?

比伯

Java 编程 架构 面试 程序人生

HECO火币生态链挖矿系统开发搭建技术

薇電13242772558

数字货币 区块链生态

融云IMKit 动态删除或添加plugin 的实现

融云 RongCloud

IM

第八章学习总结

Kasn

产品经理 产品经理训练

Redis 在项目中合理使用经验总结

Java小咖秀

redis

Redis不是一直号称单线程效率也很高吗,为什么又采用多线程了?

云流

数据库 redis 架构

(28DW-S8-Day24) 重新定义流程

mtfelix

28天写作

学习感悟

shun123456789

在融云 IMkit 会话界面基础上添加消息已读未读

融云 RongCloud

IM

Web3.0时代到来 imToken借助区块链帮更多人完成价值存储和转移

CECBC区块链专委会

区块链

融云 ConversationListFragment 会话列表添加头部布局

融云 RongCloud

sdk

关于融云聊天室KV 值的正确使用

融云 RongCloud

即时通讯

融云如何更换用户信息

融云 RongCloud

即时通讯

教你如何在Centos配置Oracle客户端运行时

happlyfox

28天写作 3月日更

Wireshark 数据包分析学习笔记Day12

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

区块链助飞机加油和支付过程更透明高效

CECBC区块链专委会

区块链

弱网测试工具

Geek_6370d5

技术实践 | 网易云信 QUIC 加速服务架构与实践

网易云信

架构 音视频

寻找被遗忘的勇气(十五)

Changing Lin

3月日更

干货 | 比特币就是时钟

CECBC区块链专委会

比特币 时间同步

「Linux」各目录详解

我是程序员小贱

面试 3月日更

openpyxl 对Excel的基础操作

IT蜗壳-Tango

办公自动化 3月日更 IT蜗壳教学

互联网信贷风险与大数据 催收管理

张老蔫

28天写作

边缘计算隔离技术的挑战与实践

边缘计算隔离技术的挑战与实践

微众开源数据交换平台Exchangis,可跨多数据源实现传递共享-InfoQ