异构数据源之间的数据还原方法、装置和计算机设备制造方法及图纸

技术编号:33534969 阅读:14 留言:0更新日期:2022-05-19 02:13
本发明专利技术提供了一种异构数据源之间的数据还原方法、装置和计算机设备,方法包括:Source端从数据源采集日志信息,基于日志信息得到数据还原框架内部的数据结构,并将数据结构传递给FlatMap算子;FlatMap算子将数据结构转化为CDC实时数据;FlatMap算子对CDC实时数据进行中间处理,并将处理后的CDC实时数据发送至Sink端;Sink端消费处理后的CDC实时数据,以对Sink端的数据进行还原。由此,在Source和Sink的之间数据流中添加了FlatMap算子,在FlatMap算子对数据进行中间处理后进行数据还原的操作,有助于实现真正的数据还原。有助于实现真正的数据还原。有助于实现真正的数据还原。

【技术实现步骤摘要】
异构数据源之间的数据还原方法、装置和计算机设备


[0001]本专利技术涉及计算机
,具体涉及一种异构数据源之间的数据还原方法、一种异构数据源之间的数据还原装置和一种计算机设备。

技术介绍

[0002]目前绝大部分的实时采集工具仅仅只能通过采集日志,获取数据源操作日志即日志数据,发送到KAFKA等数据源中,做到日志的同步,但无法做到异构数据源之间的数据还原。
[0003]比如mysql中执行update table set c1=

b

where

c2

=2andc1=

a

目前相关技术中的binlog同步工具解析的数据为:c1字段before值(操作前的值)为a,after值(操作后的值)为b,c2字段before和after字段值是2,在Sink端时只能将这种日志数据写入对应的表中,即向目标端(Sink端)插入一条binlog日志的记录,记录某时某刻进行了一次Update(更新)操作,操作前的值是什么,操作后的值是什么,而不能达到数据真正的异构数据源之间的还原。

技术实现思路

[0004]本专利技术旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本专利技术的第一个目在于提出一种异构数据源之间的数据还原方法,在Source和Sink的之间数据流中添加了FlatMap算子,在FlatMap算子对数据进行中间处理后进行数据还原的操作,有助于实现真正的数据还原。/>[0005]本专利技术的第二个目的在于提出一种异构数据源之间的数据还原装置。
[0006]本专利技术的第三个目的在于提出一种计算机设备。
[0007]为达到上述目的,本专利技术第一方面实施例提出了一种异构数据源之间的数据还原方法,包括:
[0008]Source端从数据源采集日志信息,基于所述日志信息得到数据还原框架内部的数据结构,并将所述数据结构传递给FlatMap算子;
[0009]FlatMap算子将所述数据结构转化为CDC(Change Data capture,变更数据捕获)实时数据;
[0010]所述FlatMap算子对所述CDC实时数据进行中间处理,并将处理后的CDC实时数据发送至Sink端;
[0011]所述Sink端消费所述处理后的CDC实时数据,以对所述Sink端的数据进行还原。
[0012]另外,根据本专利技术上述实施例提出的异构数据源之间的数据还原方法还可以具有如下附加的技术特征:
[0013]根据本专利技术的一个实施例,Source端从数据源采集日志信息,基于所述日志信息得到数据还原框架内部的数据结构,包括:
[0014]根据数据源信息连到数据源;
[0015]通过数据源的API(Application Programming Interface,应用程序编程接口)获取对应的日志信息;
[0016]解析所述日志信息,以得到解析后的值;
[0017]根据所述解析后的值进行封装,以得到数据还原框架内部的数据结构。
[0018]根据本专利技术的一个实施例,所述FlatMap算子对所述CDC实时数据进行中间处理,并将处理后的CDC实时数据发送至Sink端,包括:
[0019]确定所述CDC实时数据属于DDL(Data Definition Language,数据定义语言)操作数据或者DML(Data Manipulation Language,数据操作语言)操作数据;
[0020]如果所述CDC实时数据属于所述DDL操作数据,则将所述DDL操作数据存储到中间存储介质中;
[0021]如果所述CDC实时数据属于DML操作数据,则判断所述DML操作数据是否需要阻塞;
[0022]如果所述DML操作数据需要阻塞,则将所述DML操作数据存储到中间存储介质中;
[0023]获取所述DML操作数据的库名和表名;
[0024]根据所述DML操作数据的库名和表名将所述DML操作数据划分给对应的任务队列;
[0025]通过监控线程判断存储在所述中间存储介质的所述DDL操作数据对应的DDL语句是否已被执行;
[0026]如果所述DDL语句已被执行,则将所述DDL操作数据删除;
[0027]将所述DML操作数据发送至Sink端。
[0028]根据本专利技术的一个实施例,判断所述DML操作数据是否需要阻塞,包括:
[0029]判断所述中间存储介质中的数据表对应的DDL处理是否未完成;
[0030]判断所述中间存储介质中的数据表对应的DML处理是否未完成;
[0031]在所述DDL处理未完成或者所述DML处理未完成时,确定所述CDC实时数据需要阻塞。
[0032]根据本专利技术的一个实施例,通过监控线程判断存储在所述中间存储介质的所述DDL操作数据对应的DDL语句是否已被执行,包括:
[0033]监控线程对存储在所述中间存储介质的所述DDL操作数据的状态进行监控,在监控到所述DDL操作数据的状态为已执行时,确定所述DDL操作数据对应的DDL语句已被执行,其中,所述DDL操作数据的状态是用户在所述Sink端执行所述DDL操作数据对应的DDL语句后更新的。
[0034]根据本专利技术的一个实施例,所述Sink端消费所述处理后的CDC实时数据,以对所述Sink端的数据进行还原,包括:
[0035]判断当前任务是否已开启数据还原功能;
[0036]如果当前任务未开启数据还原功能,则执行数据同步动作,以进行所述DML操作数据的写入;如果当前任务已开启数据还原功能,则确定所述DML操作数据的操作类型;
[0037]调用所述操作类型对应的类型执行器执行还原动作。
[0038]根据本专利技术的一个实施例,所述DML操作数据的操作类型,包括:插入、更新和删除,所述类型执行器包括删除执行器、更新执行器和插入执行器。
[0039]为实现上述目的,本专利技术第二方面实施例提出了一种异构数据源之间的数据还原装置,包括:
[0040]采集模块,用于从数据源采集日志信息,基于所述日志信息得到数据还原框架内部的数据结构;
[0041]转化模块,用于通过FlatMap算子将所述数据结构转化为CDC实时数据;
[0042]处理模块,用于通过FlatMap算子对所述CDC实时数据进行中间处理;
[0043]还原模块,用于消费所述处理后的CDC实时数据,以对数据进行还原。
[0044]为实现上述目的,本专利技术第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本专利技术第一方面实施例提出的异构数据源之间的数据还原方法。
[0045]本专利技术的技术方案,在Source和Sink的之间数据流中添加了FlatMap算子,在FlatMap算子对数据进行本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种异构数据源之间的数据还原方法,其特征在于,包括:Source端从数据源采集日志信息,基于所述日志信息得到数据还原框架内部的数据结构,并将所述数据结构传递给FlatMap算子;FlatMap算子将所述数据结构转化为CDC实时数据;所述FlatMap算子对所述CDC实时数据进行中间处理,并将处理后的CDC实时数据发送至Sink端;所述Sink端消费所述处理后的CDC实时数据,以对所述Sink端的数据进行还原。2.根据权利要求1所述的异构数据源之间的数据还原方法,其特征在于,Source端从数据源采集日志信息,基于所述日志信息得到数据还原框架内部的数据结构,包括:根据数据源信息连到数据源;通过数据源的API获取对应的日志信息;解析所述日志信息,以得到解析后的值;根据所述解析后的值进行封装,以得到数据还原框架内部的数据结构。3.根据权利要求1所述的异构数据源之间的数据还原方法,其特征在于,所述FlatMap算子对所述CDC实时数据进行中间处理,并将处理后的CDC实时数据发送至Sink端,包括:确定所述CDC实时数据属于DDL操作数据或者DML操作数据;如果所述CDC实时数据属于所述DDL操作数据,则将所述DDL操作数据存储到中间存储介质中;如果所述CDC实时数据属于DML操作数据,则判断所述DML操作数据是否需要阻塞;如果所述DML操作数据需要阻塞,则将所述DML操作数据存储到中间存储介质中;获取所述DML操作数据的库名和表名;根据所述DML操作数据的库名和表名将所述DML操作数据划分给对应的任务队列;通过监控线程判断存储在所述中间存储介质的所述DDL操作数据对应的DDL语句是否已被执行;如果所述DDL语句已被执行,则将所述DDL操作数据删除;将所述DML操作数据发送至Sink端。4.根据权利要求3所述的异构数据源之间的数据还原方法,其特征在于,判断所述DML操作数据是否需要阻塞,包括:判断所述中间存储介质中的数据表对应的DDL处理是否未完成;判断所述中间存储介质中...

【专利技术属性】
技术研发人员:杨槐陈吉平闵佳
申请(专利权)人:杭州玳数科技有限公司
类型:发明
国别省市:

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

1