一、项目介绍
Exchangis是微众银行大数据平台 WeDataSphere 与社区用户共同研发的的新版数据交换工具,支持异构数据源之间的结构化和非结构化数据传输同步。
Exchangis 抽象了一套统一的数据源和同步作业定义插件,允许用户快速接入新的数据源,并只需在数据库中简单配置即可在页面中使用。
基于插件化的框架设计,及计算中间件 Linkis ,Exchangis 可快速集成对接 Linkis 已集成的数据同步引擎,将 Exchangis 的同步作业转换成 Linkis 数据同步引擎的数据同步作业。
借助于 Linkis 计算中间件的连接、复用与简化能力,Exchangis 天生便具备了高并发、高可用、多租户隔离和资源管控的金融级数据同步能力。
二、核心特点
1. 轻量化的数据源管理
基于 Linkis DataSource,抽象了底层数据源在 Exchangis 作为一个同步作业的 Source 和 Sink 所必须的所有能力。只需简单配置即可完成一个数据源的创建。
特别数据源版本发布管理功能,支持历史版本数据源回滚,一键发布无需再次配置历史数据源。
2. 高稳定,快响应的数据同步任务执行
近实时任务管控
快速抓取传输任务日志以及传输速率等信息,对多任务包括CPU使用、内存使用、数据同步记录等各项指标进行监控展示,支持实时关闭任务;
任务高并发传输
多任务并发执行,并且支持复制子任务,实时展示每个任务的状态,多租户执行功能有效避免执行过程中任务彼此影响进行;
任务状态自检
监控长时间运行的任务和状态异常任务,中止任务并及时释放占用的资源。
3. 与DSS工作流打通,一站式大数据开发的门户
实现DSS AppConn包括一级 SSO 规范,二级组织结构规范,三级开发流程规范在内的三级规范;
作为DSS工作流的数据交换节点,是整个工作流链路中的门户流程,为后续的工作流节点运行提供稳固的数据基础;
4. 支持多种导数引擎
支持Sqoop和DataX引擎进行多种异构数据源之间的导数
三、架构设计
四、使用说明
一、登录Exchangis1.0
Exchangis1.0目前作为DSS 数据交换组件 的一部分,通过登录DSS的方式在组件列表中免密进入。所以,在使用Exchangis1.0之前,请对DSS,Exchangis1.0,Linkis等相关组件进行基本部署,保证组件功能可用
1、登录DSS
系统默认通过Linkis的Linux部署用户登录DSS,如使用hadoop用户部署Linkis和DSS,可以直接通过账号密码:hadoop/hadoop登录。首先根据DSS的前端部署地址登录网页,接着输入账号密码:hadoop/hadoop进入DSS
2、进入Exchangis
Exchangis通过DSS来进入,在DSS页面中一词点击: 首页->DSS应用组件->数据交换->进入Exchangis
二、数据源管理
该模块可以对数据源进行配置和管理,为进行数据同步作业的起始步骤,目前Exchangis1.0支持对mysql和hive直接数据的互相导入。数据源主要功能如下:
创建,编辑,删除数据源;
根据类型和名称搜索数据源,支持对数据源快速定位;
数据源连接测试操作;
历史数据源版本发布及记录。
1、创建数据源
点击 创建数据源 ,选择自己想要创建的数据源,当前支持MySQL和Hive两种数据源的创建。
选择创建MySQL数据源,填写配置参数,其中,带星号的为必填项,务必保证连接MySQL数据库的Host,端口号,用户名和密码连接正确。 连接参数 为Json格式,用于设置MySQL的配置信息,填写完能够进行 测试连接 。
对于Hive数据源的配置,与MySQL不太相同,暂时不提供用户自行在界面进行集群参数配置的功能,对于集群环境,由后端统一配置完成,用户只需要选择需要的集群环境即可,点击确定即可保存。
2、数据源功能
数据源管理模块提供对配置数据源版本的 发布 功能,只有经过发布的数据源才能在配置导数任务的时候被使用,否则会提示不可用,只要再次编辑的数据源就会被视为一个新的版本,最新的版本在第一行。在版本列表中可以 查看 所有历史数据源版本的配置,您可在随时需要回滚时进行参考。
数据源管理的 过期 功能,用于提示此数据源已经逐渐要被替换,请及时更换使用该数据源的任务配置,避免直接删除数据源造成所配置的执行任务失效。
三、项目管理
1、项目列表
该模块可以创建项目,在实际的导数任务中,一个项目下可以有多个导数任务,不同的项目之间互不影响,对于普通用户而言,可以操作的只有自己创建的项目。在项目管理首页,可以对项目进行管理,包括 创建 , 修改 和 删除 以及 查询搜索 ,修改和删除只能对在Exchangis中创建的项目操作。
2、任务列表
进入项目,可以看到该项目下的任务列表。
1)任务管理
任务列表中可以对创建的Job数据同步任务进行管理,与项目类似,包括 创建 , 修改 、 删除 和 搜索 。
点击 创建任务 ,能够选择任务类型和执行引擎, 目前仅支持离线任务和SQOOP执行引擎 ,未来将会支持流式任务和DataX引擎等。
2)子任务管理
在任务中点击 添加子任务 ,可以添加多个子任务,支持对子任务的 修改、复制和删除, 同时也支持 任务支持复制 ,复制的子任务包含其原子任务配置的所有信息。
3)数据同步任务配置和执行
进行该步骤前,需要预先在 数据源管理模块 添加好数据源以供选择,并进行 发布 ,当前Exchangis版本仅支持 MySQL数据源和Hive数据源 。
数据同步任务配置和执行是Exchangis1.0.0的核心功能,基本配置数据同步流程为: 添加子任务 -> 选择Source数据源和Sink数据源 -> 字段映射配置 -> 过程控制 -> 任务配置 -> 保存 -> 执行 。
任务执行主要功能包括:
子任务卡片的添加,复制和删除;
实现对两种不同类型数据源之间数据的导入导出;
来源数据源和目的地数据源的库表选择;
数据源字段映射;
作业最大并发数和作业最大内存配置;
数据同步任务执行情况查看;
每个主任务和各个子任务的日志查看;
任务执行历史状态查看;
执行任务kill操作。
数据源选择和配置
对于新创建的数据同步子任务,要进行数据源库表的选择,选择的数据源为在 数据源模块 中已发布的数据源。数据源选择支持搜索,搜索方式为先搜索库,再搜索表。
MySQL为目的地数据源时,支持 插入 和 更新 两种写入方式;为源数据源时,支持 WHERE条件语句查询 。
Hive为目的地数据源时,支持分区信息配置,写入方式为 追加数据 和 覆盖 两种;为源数据源时,支持 分区信息配置 。
数据源字段映射
当配置完成数据源库表信息时,Exchangis1.0.0会自动进行Source数据源和Sink数据源的字段映射,并且可以自行选择想要映射的字段,也可以用来检查我们的字段是否匹配;当Hive为Sink数据源时,其映射字段不可修改。
过程控制
任务执行提供 作业最大并行数 配置(默认为1个),以及 作业最大内存 配置(默认为1024Mb),可根据实际需要进行更改。
4)作业执行
Exchangis1.0支持多个子任务同时执行,任务配置完成后,点击执行,即开始数据同步任务,界面下方会弹出工作台,工作台主要包含三个部分功能: 运行情况、实时日志和执行历史 。
运行情况 能够查看当前数据同步任务整体进度,包含task成功和失败的数量等,以及点击task的名字,能够展示每个task的各项运行指标信息。
实时日志 主要展示的内容包含两大类,一是整个导数job的日志,能够输出每个task的状态日志,例如task是否被调度,是否运行中等;二是每个task的日志,输出的是各自相应的导数日志。在实时日志中能够根据关键字和忽略字进行日志筛选,并别提供获取最后n行日志功能;还可以对Error、Warning和Info不同类型的日志进行筛选展示,只需点击相应的按钮即可。
执行历史 能够展示该导数任务的历史执行信息,对历史执行过程提供初步的概览,如果想进一步查看详细历史信息,点击任务名称,即可跳转到同步历史界面进行查看。
数据同步任务执行需指定执行用户,默认为登录用户,具体情况需根据实际数据源的配置去调整。
四、同步历史
该模块可以查看到历史执行的所有数据同步任务,每个用户只能查看自己创建的任务,不同用户之间互相隔离。
主要功能如下:
根据查询条件查找所需的历史任务信息;
对于非终态的任务,提供终止任务的功能,能够kill掉非终态的任务;
查看每个任务的运行情况和实时日志;
查看每个同步任务的更细节配置信息和更新时间等。
五、Exchangis Appconn使用
目前,Exchangis1.0支持以Appconn形式与DSS对接, 在DSS端 ,能够通过DSS的 应用开发->项目列表 ,以工作流编排的模式创建数据交换 sqoop工作流节点 ,在这里,能够进行数据同步任务的配置和执行。在DSS创建的Exchangis项目和数据交换任务,会同步在Exchangis中创建。
Exchangis Appconn主要支持以下功能:
项目操作 是对DSS项目的创建,删除,修改操作会同步影响Exchangis端的项目;
工作流节点基本操作 是DSS编排器中对sqoop工作流节点创建,删除,修改操作会同步到Exchangis端的任务;
工作流导数操作 支持sqoop工作流节点配置执行数据同步任务;
工作流发布操作 支持sqoop工作流节点发布至WTSS进行任务调度。
1、项目操作
该模块能够对DSS项目进行创建、修改和删除,在DSS端的操作会同步到Exchangis端,这里以在DSS创建的项目为例,在exchangis appconn操作的流程为: 点击创建项目->填写项目信息->点击确认->进入Exchangis端->点击项目管理 ,即可查看到同步创建的项目,如下图所示:
创建完成后,会在Exchangis端看到同步过来的项目
2、工作流节点基本操作
工作流节点能够进行创建、修改、删除和进行依赖选择,可以进行节点之间的关联,在DSS端的操作会同步到Exchangis端。这里以对sqoop工作流节点的创建操作为例,在exchangis appconn对项目的操作流程为: 创建一条工作流->从左侧插件栏拖动sqoop节点至右侧画布->点击确认创建sqoop节点任务->进入exchangis端查看同步创建的任务 ,如下图所示,对sqoop节点任务的删除和修改同理。
可以看到导数任务也同步到Exchangis中了
3、工作流导数操作
双击Sqoop节点进行工作流节点进行操作,支持sqoop工作流节点配置与执行数据同步任务。以工作流节点形式进行导数任务是Exchangis Appconn的核心功能, 每一个sqoop节点代表一个数据同步任务 ,具体操作流程如下: 双击sqoop节点->弹出任务配置界面->配置任务信息->执行任务 ,如下图所示:
这里有两种执行方式,一种是在弹出的任务配置界面点击执行按钮进行执行;另一种是点击DSS编排器的 执行按钮 或者是 选中执行按钮 进行执行, 点击执行 会对该工作流中的所有节点执行, 点击选中执行 仅会执行选中的工作流节点,不会执行全部节点。
注:在DSS的sqoop节点中执行的数据同步任务,均可在Exchangis端查看相关信息。
4、工作流发布操作
工作流任务的 发布 功能,支持sqoop工作流节点发布至WTSS进行任务调度。在 开发中心 创建和配置的数据交换任务信息,通过发布,发布到WTSS,能够在WTSS中进行任务调度。
5、生产中心
点击命名空间的下拉框,切换到 生产中心 ,可以看到所有项目的工作流的日志,可以查看每个工作流调度的状态
源代码下载地址:
https://gitee.com/WeBank/Exchangis
看到最后,如果这个项目对你有用,一定要给我点个「 在看和赞 」。