一种分布式数据源异构同步的方法技术

技术编号:30097680 阅读:32 留言:0更新日期:2021-09-18 09:01
本发明专利技术公开了一种分布式数据源异构同步平台及同步方法,该平台包含:前端和服务端;其中,前端用于提交数据源和显示数据源同步结果;服务端用于接收前端提交的数据源,并完成数据源同步请求,并将同步结果传送给前端;前端和服务端之间采用WebSocket技术进行通信;前端包含:react

【技术实现步骤摘要】
一种分布式数据源异构同步的方法


[0001]本专利技术申请为申请日2018年09月13日,申请号为:201811066833.2,名称为“一种分布式数据源异构同步平台及同步方法”的专利技术专利申请的分案申请。本专利技术属于计算机领域,具体涉及一种分布式数据源异构同步平台及同步方法。

技术介绍

[0002]随着现代电商技术、大数据分析和人工智能技术的高速发展,对大量的、类型各异的信息数据进行整合,实现信息共享和内部信息一体化,已变得越来越重要。当前各个企业的信息化发展大都存在异构数据源难以同步的问题。一般来说,完成特定功能的子模块以企业信息系统为中心,各自封闭,扩展性和交互性较差;各类信息系统相互独立,无法利用充分利用不同数据源之间的优点进行数据的整合;本专利技术就是针对当前企业中存在的项目数据源异构问题,研究实现离线的分布式异构数据源同步的方法。
[0003]目前,大多数的数据交换和共享服务并不成熟,做的比较好的是阿里巴巴的开源框架Datax,它现在已经支持市面上使用的大多数常用的数据源,并且支持在异构的数据库或是文件系统之间进行高速的交换数据,提供了统一的接口与不同的插件进行交互,插件仅需实现对数据处理系统的访问,但是其难以独立部署,运行较复杂。
[0004]而对于现阶段的分布式异构数据源同步方案,只能支持少数的数据源,而对于Elasticsearch、Redis等数据源基本不予支持,同时它们也无法对任务过程进行随时暂停的控制。

技术实现思路

[0005]本专利技术的目的是提供一种分布式数据源异构同步平台及同步方法,解决了现有服务架构对于多异构数据源之间的同步难以实现的问题,能够提供一个安全的、通用的平台,且平台中各个微服务之间是松耦合的,可被独立部署,且可以插件化的管理。
[0006]为了达到上述目的,本专利技术提供了一种分布式数据源异构同步平台,该平台包含:前端和服务端;其中,所述前端用于提交数据源和显示数据源同步结果;所述服务端用于接收所述前端提交的数据源,并完成数据源同步请求,并将同步结果传送给所述的前端;所述的前端和服务端之间采用WebSocket技术进行通信;所述的前端包含:react

admin

master前端独立模块,该前端独立模块采用了react+redux+ruby+webpack的前端框架,其包含:包含创建同步任务子模块、运行状态子模块和历史任务信息子模块;所述的创建同步任务子模块用于创建同步任务;所述的运行状态子模块用于查看当前同步任务的运行状态;所述的历史任务信息子模块用于查看历史任务的信息;所述的服务端包含:data

transform

api接口模块、data

transform

server服务模块和datax

all服务插件模块。
[0007]其中,所述的data

transform

api接口模块用于抽象出微服务需要提供的RESTful API接口,并定义服务端需要接收的信息对象的实体类;该data

transform

api接口模块为微服务提供入口,所述微服务通过该接口模块进行相关信息的传递和服务请求的
响应。
[0008]其中,所述data

transform

server服务模块用于实现关系型数据源Mysql和分布式数据源Hbase全量导入Elasticsearch全文搜索引擎的功能,以及异构数据源之间的数据类型的转换,并结合外部接口进行异构数据源同步服务;该data

transform

server服务模块包含:分布式数据源配置中心、任务调度线程池、文件处理模块、数据批处理器、缓存池和任务消息处理线程池。所述的分布式数据源配置中心用于为不同的分布式数据库集群设置别名,并为该集群创建数据源同步处理器,根据数据源的具体类型创建客户端和连接,新建同步任务,并将该任务放入线程池中等待调度;所述的任务调度线程池用于存放等待执行的数据同步任务,根据并行任务调度算法选择合适的任务进行全量或批量同步,并控制任务的实行,包括启动、暂停、停止和恢复;所述的文件处理模块负责用于将数据表中的数据转换成SQL文件,然后对数据文件进行分页,实现负载均衡;所述的数据批处理器负责批量用于进行数据的导入和导出,其包含:HBaseETLController和MySqlETLController两个控制器,这两个控制器是关系型数据源Mysql和分布式数据源Hbase的全量导入导出任务的控制器,实现所述data

transform

api接口模块提供的可供外部调用的控制和数据查询的接口;所述的缓存池用于保存任务的数据信息,进行全量同步时,任务进度可控,当需要暂停任务时,更改缓存池中的任务信息状态值;所述的任务消息处理线程池是利用WebSocket技术在所述的客户端和服务端之间随意传递消息队列中的数据信息。
[0009]其中,datax

all服务插件模块用于开发Elasticsearch的读写插件和引用的外部接口,主要是在平台中集成了DataX开源框架,对插件进行插件化的管理,并进行任务信息的跟踪控制、流量控制、负载均衡控制和解决异构数据源中数据类型不匹配的问题。
[0010]优选地,所述的react

admin

master前端独立模块包含:创建同步任务子模块、运行状态子模块和信息查询子模块。
[0011]其中,所述的创建同步任务子模块用于接受所述前端的用户界面提交的任务配置信息,并根据这些配置信息调用所述的data

transform

api接口模块中的任务管理接口以创建任务。
[0012]其中,所述的运行状态子模块接受所述前端的用户请求,调用所述的data

transform

api接口模块中的任务控制接口,以显示正在运行的作业状态,和显示任务的进度条,若为全量作业,则可控制任务的状态,并对其进行暂停、重启的操作。
[0013]其中,所述的信息查询子模块与所述前端的用户界面连接,通过调用所述的data

transform

api接口模块中的任务查询接口,查看历史任务,并判断当前使用的各个数据源是否同步。
[0014]优选地,所述的data

transform

api接口模块包含:为不同数据源设计的不同的插件所定义的内部接口,该内部接口用于调用对应的插件;该内部接口包含:核心HE接口、核心ME接口、核心PAUSE接口、核心STOP接口、统一插件接口和历史任务接口。
[0015]其中,所述核心H本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据源异构同步的方法,其特征在于,该方法包含:(1)前端数据处理:创建任务需要填写的配置信息,判断并选择任务类型,任务类型的业务包含:全量和批量,根据选择传递参数调用服务接口;(2)通过分布式数据源配置中心给不同的分布式数据库集群设置别名,每个别名都代表一个完整的集群或单节点数据配置环境,为每个集群找到匹配的配置信息,并随机生成每个任务对应的key;若存在匹配的配置信息,则创建数据源同步处理器,新建并缓存任务信息,根据数据源的具体信息创建客户端和连接,并放入线程池中进行等待调度;若不存在匹配的配置信息,则将任务信息存入数据库中;(3)开始任务,通过数据批处理器进行数据处理,包含两种模式:全量同步数据和批量同步数据;当存在错误或任务完成后,将任务信息存入数据库中,结束任务;其中,所述的全量同步数据指两个异构的数据源之间所有的数据都同步;所述的批量同步数据是指若干异构数据源之间进行部分字段同步,需要进行数据切割,判断每个column的类型和名称;其中,采用全量同步数据模式的数据源包含:关系型数据源Mysql、分布式数据源Hbase和Elasticsearch;其中,采用批量同步数据模式的数据源包含:关系型数据...

【专利技术属性】
技术研发人员:余鹰张应龙王乐为吴新念胡钰
申请(专利权)人:华东交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1