一种异构数据实时同步方法、装置、设备和存储介质与流程

文档序号:23651801发布日期:2021-01-15 13:48阅读:100来源:国知局
本发明涉及数据同步
技术领域
:,尤其涉及一种异构数据实时同步方法、装置、设备和存储介质。
背景技术
::随着科技发展的不断进步,人们对数据的需求日渐增加,从传统单机数据库到分布式数据库,当前数据库产品可谓百花齐放:开源数据库(mysql、postgresql),商业数据库(oracle、db2)以及国产数据库(达梦、tidb)应用于各领域行业;企业内部由于场景的多元化,也存在不同的结构化和非结构化数据存储。在去ioe、国产自主的潮流之下,基于不用的应用场景,如多区域数据库汇聚分析、跨idc数据同步、异构数据分发与迁移,诞生了各种数据实时同步的需求,以求解决表和数据对象的同步问题。为此,现有的数据同步工具在功能上通常是支持多种源端转换为单个目标端,或者从一个源端转换为多个目标端,缺乏通用性;在处理性能上通常是处理小业务量的数据同步,在业务量稍大的情况下会导致同步进程堵塞,导致后续同步效率降低,无法适用于电信等庞大业务量的实时同步场景;在可用性上的容错机制通常较差,无法在同步异常中断的情况下快速实现续存。技术实现要素:本发明提供了一种异构数据实时同步方法、装置、设备和存储介质,解决了现有技术中的数据同步方式缺乏通用性,同步效率较低,且无法实现快速续存的技术问题。本发明提供的一种异构数据实时同步方法,涉及抽取线程、写入线程和多个源数据库,所述方法包括:响应于用户输入的数据同步请求,通过所述抽取线程从所述源数据库中并行提取增量数据;通过所述抽取线程对所述增量数据执行序列化解析操作,生成中间数据并写入中间数据库;通过所述写入线程从所述中间数据库中并行获取所述中间数据;通过所述写入线程对所述中间数据执行反序列化解析操作和幂等操作,得到待写入数据;通过所述写入线程将所述待写入数据串行写入到目标数据库。可选地,所述响应于用户输入的数据同步请求,通过所述抽取线程从所述源数据库中并行提取增量数据的步骤,包括:响应于用户输入的数据同步请求,通过所述抽取线程实时监听所述源数据库是否产生增量日志;当所述源数据库产生增量日志时,通过所述抽取线程从所述源数据库中并行提取所述增量日志对应的待过滤数据;对所述待过滤数据按照预定过滤规则执行数据过滤操作,得到所述增量数据。可选地,还包括:当所述待过滤数据提取中断时,通过所述抽取线程检测所述待过滤数据的数据传输断点;以所述数据传输断点为起点,通过所述抽取线程从所述源数据库中重新提取所述待过滤数据。可选地,所述中间数据库为kafka数据库,所述中间数据携带有递增标识,所述通过所述抽取线程对所述增量数据执行序列化解析操作,生成中间数据并写入中间数据库的步骤,包括:通过所述抽取线程将所述增量数据的原始数据格式转换为json格式,得到中间数据;通过所述抽取线程将所述中间数据写入到kafka数据库,并接收所述kafka数据库依据所述递增标识返回的确认收到消息。可选地,所述数据同步请求还携带有分片表和多个分片键,每个所述分片键具有对应的写入线程,所述通过所述写入线程将所述待写入数据串行写入到目标数据库的步骤,包括:依据所述分片表,将所述待写入数据中的每一行数据通过与所述分片键对应的写入线程串行写入到目标数据库。可选地,还涉及状态线程和协调线程,所述方法还包括:通过所述状态线程实时监控所述抽取线程的抽取线程状态;通过所述协调线程定时接收所述抽取线程状态和所述写入线程的写入线程状态;当所述抽取线程状态为断开时,通过所述状态线程检测第一断开位置,在所述第一断开位置重新调用新的抽取线程;当所述写入线程状态为断开时,通过所述协调线程检测第二断开位置,在所述第二断开位置重新调用新的写入线程。可选地,所述方法还包括:比较所述待写入数据的行数与所述增量数据的行数;当所述待写入数据的行数与所述增量数据的行数不相等时,返回所述通过所述抽取线程对所述增量数据执行序列化解析操作,生成中间数据并写入中间数据库的步骤;若所述待写入数据的行数与所述增量数据的行数不相等的次数大于预设失败阈值,则输出告警信号。本发明还提供了一种异构数据实时同步装置,包括多个抽取线程和多个写入线程;所述抽取线程包括:增量数据提取模块,用于响应于用户输入的数据同步请求,从所述源数据库中并行提取增量数据;中间数据写入模块,用于对所述增量数据执行序列化解析操作,生成中间数据并写入中间数据库;所述写入线程包括中间数据获取模块,用于从所述中间数据库中并行获取所述中间数据;待写入数据生成模块,用于对所述中间数据执行反序列化解析操作和幂等操作,得到待写入数据;写入模块,用于将所述待写入数据串行写入到目标数据库。本发明还提供了一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述任一项所述的异构数据实时同步方法的步骤。本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被所述处理器执行时实现如上述任一项所述的异构数据实时同步方法。从以上技术方案可以看出,本发明具有以下优点:通过响应于用户输入的数据同步请求,通过抽取线程从源数据库中提取增量数据,并对增量数据执行序列化解析操作,生成中间数据存储到中间数据库;再通过写入进程从中间数据库并行获取中间数据,在进行反序列化操作和幂等操作后,将得到的待写入数据串行写入到目标数据库,从而提供具备通用性的数据同步方式,有效提高异构数据同步的效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。图1为本发明实施例提供的一种异构数据实时同步方法的步骤流程图;图2为本发明可选实施例提供的一种异构数据实时同步方法的步骤流程图;图3为本发明实施例提供的一种异构数据实时同步方法的流程示意图;图4为本发明实施例提供的一种异构数据实时同步装置的功能结构示意图;图5为本发明实施例提供的数据同步装置向目标库传输的流程示意图;图6为本发明实施例提供的数据同步装置向目标库的多个数据表传输的流程示意图;图7为本发明可选实施例提供的一种异构数据实时同步装置的结构框图;图8为本发明另一实施例提供的一种异构数据实时同步流程图;图9为本发明实施例提供的一种异构数据实时同步装置的结构框图。具体实施方式在企业内部数据库实时同步的使用场景中,通常数据源端和目标端类型多种多样,如oracle、mysql、postgresql、gp、hbase、hdfs等;数据共享中间环节过多,制约系统性能优化;资源不集约,同样数据在系统间重复搬运,并多处存放。为了实现统一纳管,集中运营目的,就需要设计提供一组面向企业业务运营及支撑,可对外提供标准化服务、且相对独立的服务,具备高内聚的特性,且中心间低耦合,协同形成一个完整的业务流程。为此本发明实施例提供了一种异构数据实时同步方法、装置、设备和存储介质,用于解决现有技术中的数据同步方式缺乏通用性,同步效率较低,且无法实现快速续存的技术问题。mysql是一种开放源代码的关系型数据库管理系统(rdbms),使用最常用的数据库管理语言--结构化查询语言(sql)进行数据库管理。mysql是开放源代码的,因此任何人都可以在generalpubliclicense的许可下下载并根据个性化的需要对其进行修改。mysql因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,mysql是管理内容最好的选择。oracle数据库系统是美国oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(client/server)或b/s体系结构的数据库之一。比如silverstream就是基于数据库的一种中间件。oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了oracle知识,便能在各种类型的机器上使用它。oracle数据库最新版本为oracledatabase19c。oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如oraclemultitenant可快速整合多个数据库,而automaticdataoptimization和heatmap能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得oracle数据库12c成为私有云和公有云部署的理想平台。postgresql(pg)是一个功能强大的开源对象关系型数据库系统,他使用和扩展了sql语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。postgresql的起源可以追溯到1986年,作为加州大学伯克利分校postgres项目的一部分,并且在核心平台上进行了30多年的积极开发。hbase是一个分布式的、面向列的开源数据库,该技术来源于faychang所撰写的google论文“bigtable:一个结构化数据的分布式存储系统”。就像bigtable利用了google文件系统(filesystem)所提供的分布式数据存储一样,hbase在hadoop之上提供了类似于bigtable的能力。hbase是apache的hadoop项目的子项目。hbase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是hbase基于列的而不是基于行的模式。hadoop分布式文件系统(hdfs)是指被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统(distributedfilesystem)。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。hdfs是一个高度容错性的系统,适合部署在廉价的机器上。hdfs能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。hdfs放宽了一部分posix约束,来实现流式读取文件系统数据的目的。hdfs在最开始是作为apachenutch搜索引擎项目的基础架构而开发的。hdfs是apachehadoopcore项目的一部分。为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。请参阅图1,图1为本发明实施例提供的一种异构数据实时同步方法的步骤流程图。本发明提供的一种异构数据实时同步方法,涉及抽取线程、写入线程和多个源数据库,所述方法包括:步骤101,响应于用户输入的数据同步请求,通过所述抽取线程从所述源数据库中并行提取增量数据;在本发明实施例中,当接收用户输入的数据同步请求后,可以通过复刻多个抽取线程,以多任务并行的方式从所述源数据库中进行增量数据的提取,以获得需要同步的数据。其中,源数据库可以包括但不限于oracle、mysql、postgresql、gp、hbase、hdfs数据库等,本发明实施例对此不作限制。步骤102,通过所述抽取线程对所述增量数据执行序列化解析操作,生成中间数据并写入中间数据库;在获取到增量数据之后,由于增量数据可以是来自不同数据库的异构数据,而为了写入到目标数据库,此时需要对增量数据执行序列化解析操作,以生成中间数据,达到同一数据格式以便后续写入目标数据库的目的。而为了数据的安全性,将所述中间数据存储在中间数据库。步骤103,通过所述写入线程从所述中间数据库中并行获取所述中间数据;而在数据的写入阶段,为了对中间数据进行写入,需要通过多个写入线程从中间数据库中获取中间数据,为了进一步提高获取速率和后续的写入效率,可以通过并行获取的方式获取中间数据。步骤104,通过所述写入线程对所述中间数据执行反序列化解析操作和幂等操作,得到待写入数据;在本发明实施例中,由于中间数据的数据格式是通用的,而各个数据库具有各自对应的数据格式,因此在写入目标数据库之前,还需要对所述中间数据执行反序列化解析操作,以得到目标数据库对应格式的数据,再进行幂等操作,以保证数据的唯一性,从而得到待写入数据。步骤105,通过所述写入线程将所述待写入数据串行写入到目标数据库。在本发明实施例中,响应于用户输入的数据同步请求,通过抽取线程从源数据库中提取增量数据,并对增量数据执行序列化解析操作,生成中间数据存储到中间数据库;再通过写入进程从中间数据库并行获取中间数据,在进行反序列化操作和幂等操作后,将得到的待写入数据串行写入到目标数据库,从而提供具备通用性的数据同步方式,有效提高异构数据同步的效率。请参阅图2,图2为本发明可选实施例提供的一种异构数据实时同步方法的步骤流程图。本发明提供的一种异构数据实时同步方法,涉及抽取线程、写入线程和多个源数据库,所述方法包括:在本发明实施例中,上述步骤101可以替换为以下步骤:步骤201,响应于用户输入的数据同步请求,通过所述抽取线程实时监听所述源数据库是否产生增量日志;在本发明实施例中,接收用户输入的数据同步请求,由于数据同步可能不仅是对一个数据库的数据进行同步,在对多个源数据库进行数据同步时,可以通过多个抽取线程实时监听源数据库是否产生增量日志。在具体实现中,可以通过线程复刻得到多个抽取线程,以多任务并行连接源数据库,利用mysql复制协议复制多个数据同步请求并发送到源数据库,再通过监听数据源(mysqlcluster、oracle、pg等)的物化视图log、logicalwal日志,以确定是否产生增量日志。可选地,若是没有产生增量日志,则说明源数据库并未产生新的数据。步骤202,当所述源数据库产生增量日志时,通过所述抽取线程从所述源数据库中并行提取所述增量日志对应的待过滤数据;当源数据库产生增量日志时,由于数据库所增加的数据并不一定是用户所需要的数据,因此,在获取增量数据之前,还可以通过多个抽取线程从多元数据库中并行提取增量日志对应的待过滤数据。步骤203,对所述待过滤数据按照预定过滤规则执行数据过滤操作,得到所述增量数据。在获取到待过滤数据之后,按照预定过滤规则执行数据过滤操作,以得到增量数据。值得一提的是,所述预定过滤规则可以为按照心跳事件或者轮值rotate事件的方式进行数据过滤。在本发明的一个示例中,所述方法还可以包括以下步骤:当所述待过滤数据提取中断时,通过所述抽取线程检测所述待过滤数据的数据传输断点;以所述数据传输断点为起点,通过所述抽取线程从所述源数据库中重新提取所述待过滤数据。在本发明实施例中,抽取线程会判断增量log的连续性(如gtid的自增属性),以保证抽取过来的增量数据没有缺漏,如果发现不连续,则从断点重新抽取。步骤204,通过所述抽取线程对所述增量数据执行序列化解析操作,生成中间数据并写入中间数据库;可选地,所述中间数据库为kafka数据库,所述中间数据携带有递增标识,所述步骤204可以包括以下步骤:通过所述抽取线程将所述增量数据的原始数据格式转换为json格式,得到中间数据;通过所述抽取线程将所述中间数据写入到kafka数据库,并接收所述kafka数据库依据所述递增标识返回的确认收到消息。在本发明的一个示例中,其中,所述中间数据携带有递增标识;所述预设规则为当所述中间数据写入到所述kafka数据库,所述kafka数据库依据所述递增标识返回确认收到消息到所述抽取线程,通过抽取线程可以检测增量数据的原始数据格式,为便于异构数据的写入,此时可以将原始数据格式转换json格式,以获取json格式的中间数据,再通过抽取线程将中间数据按at-lease-one方式写入到kafka数据库,同时kafka数据库在接收到中间数据后,根据递增标识返回确认收到消息,以检测数据是否有序输入,从而保证数据写入的可靠性。json(javascriptobjectnotation,js对象简谱)是一种轻量级的数据交换格式。它基于ecmascript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得json成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:通过o(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以tb的消息存储也能够保持长时间的稳定性能。高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数百万的消息。支持通过kafka服务器和消费机集群来分区消息。支持hadoop并行数据加载。步骤205,通过所述写入线程从所述中间数据库中并行获取所述中间数据;步骤206,通过所述写入线程对所述中间数据执行反序列化解析操作和幂等操作,得到待写入数据;在本发明实施例中,所述步骤205-206的具体实现过程与上述105-106类似,在此不再赘述。所述反序列化解析操作为对所述中间数据从json转换为目标数据库对应的格式。所述幂等操作指的是在编程中任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“settrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的.更复杂的操作幂等保证是利用唯一交易号(流水号)实现。步骤207,通过所述写入线程将所述待写入数据串行写入到目标数据库。在本发明的另一个示例中,所述数据同步请求还携带有分片表和多个分片键,每个所述分片键具有对应的写入线程,所述步骤207可以包括以下步骤:依据所述分片表,将所述待写入数据中的每一行数据通过与所述分片键对应的写入线程串行写入到目标数据库。在实际操作中,每个数据库节点都有一个抽取线程,这样就保证集群下n个节点有n个并发线程进行抽取和写入kafka;而且为保证消费的并发写入和同一行数据的有序性,以分片键生成一个消费进程,确保分片表的同一行数据能串行化执行。进一步地,本发明实施例还涉及状态线程和协调线程,所述方法还包括:通过所述状态线程实时监控所述抽取线程的抽取线程状态;通过所述协调线程定时接收所述抽取线程状态和所述写入线程的写入线程状态;当所述抽取线程状态为断开时,通过所述状态线程检测第一断开位置,在所述第一断开位置重新调用新的抽取线程;当所述写入线程状态为断开时,通过所述协调线程检测第二断开位置,在所述第二断开位置重新调用新的写入线程。在本发明的另一个示例中,由于抽取线程和写入线程本身都是无状态的,为保证数据抽取和写入的可用性,可以通过抽取线程本地的状态线程实时监控抽取线程的抽取线程状态,例如抽取线程的心跳信息以表示当前线程的进度,为方便用户查阅,可以预定格式写入到本地如kv格式;同时还可以通过协调线程接收定时发送的发送的所述抽取线程状态和所述写入线程的写入线程状态,例如抽取线程和写入线程各自的心跳信息,当协调线程发现有线程出现断开的情况,会在断开的位置重新调用另一相同的线程,从而保证数据同步的正常进行。可选地,所述方法还包括:比较所述待写入数据的行数与所述增量数据的行数;当所述待写入数据的行数与所述增量数据的行数不相等时,返回所述通过所述抽取线程对所述增量数据执行序列化解析操作,生成中间数据并写入中间数据库的步骤;若所述待写入数据的行数与所述增量数据的行数不相等的次数大于预设失败阈值,则输出告警信号。在本发明实施例中,在目标数据库写入待写入数据之后,为保证数据写入的一致性,可以比较待写入数据的行数和增量数据的行数,当两者行数不相等时,说明此时数据写入是出错的,可以通过返回所述通过所述抽取线程对所述增量数据执行序列化解析操作,生成中间数据并写入中间数据库的步骤,重新对增量数据进行写入。同时为了节约数据同步资源,当两者不相等的次数大于预设失败阈值,也就是超过了用户设定的失败次数之后,说明此时系统出现了故障,可以通过输出告警信号,以便于用户及时进行修复。在本发明实施例中,响应于用户输入的数据同步请求,通过抽取线程从源数据库中提取增量数据,并对增量数据执行序列化解析操作,生成中间数据存储到中间数据库;再通过写入进程从中间数据库并行获取中间数据,在进行反序列化操作和幂等操作后,将得到的待写入数据串行写入到目标数据库,从而提供具备通用性的数据同步方式,有效提高异构数据同步的效率。参见图3,图3为本发明实施例提供的一种异构数据实时同步方法的流程示意图;通过变量监听模块1-3对mysql数据源、pgsql数据源、oracle数据源和csv文件进行变量监听,当出现变量数据时传输到内部队列1-4进行数据转换,再经过通道1-3中的一个进行数据过滤、转换和加密后,按需写入到mysql数据源、pg数据源、oracle数据源、hbase或hdfs。参见图4,图4为本发明实施例提供的一种异构数据实时同步装置的功能结构示意图;其中包括数据开放模块、数据加工模块、数据存贮模块、数据汇聚模块和运营管理模块;数据开放模块包括文件下载、文件共享、数据推送、变更日志订阅等功能;数据加工模块包括订阅文件生成、订阅消息处理、数据纠错、数据快照和数据清理等功能;数据存贮模块包括文件数据、分布式数据库和元数据等存储子模块;数据汇聚模块包括文件数据、批量汇聚和数据稽核等功能,文件数据功能包括分布式数据库和事件消息单元,批量汇聚功能包括ftp文件和db导入单元,数据稽核包括记录数稽核和字段稽核等单元;运营管理模块包括数据源管理、通道管理、稽核管理、订阅管理和安全审核等功能。参见图5,图5为本发明实施例提供的数据同步装置向目标库传输的流程示意图,其中通过数据同步装置向目标库1-n,经过容错处理后,发送已经转换了目标库数据格式的数据。参见图6,图6为本发明实施例提供的数据同步装置向目标库的多个数据表传输的流程示意图,其中通过数据同步装置向目标库中的目标表1-n,经过容错处理后,发送已经转换了目标表数据格式的数据。参见图7,图7为本发明可选实施例提供的一种异构数据实时同步装置的结构框图,其中包括实时采集部分和数据存贮部分,实时采集部分包括了canal、rest、安全reader、kafka、dbwriter、文件writer、hbase-writer和安全writer等子模块,数据存贮部分包括hive、hbase、hadoop和mysql等开源数据库。参见图8,图8示出了本发明另一实施例提供的异构数据实时同步流程图,其中包括数据源、生产链路、消息队列、消费链路和目标库。在生产链路中,通过生产进程发送dump请求到mysqlcluster,接收mysqlcluster返回的binlog进行实时监听,同时还实时监听oracle的物化视图log和pg的wal2json数据;同时生产进程通过fork出抽取子线程,并由状态上报线程进行监控;再依次通过解析、数据连续性检测然后写入到消息队列的kafka中间数据库中;在消费链路中,通过消费进程获取kafka中间数据库的中间数据,进行解析后经hash并发线程写入到目标库中的文件数据,在写入之前还经过幂等改造,也就是幂等操作;同时消费进程通过fork出写入子线程,由协调线程进行监控;数据源和目标库之间还有增量写入检验过程,用于检验目标库写入的数据与从数据源提取的增量数据是否一致;还包括全量定期检验过程,用于定期检验目标库和数据源之间的数据量是否一致。请参阅图9,图9为本发明实施例提供的一种异构数据实时同步装置的步骤流程图。本发明提供的一种异构数据实时同步装置,包括多个抽取线程和多个写入线程;所述抽取线程包括:增量数据提取模块901,用于响应于用户输入的数据同步请求,从所述源数据库中并行提取增量数据;中间数据写入模块902,用于对所述增量数据执行序列化解析操作,生成中间数据并写入中间数据库;所述写入线程包括中间数据获取模块903,用于从所述中间数据库中并行获取所述中间数据;待写入数据生成模块904,用于对所述中间数据执行反序列化解析操作和幂等操作,得到待写入数据;写入模块905,用于将所述待写入数据串行写入到目标数据库。可选地,所述增量数据提取模块901包括:增量日志监听子模块,用于响应于用户输入的数据同步请求,实时监听所述源数据库是否产生增量日志;待过滤数据提取子模块,用于当所述源数据库产生增量日志时,从所述源数据库中并行提取所述增量日志对应的待过滤数据;增量数据生成子模块,用于对所述待过滤数据按照预定过滤规则执行数据过滤操作,得到所述增量数据。可选地,所述抽取线程还包括:数据传输断点判断模块,用于当所述待过滤数据提取中断时,检测所述待过滤数据的数据传输断点;重新提取模块,用于以所述数据传输断点为起点,从所述源数据库中重新提取所述待过滤数据。可选地,所述中间数据库为kafka数据库,所述中间数据携带有递增标识,所述中间数据写入模块902包括:中间数据转换子模块,用于将所述增量数据的原始数据格式转换为json格式,得到中间数据;中间数据写入子模块,用于通过所述抽取线程将所述中间数据写入到kafka数据库,并接收所述kafka数据库依据所述递增标识返回的确认收到消息。可选地,所述数据同步请求还携带有分片表和多个分片键,每个所述分片键具有对应的写入线程,所述写入模块905包括:写入子模块,用于依据所述分片表,将所述待写入数据中的每一行数据通过与所述分片键对应的写入线程串行写入到目标数据库。可选地,所述装置还包括状态线程和协调线程;所述状态线程包括:抽取线程监控模块,用于实时监控所述抽取线程的抽取线程状态;第一调用模块,用于当所述抽取线程状态为断开时,检测第一断开位置,在所述第二断开位置重新调用新的抽取线程;所述协调线程包括:线程状态定时监控模块,用于定时接收所述抽取线程状态和所述写入线程的写入线程状态;第二调用模块,用于当所述写入线程状态为断开时,检测第二断开位置,在所述第二断开位置重新调用新的写入线程。可选地,所述装置还包括:比较模块,用于比较所述待写入数据的行数与所述增量数据的行数;返回模块,用于当所述待写入数据的行数与所述增量数据的行数不相等时,返回所述通过所述抽取线程对所述增量数据执行序列化解析操作,生成中间数据并写入中间数据库的步骤;告警输出模块,用于若所述待写入数据的行数与所述增量数据的行数不相等的次数大于预设失败阈值,则输出告警信号。本发明实施例还提供了一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述任一实施例所述的异构数据实时同步方法的步骤。本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被所述处理器执行时实现如上述任一实施例所述的异构数据实时同步方法。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1