CN109241191B - 一种分布式数据源异构同步平台及同步方法 - Google Patents
一种分布式数据源异构同步平台及同步方法 Download PDFInfo
- Publication number
- CN109241191B CN109241191B CN201811066833.2A CN201811066833A CN109241191B CN 109241191 B CN109241191 B CN 109241191B CN 201811066833 A CN201811066833 A CN 201811066833A CN 109241191 B CN109241191 B CN 109241191B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- interface
- task
- data source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式数据源异构同步平台及同步方法,该平台包含:前端和服务端;其中,前端用于提交数据源和显示数据源同步结果;服务端用于接收前端提交的数据源,并完成数据源同步请求,并将同步结果传送给前端;前端和服务端之间采用WebSocket技术进行通信;前端包含:react‑admin‑master前端独立模块,该前端独立模块采用了react+redux+ruby+webpack的前端框架,其包含:包含创建同步任务子模块、运行状态子模块和历史任务信息子模块;服务端包含:data‑transform‑api接口模块、data‑transform‑server服务模块和datax‑all服务插件模块。本发明的平台及方法能够提供一个安全的、通用的平台,且平台中各个微服务之间是松耦合的,可被独立部署,且可以插件化的管理。
Description
技术领域
本发明属于计算机领域,具体涉及一种分布式数据源异构同步平台及同步方法。
背景技术
随着现代电商技术、大数据分析和人工智能技术的高速发展,对大量的、类型各异的信息数据进行整合,实现信息共享和内部信息一体化,已变得越来越重要。当前各个企业的信息化发展大都存在异构数据源难以同步的问题。一般来说,完成特定功能的子模块以企业信息系统为中心,各自封闭,扩展性和交互性较差;各类信息系统相互独立,无法利用充分利用不同数据源之间的优点进行数据的整合;本发明就是针对当前企业中存在的项目数据源异构问题,研究实现离线的分布式异构数据源同步的方法。
目前,大多数的数据交换和共享服务并不成熟,做的比较好的是阿里巴巴的开源框架Datax,它现在已经支持市面上使用的大多数常用的数据源,并且支持在异构的数据库或是文件系统之间进行高速的交换数据,提供了统一的接口与不同的插件进行交互,插件仅需实现对数据处理系统的访问,但是其难以独立部署,运行较复杂。
而对于现阶段的分布式异构数据源同步方案,只能支持少数的数据源,而对于Elasticsearch、Redis等数据源基本不予支持,同时它们也无法对任务过程进行随时暂停的控制。
发明内容
本发明的目的是提供一种分布式数据源异构同步平台及同步方法,解决了现有服务架构对于多异构数据源之间的同步难以实现的问题,能够提供一个安全的、通用的平台,且平台中各个微服务之间是松耦合的,可被独立部署,且可以插件化的管理。
为了达到上述目的,本发明提供了一种分布式数据源异构同步平台,该平台包含:前端和服务端;其中,所述前端用于提交数据源和显示数据源同步结果;所述服务端用于接收所述前端提交的数据源,并完成数据源同步请求,并将同步结果传送给所述的前端;所述的前端和服务端之间采用WebSocket技术进行通信;所述的前端包含:react-admin-master前端独立模块,该前端独立模块采用了react+redux+ruby+webpack的前端框架,其包含:包含创建同步任务子模块、运行状态子模块和历史任务信息子模块;所述的创建同步任务子模块用于创建同步任务;所述的运行状态子模块用于查看当前同步任务的运行状态;所述的历史任务信息子模块用于查看历史任务的信息;所述的服务端包含:data-transform-api接口模块、data-transform-server服务模块和datax-all服务插件模块。
其中,所述的data-transform-api接口模块用于抽象出微服务需要提供的RESTful API接口,并定义服务端需要接收的信息对象的实体类;该data-transform-api接口模块为微服务提供入口,所述微服务通过该接口模块进行相关信息的传递和服务请求的响应。
其中,所述data-transform-server服务模块用于实现关系型数据源Mysql和分布式数据源Hbase全量导入Elasticsearch全文搜索引擎的功能,以及异构数据源之间的数据类型的转换,并结合外部接口进行异构数据源同步服务;该data-transform-server服务模块包含:分布式数据源配置中心、任务调度线程池、文件处理模块、数据批处理器、缓存池和任务消息处理线程池。所述的分布式数据源配置中心用于为不同的分布式数据库集群设置别名,并为该集群创建数据源同步处理器,根据数据源的具体类型创建客户端和连接,新建同步任务,并将该任务放入线程池中等待调度;所述的任务调度线程池用于存放等待执行的数据同步任务,根据并行任务调度算法选择合适的任务进行全量或批量同步,并控制任务的实行,包括启动、暂停、停止和恢复;所述的文件处理模块负责用于将数据表中的数据转换成SQL文件,然后对数据文件进行分页,实现负载均衡;所述的数据批处理器负责批量用于进行数据的导入和导出,其包含:HBaseETLController和MySqlETLController两个控制器,这两个控制器是关系型数据源Mysql和分布式数据源Hbase的全量导入导出任务的控制器,实现所述data-transform-api接口模块提供的可供外部调用的控制和数据查询的接口;所述的缓存池用于保存任务的数据信息,进行全量同步时,任务进度可控,当需要暂停任务时,更改缓存池中的任务信息状态值;所述的任务消息处理线程池是利用WebSocket技术在所述的客户端和服务端之间随意传递消息队列中的数据信息。
其中,datax-all服务插件模块用于开发Elasticsearch的读写插件和引用的外部接口,主要是在平台中集成了DataX开源框架,对插件进行插件化的管理,并进行任务信息的跟踪控制、流量控制、负载均衡控制和解决异构数据源中数据类型不匹配的问题。
优选地,所述的react-admin-master前端独立模块包含:创建同步任务子模块、运行状态子模块和信息查询子模块。
其中,所述的创建同步任务子模块用于接受所述前端的用户界面提交的任务配置信息,并根据这些配置信息调用所述的data-transform-api接口模块中的任务管理接口以创建任务。
其中,所述的运行状态子模块接受所述前端的用户请求,调用所述的data-transform-api接口模块中的任务控制接口,以显示正在运行的作业状态,和显示任务的进度条,若为全量作业,则可控制任务的状态,并对其进行暂停、重启的操作。
其中,所述的信息查询子模块与所述前端的用户界面连接,通过调用所述的data-transform-api接口模块中的任务查询接口,查看历史任务,并判断当前使用的各个数据源是否同步。
优选地,所述的data-transform-api接口模块包含:为不同数据源设计的不同的插件所定义的内部接口,该内部接口用于调用对应的插件;该内部接口包含:核心HE接口、核心ME接口、核心PAUSE接口、核心STOP接口、统一插件接口和历史任务接口。
其中,所述核心HE接口用于全量同步从HBase到Elasticsearch;所述核心ME接口用于全量同步从Mysql到Elasticsearch;所述核心PAUSE接口用于全量同步从开始到暂停;所述核心STOP接口:用于全量同步从开始到停止和全量同步从暂停到重启;所述统一插件接口:用于部分同步多种异构数据源;所述历史任务接口:用于任务历史查看。
优选地,所述的datax-all服务插件模块包含:若干个插件子模块、三个核心子模块和外部接口。
其中,插件子模块包含:Reader子模块和Writer子模块;所述的Reader子模块用于负责采集所述关系型数据源Mysql的数据,并全部发送给所述外部接口中的Framework接口;所述Writer子模块用于负责不断从所述的Framework接口取出数据,然后写入目标数据源。
其中,核心子模块包含:datax core核心模块、datax common通用模块和dataxtransform转换模块;所述datax core核心模块用于作为所有任务Job的管理者,负责初始化、拆分、调度、运行、回收、监控和汇报,但并不做实际的数据同步操作;所述的dataxcommon通用模块用于负责将任务Job分割成多个任务Task,再通过负载均衡分配到不同的任务集群TaskGroup中,以集群Group的形式调度运行;所述的datax transform转换模块用于连接Reader子模块和Writer子模块,是两者的数据传输通道,并提供数据量统计、流量控制、并发和数据转换等功能。
优选地,所述的外部接口包含:Reader接口、Writer接口和Framework接口。
其中,所述的Reader接口与Reader模块连接,用于数据采集的Reader模块中的数据源的数据,并发送给所述的Framework接口。
其中,所述的Writer接口与Writer模块连接,用于不断从Framework接口取出数据,然后将所得数据通过Writer模块写入到目标数据源中。
其中,所述的Framework接口用于连接所述的reader模块和writer模块,用于作为两者的数据传输通道,并处理数据的缓冲、流控、并发和转换。
优选地,所述的微服务包括:Spring Cloud服务;所述异构数据源包括:关系型数据源Mysql、分布式数据源Hbase、数据源Elasticsearch、数据源Oracle、数据源SQLServer、数据源MongoDB、数据源TXTFile和数据源FTP;所述的data-transform-server服务模块结合了DataX中匹配不同数据源的插件,为该插件提供相应的接口,并提供配置文件解析工具。
本发明还提供了一种分布式数据源异构同步的方法,该方法包含:
(1)前端数据处理:创建任务需要填写的配置信息,判断并选择任务类型,任务类型的业务包含:全量和批量,根据选择传递参数调用服务接口;
(2)通过分布式数据源配置中心给不同的分布式数据库集群设置别名,每个别名都代表一个完整的集群或单节点数据配置环境,为每个集群找到匹配的配置信息,并随机生成每个任务对应的key;若存在匹配的配置信息,则创建数据源同步处理器,新建并缓存任务信息,根据数据源的具体信息创建客户端和连接,并放入线程池中进行等待调度;若不存在匹配的配置信息,则将任务信息存入数据库中;
(3)开始任务,通过数据批处理器进行数据处理,包含两种模式:全量同步数据和批量同步数据;当存在错误或任务完成后,将任务信息存入数据库中,结束任务。
其中,所述的全量同步数据指两个异构的数据源之间所有的数据都同步;所述的批量同步数据是指若干异构数据源之间进行部分字段同步,需要进行数据切割,判断每个column的类型和名称。
其中,采用全量同步数据模式的数据源包含:关系型数据源Mysql、分布式数据源Hbase和Elasticsearch。
其中,采用批量同步数据模式的数据源包含:关系型数据源Mysql、分布式数据源Hbase、Elasticsearch、Oracle、SQLServer、MongoDB、TXTFile和FTP。
优选地,所述的批量同步数据利用数据批处理器导出或导入数据,并进行数据的切割以进行读写管理;所述的关系型数据源Mysql的批量同步数据模式通过将数据导出为sql文件,并采用数据分割实现。
优选地,该方法还包含:当处于任务中的数据库所在服务器或数据库本身出现问题时,则暂停或停止任务:通过调用接口传递key值,在服务器缓存中查询key值对应的任务信息,修改任务的状态值为暂停或停止,再更新数据库中的任务信息,并且发送消息到消息处理器,消息处理器通过webSocket将消息发送给客户端,以暂停或停止任务。
优选地,该方法还包含:当故障修复之后,重启服务:在获得任务信息后,修改任务状态值为运行,在通过缓存记录的开始Key值和结束Key值找到被转换出来的文件,或数据批处理器导入的批量数据。
本发明的分布式数据源异构同步平台及同步方法,解决了现有服务架构对于多异构数据源之间的同步难以实现的问题,具有以下优点:
(1)消除分布式异构数据源的差异化,实现多种数据源相互导入导出大量信息的功能;
(2)将异构数据源插件化管理,新的数据源只需要实现新的插件,就可以支持和其他数据源进行无差异性数据同步;
(3)多任务并发执行,并且可以对任务进行开始,暂停,重启和停止的调度控制,实现独立运行;
(4)采用微服务架构,其实现模式是可以独立部署在多台机器上,使其同事进行运转;
(5)实现任务进度跟踪和CPU等资源消耗的信息监控。以此,达到一个比较完善的分布式异构数据源同步服务。
附图说明
图1为本发明的分布式数据源异构同步平台的结构示意图。
图2为本发明的外部接口的连接关系示意图。
图3为本发明的前端数据处理的流程图。
图4为本发明的开启任务的流程图。
图5为本发明的暂停与停止任务的流程图。
图6为本发明的重新开始任务的流程图。
具体实施方式
以下结合附图和实施例对本发明的技术方案做进一步的说明。
一种分布式数据源异构同步平台,如图1所示,为本发明的分布式数据源异构同步平台的结构示意图,该平台包含:前端和服务端;其中,前端用于提交数据源和显示数据源同步结果;服务端用于接收前端提交的数据源,并完成数据源同步请求,并将同步结果传送给前端;前端和服务端之间采用WebSocket技术进行通信。
上述前端包含:react-admin-master前端独立模块,该前端独立模块采用了react+redux+ruby+webpack的前端框架,其包含:包含创建同步任务子模块、运行状态子模块和历史任务信息子模块;创建同步任务子模块用于创建同步任务,运行状态子模块用于查看当前同步任务的运行状态,历史任务信息子模块用于查看历史任务的信息。在创建任务的时候,需要选择任务的各种配置信息,当要查看任务状态时,调动前端和服务端的及时通信服务WebSocket,还可查看以往的任务信息,判断当前使用的各个数据源是否同步。
本发明采用react+redux+ruby+webpack的前端框架设计实现了前端和服务端分离,使前端和服务端均可独立部署,使得分工明显。
上述服务端包含:data-transform-api接口模块(API接口模块)、data-transform-server服务模块(同步服务模块)和datax-all服务插件模块。
其中,data-transform-api接口模块用于抽象出微服务需要提供的RESTful API接口,并定义服务端需要接收的信息对象的实体类;该data-transform-api接口模块为微服务提供入口,微服务通过该接口模块进行相关信息的传递和服务请求的响应。对外提供接口主要定义在data-transform-api模块中,需要使用的项目只需要在自己的pom依赖中添加该项目对该模块的依赖,就可以给一些部署过微服务的服务器提供一些服务。
其中,data-transform-server服务模块用于实现关系型数据源Mysql和分布式数据源Hbase全量导入Elasticsearch(一个基于Lucene的搜索服务器,提供分布式多用户能力的全文搜索引擎)全文搜索引擎的功能,以及异构数据源之间的数据类型的转换,并结合外部接口进行异构数据源同步服务;该data-transform-server服务模块包含:分布式数据源配置中心、任务调度线程池、文件处理模块、数据批处理器、缓存池和任务消息处理线程池。在对任务控制进行调度的同时,还结合及时通信技术WebSocket,对消息队列和线程池进行多项任务的调度。该data-transform-server服务模块还结合了DataX中匹配各种数据源的插件,该服务模块提供接口和配置文件解析工具,使得服务端能够更好的工作。
其中,分布式数据源配置中心用于为不同的分布式数据库集群设置别名,并为该集群创建数据源同步处理器,根据数据源的具体类型创建客户端和连接,新建同步任务,并将该任务放入线程池中等待调度;任务调度线程池用于存放等待执行的数据同步任务,根据并行任务调度算法选择合适的任务进行全量或批量同步,并控制任务的实行,包括启动、暂停、停止和恢复;文件处理模块负责用于将数据表中的数据转换成SQL文件,然后对数据文件进行分页,实现负载均衡;数据批处理器负责批量用于进行数据的导入和导出,其包含:HBaseETLController和MySqlETLController两个控制器,这两个控制器是关系型数据源Mysql和分布式数据源Hbase的全量导入导出任务的控制器,实现data-transform-api接口模块提供的可供外部调用的控制和数据查询的接口;缓存池用于保存任务的数据信息,进行全量同步时,任务进度可控,当需要暂停任务时,更改缓存池中的任务信息状态值;任务消息处理线程池是利用WebSocket技术在客户端和服务端之间随意传递消息队列中的数据信息。
其中,datax-all服务插件模块用于开发Elasticsearch的读写插件和引用的外部接口,主要是在平台中集成了DataX开源框架,对插件进行插件化的管理,并进行任务信息的跟踪控制、流量控制、负载均衡控制和解决异构数据源中数据类型不匹配的问题。datax-all服务插件模块面对大量的数据处理,提供的外部接口都能将任务理论平均并且合理的切分成多个Task一起执行,单机多线程执行方式可以让它速度随并发增长。
根据本发明一实施例,react-admin-master前端独立模块包含:创建同步任务子模块、运行状态子模块和信息查询子模块。
其中,创建同步任务子模块用于接受前端的用户界面提交的任务配置信息,并根据这些配置信息调用data-transform-api接口模块中的任务管理接口以创建任务。
其中,运行状态子模块接受前端的用户请求,调用data-transform-api接口模块中的任务控制接口,以显示正在运行的作业状态,和显示任务的进度条,若为全量作业,则可控制任务的状态,并对其进行暂停、重启的操作。
其中,信息查询子模块与前端的用户界面连接,通过调用data-transform-api接口模块中的任务查询接口,查看历史任务,并判断当前使用的各个数据源是否同步。
根据本发明一实施例,data-transform-api接口模块包含:为不同数据源设计的不同的插件所定义的内部接口,该内部接口用于调用对应的插件;该内部接口包含:核心HE接口、核心ME接口、核心PAUSE接口、核心STOP接口、统一插件接口和历史任务接口。
其中,核心HE接口用于全量同步从HBase到Elasticsearch;核心ME接口用于全量同步从Mysql到Elasticsearch;核心PAUSE接口用于全量同步从开始到暂停;核心STOP接口:用于全量同步从开始到停止和全量同步从暂停到重启;统一插件接口:用于部分同步多种异构数据源;历史任务接口:用于任务历史查看。
根据本发明一实施例,datax-all服务插件模块包含:若干个插件子模块、三个核心子模块和外部接口。
其中,插件子模块包含:Reader子模块和Writer子模块;Reader子模块用于负责采集关系型数据源Mysql的数据,并全部发送给外部接口中的Framework接口;Writer子模块用于负责不断从Framework接口取出数据,然后写入目标数据源。
其中,核心子模块包含:datax core核心模块、datax common通用模块和dataxtransform转换模块;datax core核心模块用于作为所有任务Job的管理者,负责初始化、拆分、调度、运行、回收、监控和汇报,但并不做实际的数据同步操作;datax common通用模块用于负责将任务Job分割成多个任务Task,再通过负载均衡分配到不同的任务集群TaskGroup中,以集群Group的形式调度运行;datax transform转换模块用于连接Reader子模块和Writer子模块,是两者的数据传输通道,并提供数据量统计、流量控制、并发和数据转换等功能。
根据本发明一实施例,如图2所示,为本发明的外部接口的连接关系示意图,外部接口包含:Reader接口、Writer接口和Framework接口。
其中,Reader接口与Reader模块连接,用于数据采集的Reader模块中的数据源(图2中数据源A)的数据,并发送给Framework接口。
其中,Writer接口与Writer模块连接,用于不断从Framework接口取出数据,然后将所得数据通过Writer模块写入到目标数据源(图2中数据源B)中。
其中,Framework接口用于连接reader模块和writer模块,用于作为两者的数据传输通道,起到桥梁沟通两者之间信息的作用,并处理数据的缓冲、流控、并发和转换。
根据本发明一实施例,微服务包括:Spring Cloud服务;异构数据源包括:关系型数据源Mysql、分布式数据源Hbase、数据源Elasticsearch、数据源Oracle、数据源SQLServer、数据源MongoDB、数据源TXTFile和数据源FTP;data-transform-server服务模块结合了DataX中匹配不同数据源的插件,为该插件提供相应的接口,并提供配置文件解析工具。
一种分布式数据源异构同步的方法,该方法包含:
(1)前端数据处理:
如图3所示,为本发明的前端数据处理的流程图,创建任务需要填写的配置信息,判断并选择任务类型,任务类型的业务包含:全量和批量;
当选择批量导入时,选择原数据源和目标数据源,以及各种配置和字段的映射,以制定目标对象;当选择全量导入时,选择Hbase/Mysql作为原目标数据源,Elasticsearch作为目标数据源,以制定目标对象;
根据选择传递参数调用服务接口,返回任务JobId和任务状态,查看当前运行的所有任务的状态,前端数据处理结束;
(2)如图4所示,为本发明的开启任务的流程图,通过平台的分布式数据源配置中心模块给不同的分布式集群设置了别名,每个别名都代表了一个完整的集群或单节点数据配置环境。在任务开始前,先找到匹配的配置信息,然后随机生成一个key唯一标志了一个任务。将任务的大部分数据信息都存储在内存缓存中。再根据数据源的具体信息创建客户端和连接,然后放入任务调度线程池中进行等待调度。比如是Mysql,那么先将Mysql中的表导成sql文件,在对文件进行切割,不同的数据源有不同的读写插件管理;
(3)开始任务:
开启任务时,有两种模式选择,第一种是全量同步数据,全量则代表两个数据源之间所有的数据都同步,如果有这种需求,那么这个方式的效率更高,因为不需要做每个column的类型和名称做判断;第二种方式是批量同步数据,主要利用Datax框架的插件实现十多种的数据源之间做到统一,也包含设计的插件,批量上则主要是利用批处理器,或者是数据的切割等方法;
其中,采用全量同步数据模式的数据源包含:关系型数据源Mysql、分布式数据源Hbase和Elasticsearch。
其中,采用批量同步数据模式的数据源包含:关系型数据源Mysql、分布式数据源Hbase、Elasticsearch、Oracle、SQLServer、MongoDB、TXTFile和FTP。
根据本发明一实施例,批量同步数据利用数据批处理器导出或导入数据,或数据的切割以进行读写管理;关系型数据源Mysql的批量同步数据模式通过将数据导出为sql文件,并采用数据分割实现。
根据本发明一实施例,如图5所示,为本发明的暂停与停止任务的流程图,该方法还包含:在系统任务开启之后,数据库会返回客户端一个代表任务的唯一key值。当处于任务中的数据库所在服务器或者是数据库本身出现问题时,有必要暂停或者是停止任务来进行机器的运维。所以,当需要暂停或者是停止时,通过调用接口传递key值,在服务器缓存中查询key值对应的JobInfo信息,修改Job的状态值为PAUSE或者是STOP,再更新数据库中的任务信息,并且发消息到消息处理器,消息处理器通过webSocket将消息发送给客户端;一旦停止过后,就不能再恢复当前的任务了,所以需要多层状态的判断,在每一次任务状态改变时,都需要在数据库中记录,跟踪任务的进行,及时避免和处理配置信息不匹配的问题。任务信息主要保存在操作系统内存的缓存中,每个任务至多缓存一天的时间,如时间过长既不能保证任务状态的及时有效性。
根据本发明一实施例,如图6所示,为本发明的重新开始任务的流程图,该方法还包含:离线同步任务开启之后,会将当前任务的标志key和状态信息返回给客户端。当遇到的故障修复之后,仍然可以接着上次切断成处重启服务。在面对大量数据时,如果中途中断,那么之前交换的数据都是无用的。在得到JobInfo后,修改JobState为RUN,在通过缓存记录的startKey和endKey值找到被转换出来的sql文件,以准确的找到暂停点,或者是批处理器进批量数据的导入。
综上所述,本发明的分布式数据源异构同步平台及同步方法能够提供一个安全的、通用的平台,且平台中各个微服务之间是松耦合的,可被独立部署,且可以插件化的管理。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (6)
1.一种分布式数据源异构同步平台,其特征在于,该平台包含:前端和服务端;其中,所述前端用于提交数据源和显示数据源同步结果;所述服务端用于接收所述前端提交的数据源,并完成数据源同步请求,并将同步结果传送给所述的前端;所述的前端和服务端之间采用WebSocket技术进行通信;
所述的前端包含:react-admin-master前端独立模块,该前端独立模块采用了react+redux+ruby+webpack的前端框架,其包含:包含创建同步任务子模块、运行状态子模块和历史任务信息子模块;所述的创建同步任务子模块用于创建同步任务;所述的运行状态子模块用于查看当前同步任务的运行状态;所述的历史任务信息子模块用于查看历史任务的信息;
所述的服务端包含:data-transform-api接口模块、data-transform-server服务模块和datax-all服务插件模块;
其中,所述的data-transform-api接口模块用于抽象出微服务需要提供的RESTfulAPI接口,并定义服务端需要接收的信息对象的实体类;该data-transform-api接口模块为微服务提供入口,所述微服务通过该接口模块进行相关信息的传递和服务请求的响应;
其中,所述data-transform-server服务模块用于实现关系型数据源Mysql和分布式数据源Hbase全量导入Elasticsearch全文搜索引擎的功能,以及异构数据源之间的数据类型的转换,并结合外部接口进行异构数据源同步服务;该data-transform-server服务模块包含:分布式数据源配置中心、任务调度线程池、文件处理模块、数据批处理器、缓存池和任务消息处理线程池;
所述的分布式数据源配置中心用于为不同的分布式数据库集群设置别名,并为该集群创建数据源同步处理器,根据数据源的具体类型创建客户端和连接,新建同步任务,并将该任务放入线程池中等待调度;
所述的任务调度线程池用于存放等待执行的数据同步任务,根据并行任务调度算法选择合适的任务进行全量或批量同步,并控制任务的实行,包括启动、暂停、停止和恢复;
所述的文件处理模块负责用于将数据表中的数据转换成SQL文件,然后对数据文件进行分页,实现负载均衡;
所述的数据批处理器负责批量用于进行数据的导入和导出,其包含:HBaseETLController和MySqlETLController两个控制器,这两个控制器是关系型数据源Mysql和分布式数据源Hbase的全量导入导出任务的控制器,实现所述data-transform-api接口模块提供的可供外部调用的控制和数据查询的接口;
所述的缓存池用于保存任务的数据信息,进行全量同步时,任务进度可控,当需要暂停任务时,更改缓存池中的任务信息状态值;
所述的任务消息处理线程池是利用WebSocket技术在所述的客户端和服务端之间随意传递消息队列中的数据信息;
其中,datax-all服务插件模块用于开发Elasticsearch的读写插件和引用的外部接口,主要是在平台中集成了DataX开源框架,对插件进行插件化的管理,并进行任务信息的跟踪控制、流量控制、负载均衡控制和解决异构数据源中数据类型不匹配的问题。
2.根据权利要求1所述的分布式数据源异构同步平台,其特征在于,所述的react-admin-master前端独立模块包含:创建同步任务子模块、运行状态子模块和信息查询子模块;
其中,所述的创建同步任务子模块用于接受所述前端的用户界面提交的任务配置信息,并根据这些配置信息调用所述的data-transform-api接口模块中的任务管理接口以创建任务;
其中,所述的运行状态子模块接受所述前端的用户请求,调用所述的data-transform-api接口模块中的任务控制接口,以显示正在运行的作业状态,和显示任务的进度条,若为全量作业,则可控制任务的状态,并对其进行暂停、重启的操作;
其中,所述的信息查询子模块与所述前端的用户界面连接,通过调用所述的data-transform-api接口模块中的任务查询接口,查看历史任务,并判断当前使用的各个数据源是否同步。
3.根据权利要求1所述的分布式数据源异构同步平台,其特征在于,所述的data-transform-api接口模块包含:为不同数据源设计的不同的插件所定义的内部接口,该内部接口用于调用对应的插件;该内部接口包含:核心HE接口、核心ME接口、核心PAUSE接口、核心STOP接口、统一插件接口和历史任务接口;
其中,所述核心HE接口用于全量同步从HBase到Elasticsearch;
所述核心ME接口用于全量同步从Mysql到Elasticsearch;
所述核心PAUSE接口用于全量同步从开始到暂停;
所述核心STOP接口:用于全量同步从开始到停止和全量同步从暂停到重启;
所述统一插件接口:用于部分同步多种异构数据源;
所述历史任务接口:用于任务历史查看。
4.根据权利要求1所述的分布式数据源异构同步平台,其特征在于,所述的datax-all服务插件模块包含:若干个插件子模块、三个核心子模块和外部接口;
其中,插件子模块包含:Reader子模块和Writer子模块;所述的Reader子模块用于负责采集所述关系型数据源Mysql的数据,并全部发送给所述外部接口中的Framework接口;所述Writer子模块用于负责不断从所述的Framework接口取出数据,然后写入目标数据源;
其中,核心子模块包含:datax core核心模块、datax common通用模块和dataxtransform转换模块;所述datax core核心模块用于作为所有任务Job的管理者,负责初始化、拆分、调度、运行、回收、监控和汇报,但并不做实际的数据同步操作;所述的dataxcommon通用模块用于负责将任务Job分割成多个任务Task,再通过负载均衡分配到不同的任务集群TaskGroup中,以集群Group的形式调度运行;所述的datax transform转换模块用于连接Reader子模块和Writer子模块,是两者的数据传输通道,并提供数据量统计、流量控制、并发和数据转换等功能。
5.根据权利要求4所述的分布式数据源异构同步平台,其特征在于,所述的外部接口包含:Reader接口、Writer接口和Framework接口;
其中,所述的Reader接口与Reader模块连接,用于数据采集的Reader模块中的数据源的数据,并发送给所述的Framework接口;
其中,所述的Writer接口与Writer模块连接,用于不断从Framework接口取出数据,然后将所得数据通过Writer模块写入到目标数据源中;
其中,所述的Framework接口用于连接所述的reader模块和writer模块,用于作为两者的数据传输通道,并处理数据的缓冲、流控、并发和转换。
6.根据权利要求1-5中任意一项所述的分布式数据源异构同步平台,其特征在于,所述的微服务包括:Spring Cloud服务;所述异构数据源包括:关系型数据源Mysql、分布式数据源Hbase、数据源Elasticsearch、数据源Oracle、数据源SQLServer、数据源MongoDB、数据源TXTFile和数据源FTP;所述的data-transform-server服务模块结合了DataX中匹配不同数据源的插件,为该插件提供相应的接口,并提供配置文件解析工具。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110755413.0A CN113407633A (zh) | 2018-09-13 | 2018-09-13 | 一种分布式数据源异构同步的方法 |
CN201811066833.2A CN109241191B (zh) | 2018-09-13 | 2018-09-13 | 一种分布式数据源异构同步平台及同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811066833.2A CN109241191B (zh) | 2018-09-13 | 2018-09-13 | 一种分布式数据源异构同步平台及同步方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110755413.0A Division CN113407633A (zh) | 2018-09-13 | 2018-09-13 | 一种分布式数据源异构同步的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241191A CN109241191A (zh) | 2019-01-18 |
CN109241191B true CN109241191B (zh) | 2021-09-14 |
Family
ID=65058018
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110755413.0A Pending CN113407633A (zh) | 2018-09-13 | 2018-09-13 | 一种分布式数据源异构同步的方法 |
CN201811066833.2A Active CN109241191B (zh) | 2018-09-13 | 2018-09-13 | 一种分布式数据源异构同步平台及同步方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110755413.0A Pending CN113407633A (zh) | 2018-09-13 | 2018-09-13 | 一种分布式数据源异构同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN113407633A (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918435A (zh) * | 2019-02-27 | 2019-06-21 | 北京奇艺世纪科技有限公司 | 一种业务接口的处理方法及系统 |
CN110247950A (zh) * | 2019-04-30 | 2019-09-17 | 五八有限公司 | 一种React Native中的数据同步方法和装置 |
CN110222076A (zh) * | 2019-05-07 | 2019-09-10 | 广州虎牙信息科技有限公司 | 分布式缓存方法、服务器及存储介质 |
CN110597618B (zh) * | 2019-07-26 | 2022-06-07 | 苏宁云计算有限公司 | 一种数据交换系统的任务拆分方法及装置 |
CN111026529B (zh) * | 2019-11-26 | 2023-08-01 | 蚂蚁财富(上海)金融信息服务有限公司 | 分布式任务处理系统的任务停止方法及装置 |
CN111061798B (zh) * | 2019-12-23 | 2024-03-08 | 杭州雷数科技有限公司 | 可配置化数据传输及监控方法、设备及介质 |
CN111367804B (zh) * | 2020-03-04 | 2020-09-29 | 广州锦行网络科技有限公司 | 基于云计算及网络编程实现前端协作调试的方法 |
CN111414363B (zh) * | 2020-03-13 | 2023-04-14 | 上海银赛计算机科技有限公司 | 适用于MySQL中客户数据的并行异构方法、系统、介质及设备 |
CN111506366B (zh) * | 2020-04-17 | 2023-09-05 | 咪咕文化科技有限公司 | 插件调用方法、装置、电子设备与存储介质 |
CN111556039B (zh) * | 2020-04-21 | 2021-04-09 | 南京行者易智能交通科技有限公司 | 一种通用微服务的web数据导出方法及装置 |
CN111309719B (zh) * | 2020-05-13 | 2020-08-21 | 深圳市赢时胜信息技术股份有限公司 | 一种对应HBase数据库的数据规范方法及系统 |
CN111782618B (zh) * | 2020-06-24 | 2023-01-31 | 中国电子科技集团公司电子科学研究院 | 一种数据同步系统 |
CN111954038B (zh) * | 2020-08-21 | 2021-12-21 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于es高效自动同步可配置的搜索方法及系统 |
CN112148788A (zh) * | 2020-08-25 | 2020-12-29 | 珠海市卓轩科技有限公司 | 异构数据源的数据同步方法及系统 |
CN112231376A (zh) * | 2020-09-25 | 2021-01-15 | 中国建设银行股份有限公司 | 一种用于离线数据采集的方法和装置 |
CN112328542A (zh) * | 2020-11-25 | 2021-02-05 | 天津凯发电气股份有限公司 | 一种把异构数据文件中的数据导入到数据库的方法 |
CN112307128B (zh) * | 2020-11-26 | 2024-07-16 | 中国—东盟信息港股份有限公司 | 一种基于分布式的异构数据同步系统及方法 |
CN112565042A (zh) * | 2020-12-24 | 2021-03-26 | 航天科工网络信息发展有限公司 | 一种星形结构数据交换的方法 |
CN112765246B (zh) * | 2020-12-30 | 2024-05-24 | 北京知因智慧科技有限公司 | 任务处理方法、装置、电子设备和存储介质 |
CN112764740B (zh) * | 2021-01-26 | 2022-06-10 | 北京融和友信科技股份有限公司 | 一种基于Shell的应用在系统间文件交互中的处理方法 |
CN113535837B (zh) * | 2021-07-16 | 2024-07-12 | 深圳银兴智能数据有限公司 | 统一数据开发与分布式的调度系统 |
CN113821194A (zh) * | 2021-09-10 | 2021-12-21 | 上海云轴信息科技有限公司 | 一种微前端系统 |
CN114254039A (zh) * | 2021-12-02 | 2022-03-29 | 东方财富信息股份有限公司 | 分布式同步系统 |
CN115499452B (zh) * | 2022-11-15 | 2023-02-28 | 四川蜀天信息技术有限公司 | 一种基于next的数据同步方法 |
CN116431591B (zh) * | 2023-06-05 | 2023-09-05 | 云启智慧科技有限公司 | 多端文件增量同步方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950300A (zh) * | 2010-09-20 | 2011-01-19 | 华南理工大学 | 一种分层结构、分布式搜索引擎系统及其实现方法 |
CN105045820A (zh) * | 2015-06-25 | 2015-11-11 | 浙江立元通信技术股份有限公司 | 一种处理海量级数据的视频图像信息的方法及数据库系统 |
CN107169073A (zh) * | 2017-05-09 | 2017-09-15 | 北京智行创远信息科技有限公司 | 一种数据管理方法与管理平台 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226649B1 (en) * | 1997-06-23 | 2001-05-01 | Oracle Corporation | Apparatus and method for transparent access of foreign databases in a heterogeneous database system |
US7103586B2 (en) * | 2001-03-16 | 2006-09-05 | Gravic, Inc. | Collision avoidance in database replication systems |
EP1459179A2 (en) * | 2001-12-14 | 2004-09-22 | Koninklijke Philips Electronics N.V. | Data processing system having multiple processors and task scheduler and corresponding method therefor |
CN101686148B (zh) * | 2008-09-28 | 2012-11-21 | 华为技术有限公司 | 对刀片式服务器进行标识及识别方法、装置及系统 |
CN102360310B (zh) * | 2011-09-28 | 2014-03-26 | 中国电子科技集团公司第二十八研究所 | 一种分布式系统环境下的多任务进程监视方法 |
CN102508709B (zh) * | 2011-11-30 | 2014-06-25 | 国家电网公司 | 购供售一体化电能量采集与监控系统中基于分布式缓存的采集任务调度方法 |
CN102542007B (zh) * | 2011-12-13 | 2014-06-25 | 中国电子科技集团公司第十五研究所 | 关系型数据库之间的同步方法及系统 |
CN102752372A (zh) * | 2012-06-18 | 2012-10-24 | 天津神舟通用数据技术有限公司 | 一种基于文件的数据库同步方法 |
CN104346377B (zh) * | 2013-07-31 | 2017-08-08 | 克拉玛依红有软件有限责任公司 | 一种基于唯一标识的数据集成和交换方法 |
US10133250B2 (en) * | 2014-06-20 | 2018-11-20 | Veritone Alpha, Inc. | Managing construction of decision modules to control target systems |
CN104317843B (zh) * | 2014-10-11 | 2017-08-25 | 上海瀚之友信息技术服务有限公司 | 一种数据同步etl系统 |
CN104506496B (zh) * | 2014-12-10 | 2017-09-29 | 山大地纬软件股份有限公司 | 基于Oracle Streams技术的准实时数据增量分发的方法 |
CN104391989A (zh) * | 2014-12-16 | 2015-03-04 | 浪潮电子信息产业股份有限公司 | 一种分布式etl一体机系统 |
CN106156165A (zh) * | 2015-04-16 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 异构数据源之间的数据同步方法和装置 |
CN106294496B (zh) * | 2015-06-09 | 2020-02-07 | 北京京东尚科信息技术有限公司 | 一种基于hadoop集群的数据迁移方法和工具 |
CN105760221B (zh) * | 2016-02-02 | 2018-12-07 | 中博信息技术研究院有限公司 | 分布式计算框架的任务调派系统 |
CN107122365A (zh) * | 2016-02-25 | 2017-09-01 | 阿里巴巴集团控股有限公司 | 异构数据库的访问方法及装置 |
CN106446243A (zh) * | 2016-10-10 | 2017-02-22 | 山东浪潮云服务信息科技有限公司 | 一种关系型数据库的数据集成结构 |
CN106850788B (zh) * | 2017-01-22 | 2019-08-20 | 中国科学院电子学研究所苏州研究院 | 面向多源异构地理信息资源的集成框架及集成方法 |
CN107729366B (zh) * | 2017-09-08 | 2021-01-05 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN107766572A (zh) * | 2017-11-13 | 2018-03-06 | 北京国信宏数科技有限责任公司 | 基于经济领域数据的分布式提取及可视化分析方法和系统 |
-
2018
- 2018-09-13 CN CN202110755413.0A patent/CN113407633A/zh active Pending
- 2018-09-13 CN CN201811066833.2A patent/CN109241191B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950300A (zh) * | 2010-09-20 | 2011-01-19 | 华南理工大学 | 一种分层结构、分布式搜索引擎系统及其实现方法 |
CN105045820A (zh) * | 2015-06-25 | 2015-11-11 | 浙江立元通信技术股份有限公司 | 一种处理海量级数据的视频图像信息的方法及数据库系统 |
CN107169073A (zh) * | 2017-05-09 | 2017-09-15 | 北京智行创远信息科技有限公司 | 一种数据管理方法与管理平台 |
Non-Patent Citations (1)
Title |
---|
基于分布式异构数据库的企业信息集成平台;杨立;《计算机与现代化》;20030131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109241191A (zh) | 2019-01-18 |
CN113407633A (zh) | 2021-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241191B (zh) | 一种分布式数据源异构同步平台及同步方法 | |
CN112099918B (zh) | 容器化环境中的集群的实时迁移 | |
CN111400326B (zh) | 一种智慧城市数据管理系统及其方法 | |
CN108491164B (zh) | 一种混合云存储架构系统 | |
US9430264B2 (en) | System and method for managing resources in virtualized environment based on resource state information and policy information | |
US7779298B2 (en) | Distributed job manager recovery | |
US9286368B2 (en) | Linking framework for information technology management | |
CN111949454B (zh) | 一种基于微服务组件的数据库系统及相关方法 | |
CN108885582A (zh) | 存储器池结构的多租户存储器服务 | |
CN110716802B (zh) | 一种跨集群的任务调度系统及方法 | |
EP2595068A2 (en) | System and method of performing snapshot isolation in distributed databases | |
US9135454B2 (en) | Systems and methods for enabling searchable encryption | |
GB2511935A (en) | Low Latency query engine for apache hadoop | |
Essa et al. | Mobile agent based new framework for improving big data analysis | |
EP3172682B1 (en) | Distributing and processing streams over one or more networks for on-the-fly schema evolution | |
CN110300188A (zh) | 数据传输系统、方法和设备 | |
CN103729391A (zh) | 能够重新启动事务的客户端装置和数据库服务器及方法 | |
US11714573B1 (en) | Storage optimization in a distributed object store | |
CN114547199A (zh) | 数据库增量同步响应方法、装置及计算机可读存储介质 | |
CN110069565B (zh) | 一种分布式数据库数据批量处理的方法及装置 | |
US20200004861A1 (en) | Method and system for implementing parallel database queries | |
CN108696559B (zh) | 流处理方法及装置 | |
US10855563B2 (en) | Supplementing log messages with metadata | |
US8938480B2 (en) | Techniques for fast loading of data from an external distributed file system to a database management system | |
KR20050026306A (ko) | 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |