The invention provides a method and a device for synchronizing data between heterogeneous data sources. The method includes: receiving a synchronization task, type of operation and obtain the corresponding synchronization task; according to the operation type of the corresponding type of read and write plug-in plug-in plug-in; by reading the corresponding selection and write plug-in for the synchronous task segmentation according to the segmentation results of the generation task queue, which read plugin selected for reading data and from the source sent to write plug-ins, choose to write plug-ins for the read data read write plug-ins to the end; and the number of read plug-ins to call the corresponding task queue and write synchronization tasks according to the plugin. The method of the embodiment of the invention realizes the isolation of the reading plug-in and the writing plug-in, realizes the isolation of the reading plug-in and the writing plug-in and the system frame, and simultaneously achieves the purpose of promoting concurrent task synchronization.
【技术实现步骤摘要】
本申请涉及异构数据源
,尤其涉及一种异构数据源之间的数据同步方法和装置。
技术介绍
结构化数据是指具有行列结构的数据,例如,mysql、oracle等RDBMS,或者Hive、odps、oceanbase等NoSQL,或者csv等格式化数据。半结构化数据是指能够抽象为行列结构的数据,例如,具有指定列含义的日志数据、txt文件数据、Hadoop文件系统数据等。目前,为了实现异构数据源间结构化、半结构化数据的同步,通常可以采用开源项目Sqoop。具体而言,如图1所示,Sqoop是一个将Hadoop和RDBMS间数据转移的工具,它借用Map-Reduce框架,可以从RDBMS中导入到Hadoop的HDFS中,也可以将HDFS的数据导出到RDBMS中。Sqoop同样支持插件式添加不同数据库,即增加一种数据库类型,只要开发一个相应插件即可。然而目前存在的问题是,采用开源项目Sqoop具有以下的缺点:1、现有很多系统支持的存储间数据同步读写耦合严重,基本都是围绕自身系统做的数据导入或导出,数据同步的方案不够通用,甚至是需要专用通道,例如,Sqoop是局限于HDFS与外界的互通;2、为达到各存储间数据的同步,Sqoop引入了复杂的框架来支持,提高了应用门槛,例如,Sqoop需要在Map-Reduce框架中才能运行;3、对于数据量较大的情况,无法实现同步任务的切分,导致数据同步太慢,影响时效性。4、在一定场景下,Sqoop能够解决自身的数据出入问题,但并不通用,无法实现任意结构化、半结构化存储系统间数据的互导,同时Sqoop运行需要复杂的框架或环境,不易于使用。申 ...
【技术保护点】
一种异构数据源之间的数据同步方法,其特征在于,包括以下步骤:接收同步任务,并获取所述同步任务对应的操作类型;根据所述操作类型选择对应类型的读插件和写插件;通过所述选择的对应的读插件和写插件对所述同步任务进行切分并根据切分结果生成任务队列,其中,选择的所述读插件用于从源端读取数据并发送至所述写插件,选择的所述写插件用于将所述读插件读取的数据写入至目的端;以及根据所述任务队列调用对应数量的读插件和写插件执行所述同步任务。
【技术特征摘要】
1.一种异构数据源之间的数据同步方法,其特征在于,包括以下步骤:接收同步任务,并获取所述同步任务对应的操作类型;根据所述操作类型选择对应类型的读插件和写插件;通过所述选择的对应的读插件和写插件对所述同步任务进行切分并根据切分结果生成任务队列,其中,选择的所述读插件用于从源端读取数据并发送至所述写插件,选择的所述写插件用于将所述读插件读取的数据写入至目的端;以及根据所述任务队列调用对应数量的读插件和写插件执行所述同步任务。2.如权利要求1所述的异构数据源之间的数据同步方法,其特征在于,其中,通过第一类加载器生成同步任务全局空间,接收并处理全局同步任务,并通过第二类加载器生成插件空间,执行所述对应数量的读插件和写插件以完成切分后的同步任务。3.如权利要求1所述的异构数据源之间的数据同步方法,其特征在于,所述读插件通过所述读插件和写插件之间的管道将所述读插件读取的数据发送至对应的所述写插件。4.如权利要求1所述的异构数据源之间的数据同步方法,其特征在于,所述选择的所述读插件和所述写插件属于同一类型,或者不同类型。5.如权利要求1所述的异构数据源之间的数据同步方法,其特征在于,所述选择的所述读插件和所述写插件分别具有独立的线程。6.如权利要求1所述的异构数据源之间的数据同步方法,其特征在于,所述读插件和所述写插件均包括init()、prepare()、post()和destroy()方法。7.一种异构数据源之间的数据同步装置,...
【专利技术属性】
技术研发人员:邓小勇,陈守元,何健超,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。