CN110297866A - 基于日志分析的数据同步方法及数据同步装置 - Google Patents
基于日志分析的数据同步方法及数据同步装置 Download PDFInfo
- Publication number
- CN110297866A CN110297866A CN201910418761.1A CN201910418761A CN110297866A CN 110297866 A CN110297866 A CN 110297866A CN 201910418761 A CN201910418761 A CN 201910418761A CN 110297866 A CN110297866 A CN 110297866A
- Authority
- CN
- China
- Prior art keywords
- operation log
- autoincrementing operation
- data
- autoincrementing
- log
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000001360 synchronised effect Effects 0.000 claims abstract description 23
- 230000033001 locomotion Effects 0.000 claims abstract description 19
- 239000000284 extract Substances 0.000 claims abstract description 7
- 230000004044 response Effects 0.000 claims abstract description 4
- 238000012546 transfer Methods 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007306 turnover Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000005086 pumping Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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
Abstract
本发明提供一种基于日志分析的数据同步方法及数据同步装置,所述方法包括:响应于目标数据库的数据同步指令,抽取源数据库中的增量操作日志;获取所述增量操作日志的标识值,所述标识值唯一确定与所述增量操作日志相对应的源记录;将具有相同标识值的所述增量操作日志顺序存放至中转空间;其中,所述中转空间是具有固定物理地址的存储区域;从所述中转空间顺序读取所述增量操作日志,根据所述增量操作日志对目标数据库进行数据同步。本发明对增量操作日志进行标识,将具有相同标识值的增量操作日志存储到同一个分区,可以保证目标数据库从该分区中读取的增量操作日志是一系列完整连贯的操作动作,从而实现目标数据库与源数据库之间的高度统一。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种通过抽取数据库日志的方式实现源数据库与目标数据库之间的数据同步的方法、装置、计算机设备及存储介质。
背景技术
目前,采用日志文件实现源数据库和目标数据库之间的数据同步已经得到了普遍应用,其原理是将日志文件从源数据库传输到目标数据库,然后在目标数据库上应用这些文件,从而使目标数据库与源数据库保持同步。然而随着用户的迅速增长和数据量的不断扩大,直接访问数据库会使其越来越不堪重负,这种情况下业内比较认可的做法是引入分布式流数据管理平台如kafka,将从源数据库中抽取到的日志文件放入kafka消息队列,等待目标数据库从kafka消息队列中对日志文件进行消费。
作为一种分布式发布订阅消息系统,Kafka会将特定主题的所有消息(例如数据库日志)均匀分布到不同的分区中,以实现负载均衡和水平扩展,这里的分区指的是事先划分好的具有特定物理地址的存储区域。然而数据库的多条操作日志记录之间很可能具有关联性,例如针对某条数据记录在不同时刻执行了不同的操作,如果具有关联性的日志记录被存储到了不同的分区中,那么后续目标数据库在消费某一分区的日志消息时很可能会因为无法获得完整的操作日志轨迹而造成数据同步的失败。
因此,如何解决消息的分布式存储和保持被存储消息的关联性之间的矛盾,成为本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种基于日志分析的数据同步方法、装置、计算机设备及存储介质,用于解决现有技术存在的问题。
为实现上述目的,本发明提供一种基于日志分析的数据同步方法,包括以下步骤:
响应于目标数据库的数据同步指令,抽取源数据库中的增量操作日志;
获取所述增量操作日志的标识值,所述标识值唯一确定与所述增量操作日志相对应的源记录;
将具有相同标识值的所述增量操作日志顺序存放至中转空间;其中,所述中转空间是具有固定物理地址的存储区域;
从所述中转空间顺序读取所述增量操作日志,根据所述增量操作日志对目标数据库进行数据同步。
进一步地,所述获取所述增量操作日志的标识值的步骤包括:
获取所述增量操作日志中的主键;
对所述主键进行哈希变换以得到所述标识值。
进一步地,所述根据所述增量操作日志对目标数据库进行数据同步的步骤包括:
获取所述增量操作日志中的操作动作;
获取目标数据库中与所述源记录相对应的目标记录;
对所述目标记录执行所述操作动作。
进一步地,所述将具有相同标识值的所述增量操作日志顺序存放至中转空间的步骤包括:
将具有相同的第一标识值的第一增量操作日志顺序存放至第一中转空间,以及
将具有相同的第二标识值的第二增量操作日志顺序存放至第二中转空间;
所述第一中转空间和所述第二中转空间分别具有不同的物理存储地址。
为实现上述目的,本发明还提供一种基于日志分析的数据同步装置,包括:
日志抽取模块,适用于响应目标数据库的数据同步指令,抽取源数据库中的增量操作日志;
标识值获取模块,适用于获取所述增量操作日志的标识值,所述标识值唯一确定与所述增量操作日志相对应的源记录;
中转存放模块,适用于将具有相同标识值的所述增量操作日志顺序存放至中转空间;其中,所述中转空间是具有固定物理地址的存储区域;
同步模块,适用于从所述中转空间顺序读取所述增量操作日志,根据所述增量操作日志对目标数据库进行数据同步。
进一步地,所述标识值获取模块包括:
主键获取模块,适用于获取所述增量操作日志中的主键;
哈希变换模块,适用于对所述主键进行哈希变换以得到所述标识值。
进一步地,所述同步模块包括:
操作动作获取模块,适用于获取所述增量操作日志中的操作动作;
目标记录获取模块,适用于获取目标数据库中与所述源记录相对应的目标记录;
执行模块,适用于对所述目标记录执行所述操作动作。
进一步地,所述中转存放模块包括:
第一中转模块,适用于将具有相同的第一标识值的第一增量操作日志顺序存放至第一中转空间;
第二中转模块,适用于将具有相同的第二标识值的第二增量操作日志顺序存放至第二中转空间;
其中,所述第一中转空间和所述第二中转空间分别具有不同的物理存储地址。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的基于日志分析的数据同步方法、装置、计算机设备及计算机可读存储介质,通过抽取数据库增量操作日志的方式实现源数据库与目标数据库之间的高度一致性。本发明在抽取源数据库中的增量操作日志的基础上,按照增量操作日志中的关键字段对增量操作日志进行标识,将具有相同标识值的增量操作日志存储到同一个分区,如此可以保证目标数据库从该分区中读取的增量操作日志是一系列完整连贯的操作动作,从而保证将上述增量操作日志的动作应用于目标数据库中即可实现目标数据库与源数据库之间的高度统一。
附图说明
图1为本发明的数据同步方法实施例一的流程图;
图2为本发明的数据同步装置实施例一的程序模块示意图;
图3为本发明的数据同步装置实施例一的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的大数据平台的数据同步方法、装置、计算机设备及存储介质,通过抽取数据库增量操作日志的方式实现源数据库与目标数据库之间的高度一致性。本发明在抽取源数据库中的增量操作日志的基础上,按照增量操作日志中的关键字段对增量操作日志进行标识,将具有相同标识值的增量操作日志存储到同一个分区,如此可以保证目标数据库从该分区中读取的增量操作日志是一系列完整连贯的操作动作,从而保证将上述增量操作日志的动作应用于目标数据库中即可实现目标数据库与源数据库之间的高度统一。
实施例一
请参阅图1,本实施例提出一种基于日志分析的数据同步方法,具体包括以下步骤:
S1:响应于数据同步指令,抽取源数据库中的增量操作日志。
本发明适用于不同数据系统之间的数据同步业务,例如总经销商的运营中心需要与下游各个卖场的营业额进行数据同步,银行总行的数据中心与各分行储蓄金额进行数据同步等等,其中上述各个卖场的营业额和各分行储蓄金额可以作为源数据库的数据,而总经销商的运营中心和银行总行的数据中心则可以作为目标数据库,将源数据库的数据完整无误地迁移至目标数据库即为数据同步。
数据同步可以包括全量同步和增量同步。在大数据运用场景中,由于源数据库中的上游数据每天都在变化着,在需要用这些数据的下游目标数据库需要每天刷新这些变化的数据,当数据量很小的情况下,简单粗暴的方式就是每次全量更新数据,但随着业务的增长,数据量成几何方式增长时(达到亿级别甚至更多),每次的更新工作将是耗时耗力的,也是业务方无法忍受的。此时就需要变全量同步为增量同步。所谓增量同步就是只同步两个数据库之间有差异的部分,本发明通过抽取数据库操作日志的方式来实现增量同步。
本发明提出基于日志分析的数据同步方法,通过分析源数据库系统的事务日志来判断、检测增量数据。当对源数据库中的数据表进行delete、insert、update操作时,变化的数据、操作类型、操作时间等信息会被写入日志文件。当目标数据库进行增量同步时,只需要对源数据库的日志文件进行分析,根据日志记录序列号、操作类型、操作时间、操作对象等筛选条件抽取日志记录,得到最近变化的数据信息,然后再根据这些信息对目标数据库进行相应的数据更新操作。
数据库中的日志文件可以看作是变化操作流,每一条操作都属于并且仅属于事务集中的一个事物。数据同步操作的启动既可以根据预设时间条件定时主动触发,也可以根据用户的要求临时被动触发。当处于定时主动触发模式时,可通过时间触发器监测当前时刻,一旦到达预设时间条件即发出数据同步指令,用以从源数据库中抽取增量操作日志。当处于被动触发模式时,通过接收外界的数据同步指令来开启从源数据库中抽取增量操作日志的动作。通常用户需要的往往是一段时间内数据库产生的有效操作,因此需要抽取的是包含多条增量数据操作的日志记录。
S2:获取所述增量操作日志的标识值,所述标识值唯一确定与所述增量操作日志相对应的源记录。
本步骤用于对抽取到的增量操作日志进行分类处理。数据库的操作日志中一般包含序列号LSN、事物标识TID、操作发生时刻T、操作的数据对象E、操作类型O、新值V以及旧值W等元素,其中序列号LSN唯一标识每一条日志记录,事物标识TID用于标识该操作日志所对应的数据记录,通常TID可以是对应数据记录的主键。
本发明中的标识值用于对增量操作日志进行分类,即确定增量操作日志的执行对象,通常这里的执行对象指的是数据表中确定的一条数据记录。本发明对增量操作日志提取标识值的目的是将针对同一条数据记录的多条操作日志进行分类。本发明中的标识值与操作日志中的事物标识TID有相关性,一般来说,事物标识TID相同的操作日志对应的是同一条数据记录。例如某条操作日志记录中显示的事物标识TID为银行卡号0374,那么就可以认为卡号0374的所有日志操作记录都是针对主键为卡号0374的源数据记录进行的操作。当然并不是所有的TID值都是以数字形式表示的,当TID包括字符、字母、汉字等其他表现形式时,可能难以通过对该值自身进行限定,此时需要对TID值进一步进行处理以得到表示某种共同特征的函数值。
为了便于统计,本发明对操作日志进行数据变换以期明确该操作日志所对应的源数据记录。例如对操作日志中的事物标识TID进行哈希变化后得到哈希值,则将哈希值相同的操作日志归为一类,因其对应的是同一条源数据记录。本领域普通技术人员可以理解,本发明在这里提出的哈希变换仅用于举例而不是对其进行限定,任何能够提取到特征值的方法或者算法都可以应用于本发明的标识值提取过程中。
本发明对操作日志分类是为了按照时间顺序存储不同时刻对同一条源数据记录执行的所有操作,从而将这些所有操作按序应用到目标数据库中的对应数据记录中,达到目标数据库和源数据库中最终数据记录的统一。
优选的,本发明中抽取源数据库中增量操作日志的工具可以选择Oracle GoldenGate(OGG)软件,其是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。本领域普通技术人员可以理解,本发明在这里提到的OGG软件只用于举例而并非限定,本领域技术人员可以根据需要使用现有技术中的任意日志抽取工具。
S3:将具有相同标识值的所述增量操作日志顺序存放至中转空间;其中,所述中转空间是具有固定物理地址的存储区域。
本发明中的中转空间用于临时存储生产方(源数据库)提供的消息(增量操作日志),并且提供消费方(目标数据库)按序消费这些消息(增量操作日志),典型的中转空间可以选择分布式发布订阅消息系统Kafka,除此之外还可以包括Mq消息队列,Redis消息队列等,本发明对此不做限制。以kafka为例,由于是分布式消息系统,因此它在存储消息(本发明中即为增量操作日志)时默认也是按照预先划分的物理存储分区进行分布式平均分配的。例如该消息队列系统针对银行账户余额的主体预先划分了三个物理存储分区,可以理解为三个具有不同物理地址的存储块,其中每个存储块中的存储单元之间具有连续的物理存储地址。那么当提取到三条操作日志时,按照默认的分布式存储方式,应将这三条日志分别存储到三个分区。然而对于需要执行数据同步操作时,由于针对同一条源数据的三种不同的操作被分别存储到了不同的分区,因此在读取这些操作时可能无法区分三中操作的不同执行次序,因此也无法准确重现对原数据的完整执行过程。这种存储方式显然是不合理的。
例如针对某条客户的存款数据记录,抽取到源数据库的相关操作日志包括如下几条:(1)001,0374,13:00,amount,update,1000,2000;(2)002,0374,14:00,amount,update,2000,8000;(3)003,0374,15:00,amount,update,8000,7000。上述三条操作日志显示账号为0374的用户银行卡内余额的变动情况,具体包括:13点时余额由1000元变更为2000元,14点时余额由2000元变更为8000元,15点时余额由8000元变更为7000元。对与目标数据库而言,为了保持与源数据库的高度一致,则需要对相关数据记录按照时间顺序分别执行三次操作,依次为余额从1000元变更为2000元,从2000元变更为8000元,并从8000元变更为7000元。通过以上内容可知,操作日志的存储顺序和读取顺序是非常重要的,只有按序存取并且按序消费上述操作日志信息才可以保证在目标数据库执行正确完整的操作以实现数据同步。然而,如果将这三条操作日志分别存储到不同的存储分区,那么目标数据库在读取操作日志时将无法完整得到该条数据记录的操作轨迹,因此难以实现正确完整的数据同步。
在已经通过步骤S2获得了日志操作记录的标识值的基础上,本发明将具有相同标识值的所有增量操作日志按时间顺序存放到某存储分区。目标数据库从该存储分区按序依次消费操作日志,可以保证顺利地实现数据同步。
需要说明的是,当多条操作日志分别指向不同的源数据记录时,本发明仍然确保属于同一源数据记录的多条操作日志存储在同一个分区。具体执行时,可以将具有不同标识值的两组操作日志分别存放在两个不同的分区,也可以将具有不同标识值的两组操作日志同时存放在同一个分区中。但无论如何存储,具有同一个标识值的所有操作日志必须被存储在相同的分区中。
例如,根据存款数据记录,抽取到源数据库的4条相关数据记录:(1)001,0374,13:00,amount,update,1000,2000;(2)002,0374,14:00,amount,update,2000,8000;(3)003,0437,09:00,amount,update,0,5000;(4)004,0437,12:00,amount,update,5000,16000.
上述四条数据记录中,第(1)条记录和第(2)条记录具有相同的第一标识值“0374”,代表账号为“0374”的用户银行卡;第(3)条记录和第(4)条记录具有相同的第二标识值“0437”,代表账号为“0437”的用户银行卡。因此,根据本发明的方法,将具有相同的第一标识值“0374”的第(1)条记录和第(2)条记录存储到第一分区,将具有相同的第二标识值“0437”的第(3)条记录和第(4)条记录存储到第二分区,其中上述第一分区和第二分区分别具有不同的物理存储地址。
S4:从所述中转空间顺序读取所述增量操作日志,根据所述增量操作日志对目标数据库进行数据同步。
本发明所述的顺序读取增量操作日志,指的是按照先进先出、后进后出的顺序消费增量操作日志,从而保证正确复制数据操作轨迹。
以上文中的客户存款数据记录为例。针对该数据的操作日志包括三条,那么就需要将这三条按照时间顺序存储在同一分区中,即先存储13:00时余额从1000元变更为2000元的操作日志,再存储14:00时余额从2000元变更为8000元的操作日志,最后存储15:00时余额从8000元变更为7000元的操作日志。而目标数据库读取操作日志时,也会按照同样的顺序进行,依稀详细说明目标数据库读取日志并进行数据同步的过程。
目标数据库从中转空间中取出一条操作日志时,首先需要获取操作日志中的各项参数,包括事物标识、操作类型、操作时间等,事物标识用于确认具体的目标数据记录,操作类型用于确认具体执行了哪些操作,操作时间用于确认操作执行的先后顺序,另外还需要获取新值、旧值等元素,在此不一一列举。本发明中目标数据库进行数据同步的过程就是针对目标数据记录,顺序执行与操作日志相同的操作,这样就可以实现目标数据库和源数据库的一致性。
请继续参阅图2,示出了一种基于日志分析的数据同步装置,在本实施例中,数据同步装置10可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述自动更新方法。本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述数据同步装置10在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
日志抽取模块11,适用于响应目标数据库的数据同步指令,抽取源数据库中的增量操作日志。优选的,本发明中抽取源数据库中增量操作日志的工具可以选择OracleGolden Gate(OGG)软件。
标识值获取模块12,适用于获取所述增量操作日志的标识值,所述标识值唯一确定与所述增量操作日志相对应的源记录。本发明中的标识值用于对增量操作日志进行分类,即确定增量操作日志的执行对象,通常这里的执行对象指的是数据表中确定的一条数据记录。
中转存放模块13,适用于将具有相同标识值的所述增量操作日志顺序存放至中转空间;其中,所述中转空间是具有固定物理地址的存储区域。典型的中转空间可以选择分布式发布订阅消息系统Kafka,除此之外还可以包括Mq消息队列,Redis消息队列等,本发明对此不做限制。
同步模块14,适用于从所述中转空间顺序读取所述增量操作日志,根据所述增量操作日志对目标数据库进行数据同步。本发明所述的顺序读取增量操作日志,指的是按照先进先出、后进后出的顺序消费增量操作日志,从而保证正确复制数据操作轨迹。
进一步地,所述标识值获取模块12包括:
主键获取模块121,适用于获取所述增量操作日志中的主键;
哈希变换模块122,适用于对所述主键进行哈希变换以得到所述标识值。
进一步地,所述同步模块14包括:
操作动作获取模块141,适用于获取所述增量操作日志中的操作动作;
目标记录获取模块142,适用于获取目标数据库中与所述源记录相对应的目标记录;
执行模块143,适用于对所述目标记录执行所述操作动作。
进一步地,所述中转存放模块13包括:
第一中转模块131,适用于将具有相同的第一标识值的第一增量操作日志顺序存放至第一中转空间;
第二中转模块132,适用于将具有相同的第二标识值的第二增量操作日志顺序存放至第二中转空间;
其中,所述第一中转空间和所述第二中转空间分别具有不同的物理存储地址。
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图3所示。需要指出的是,图3仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作系统和各类应用软件,例如实施例一的数据同步装置10的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行数据同步装置10,以实现实施例一的数据同步方法。
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据同步装置10,被处理器执行时实现实施例一的数据同步方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
流程图中或在此以其它方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
本技术领域的普通技术人员可以理解,实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于日志分析的数据同步方法,其特征在于,包括以下步骤:
响应于目标数据库的数据同步指令,抽取源数据库中的增量操作日志;
获取所述增量操作日志的标识值,所述标识值唯一确定与所述增量操作日志相对应的源记录;
将具有相同标识值的所述增量操作日志顺序存放至中转空间;其中,所述中转空间是具有固定物理地址的存储区域;
从所述中转空间顺序读取所述增量操作日志,根据所述增量操作日志对目标数据库进行数据同步。
2.根据权利要求1所述的数据同步方法,其特征在于,所述获取所述增量操作日志的标识值的步骤包括:
获取所述增量操作日志中的主键;
对所述主键进行哈希变换以得到所述标识值。
3.根据权利要求1或2所述的数据同步方法,其特征在于,所述根据所述增量操作日志对目标数据库进行数据同步的步骤包括:
获取所述增量操作日志中的操作动作;
获取目标数据库中与所述源记录相对应的目标记录;
对所述目标记录执行所述操作动作。
4.根据权利要求1所述的数据同步方法,其特征在于,所述将具有相同标识值的所述增量操作日志顺序存放至中转空间的步骤包括:
将具有相同的第一标识值第一增量操作日志顺序存放至第一中转空间,以及
将具有相同的第二标识值的第二增量操作日志顺序存放至第二中转空间;
所述第一中转空间和所述第二中转空间分别具有不同的物理存储地址。
5.一种基于日志分析的数据同步装置,其特征在于,包括:
日志抽取模块,适用于响应目标数据库的数据同步指令,抽取源数据库中的增量操作日志;
标识值获取模块,适用于获取所述增量操作日志的标识值,所述标识值唯一确定与所述增量操作日志相对应的源记录;
中转存放模块,适用于将具有相同标识值的所述增量操作日志顺序存放至中转空间;其中,所述中转空间是具有固定物理地址的存储区域;
同步模块,适用于从所述中转空间顺序读取所述增量操作日志,根据所述增量操作日志对目标数据库进行数据同步。
6.根据权利要求5所述的数据同步装置,其特征在于,所述标识值获取模块包括:
主键获取模块,适用于获取所述增量操作日志中的主键;
哈希变换模块,适用于对所述主键进行哈希变换以得到所述标识值。
7.根据权利要求5或6所述的数据同步装置,其特征在于,所述同步模块包括:
操作动作获取模块,适用于获取所述增量操作日志中的操作动作;
目标记录获取模块,适用于获取目标数据库中与所述源记录相对应的目标记录;
执行模块,适用于对所述目标记录执行所述操作动作。
8.根据权利要求5所述的数据同步装置,其特征在于,所述中转存放模块包括:
第一中转模块,适用于将具有相同的第一标识值的第一增量操作日志顺序存放至第一中转空间;
第二中转模块,适用于将具有相同的第二标识值的第二增量操作日志顺序存放至第二中转空间;
其中,所述第一中转空间和所述第二中转空间分别具有不同的物理存储地址。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910418761.1A CN110297866A (zh) | 2019-05-20 | 2019-05-20 | 基于日志分析的数据同步方法及数据同步装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910418761.1A CN110297866A (zh) | 2019-05-20 | 2019-05-20 | 基于日志分析的数据同步方法及数据同步装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110297866A true CN110297866A (zh) | 2019-10-01 |
Family
ID=68026939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910418761.1A Pending CN110297866A (zh) | 2019-05-20 | 2019-05-20 | 基于日志分析的数据同步方法及数据同步装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297866A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198914A (zh) * | 2019-12-12 | 2020-05-26 | 山西云时代技术有限公司 | 基于oracle数据库归档日志的整库实时数据采集方法 |
CN111241044A (zh) * | 2020-01-08 | 2020-06-05 | 中国联合网络通信集团有限公司 | 搭建异构数据库的方法、装置、设备及可读存储介质 |
CN111241981A (zh) * | 2020-01-07 | 2020-06-05 | 武汉旷视金智科技有限公司 | 视频结构化系统 |
CN111259081A (zh) * | 2020-02-04 | 2020-06-09 | 杭州数梦工场科技有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN111506556A (zh) * | 2020-04-09 | 2020-08-07 | 北京市测绘设计研究院 | 一种多源异构的结构化数据同步方法 |
CN111522897A (zh) * | 2020-05-07 | 2020-08-11 | 福州市勘测院 | 一种ArcSDE、File GDB文件地理数据库间的空间数据增量同步方法 |
CN111767213A (zh) * | 2020-06-18 | 2020-10-13 | 北京同邦卓益科技有限公司 | 数据库检查点的测试方法、装置、电子设备及存储介质 |
CN111782628A (zh) * | 2020-06-11 | 2020-10-16 | 国电南京自动化股份有限公司 | 电力系统实时库动态扩充增量的方法、配置工具和系统 |
CN111858501A (zh) * | 2020-06-02 | 2020-10-30 | 武汉达梦数据库有限公司 | 一种基于日志解析同步的日志读取方法和数据同步系统 |
CN112231274A (zh) * | 2020-10-16 | 2021-01-15 | 京东数字科技控股股份有限公司 | 日志汇总方法、装置、电子设备及存储介质 |
CN112507027A (zh) * | 2020-12-16 | 2021-03-16 | 平安科技(深圳)有限公司 | 基于Kafka的增量数据同步方法、装置、设备及介质 |
CN112527879A (zh) * | 2020-12-15 | 2021-03-19 | 中国人寿保险股份有限公司 | 基于Kafka的实时数据抽取方法及相关设备 |
CN112559611A (zh) * | 2020-12-15 | 2021-03-26 | 中国人寿保险股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112597247A (zh) * | 2020-12-25 | 2021-04-02 | 杭州数梦工场科技有限公司 | 一种数据同步方法及装置 |
CN113449043A (zh) * | 2021-07-21 | 2021-09-28 | 中国人民解放军61932部队 | 数据同步方法、装置、计算机设备和存储介质 |
CN113779048A (zh) * | 2020-06-18 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955970A (zh) * | 2015-11-12 | 2016-09-21 | 中国银联股份有限公司 | 一种基于日志解析的数据库复制方法及装置 |
CN106254094A (zh) * | 2016-07-19 | 2016-12-21 | 中国银联股份有限公司 | 一种数据同步方法及系统 |
CN108345617A (zh) * | 2017-01-24 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置以及电子设备 |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
US20190005085A1 (en) * | 2017-06-28 | 2019-01-03 | Dharma Platform, Inc. | Off-line log system |
CN109213817A (zh) * | 2018-08-10 | 2019-01-15 | 杭州数梦工场科技有限公司 | 增量数据抽取方法、装置及服务器 |
-
2019
- 2019-05-20 CN CN201910418761.1A patent/CN110297866A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955970A (zh) * | 2015-11-12 | 2016-09-21 | 中国银联股份有限公司 | 一种基于日志解析的数据库复制方法及装置 |
CN106254094A (zh) * | 2016-07-19 | 2016-12-21 | 中国银联股份有限公司 | 一种数据同步方法及系统 |
CN108345617A (zh) * | 2017-01-24 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置以及电子设备 |
US20190005085A1 (en) * | 2017-06-28 | 2019-01-03 | Dharma Platform, Inc. | Off-line log system |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
CN109213817A (zh) * | 2018-08-10 | 2019-01-15 | 杭州数梦工场科技有限公司 | 增量数据抽取方法、装置及服务器 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198914A (zh) * | 2019-12-12 | 2020-05-26 | 山西云时代技术有限公司 | 基于oracle数据库归档日志的整库实时数据采集方法 |
CN111241981A (zh) * | 2020-01-07 | 2020-06-05 | 武汉旷视金智科技有限公司 | 视频结构化系统 |
CN111241044A (zh) * | 2020-01-08 | 2020-06-05 | 中国联合网络通信集团有限公司 | 搭建异构数据库的方法、装置、设备及可读存储介质 |
CN111241044B (zh) * | 2020-01-08 | 2023-09-19 | 中国联合网络通信集团有限公司 | 搭建异构数据库的方法、装置、设备及可读存储介质 |
CN111259081A (zh) * | 2020-02-04 | 2020-06-09 | 杭州数梦工场科技有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN111506556A (zh) * | 2020-04-09 | 2020-08-07 | 北京市测绘设计研究院 | 一种多源异构的结构化数据同步方法 |
CN111522897B (zh) * | 2020-05-07 | 2022-07-08 | 福州市勘测院有限公司 | 一种ArcSDE、File GDB文件地理数据库间的空间数据增量同步方法 |
CN111522897A (zh) * | 2020-05-07 | 2020-08-11 | 福州市勘测院 | 一种ArcSDE、File GDB文件地理数据库间的空间数据增量同步方法 |
CN111858501A (zh) * | 2020-06-02 | 2020-10-30 | 武汉达梦数据库有限公司 | 一种基于日志解析同步的日志读取方法和数据同步系统 |
CN111858501B (zh) * | 2020-06-02 | 2023-03-28 | 武汉达梦数据库股份有限公司 | 一种基于日志解析同步的日志读取方法和数据同步系统 |
CN111782628A (zh) * | 2020-06-11 | 2020-10-16 | 国电南京自动化股份有限公司 | 电力系统实时库动态扩充增量的方法、配置工具和系统 |
CN111767213A (zh) * | 2020-06-18 | 2020-10-13 | 北京同邦卓益科技有限公司 | 数据库检查点的测试方法、装置、电子设备及存储介质 |
CN111767213B (zh) * | 2020-06-18 | 2024-04-05 | 北京同邦卓益科技有限公司 | 数据库检查点的测试方法、装置、电子设备及存储介质 |
CN113779048A (zh) * | 2020-06-18 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
CN112231274A (zh) * | 2020-10-16 | 2021-01-15 | 京东数字科技控股股份有限公司 | 日志汇总方法、装置、电子设备及存储介质 |
CN112231274B (zh) * | 2020-10-16 | 2024-04-05 | 京东科技控股股份有限公司 | 日志汇总方法、装置、电子设备及存储介质 |
CN112527879A (zh) * | 2020-12-15 | 2021-03-19 | 中国人寿保险股份有限公司 | 基于Kafka的实时数据抽取方法及相关设备 |
CN112559611A (zh) * | 2020-12-15 | 2021-03-26 | 中国人寿保险股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112527879B (zh) * | 2020-12-15 | 2024-04-16 | 中国人寿保险股份有限公司 | 基于Kafka的实时数据抽取方法及相关设备 |
WO2022126974A1 (zh) * | 2020-12-16 | 2022-06-23 | 平安科技(深圳)有限公司 | 基于Kafka的增量数据同步方法、装置、设备及介质 |
CN112507027A (zh) * | 2020-12-16 | 2021-03-16 | 平安科技(深圳)有限公司 | 基于Kafka的增量数据同步方法、装置、设备及介质 |
CN112507027B (zh) * | 2020-12-16 | 2024-04-16 | 平安科技(深圳)有限公司 | 基于Kafka的增量数据同步方法、装置、设备及介质 |
CN112597247A (zh) * | 2020-12-25 | 2021-04-02 | 杭州数梦工场科技有限公司 | 一种数据同步方法及装置 |
CN112597247B (zh) * | 2020-12-25 | 2022-05-31 | 杭州数梦工场科技有限公司 | 一种数据同步方法及装置 |
CN113449043A (zh) * | 2021-07-21 | 2021-09-28 | 中国人民解放军61932部队 | 数据同步方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110297866A (zh) | 基于日志分析的数据同步方法及数据同步装置 | |
CN104657459B (zh) | 一种基于文件粒度的海量数据存储方法 | |
CN102667734B (zh) | 用于检查分层型数据库中的指针的一致性的系统和方法 | |
CN107330003A (zh) | 数据同步方法、系统、存储器及数据同步设备 | |
EP3299972A1 (en) | Efficient query processing using histograms in a columnar database | |
CN108804112A (zh) | 一种区块链落账处理方法及系统 | |
CN105095247B (zh) | 符号数据分析方法和系统 | |
CN110321383A (zh) | 大数据平台数据同步方法、装置、计算机设备及存储介质 | |
CN105045917A (zh) | 一种基于实例的分布式数据恢复方法和装置 | |
CN111694750A (zh) | 一种软件测试环境的构建方法及装置 | |
CN114600094A (zh) | 为数据库架构生成哈希树 | |
CN107665219A (zh) | 一种日志管理方法及装置 | |
CN110457333A (zh) | 数据实时更新方法、装置及计算机可读存储介质 | |
CN105740462A (zh) | 一种支持不同环境之间的数据迁移方法 | |
CN109614270A (zh) | 基于Hbase的数据读写方法、装置、设备及存储介质 | |
CN105786877B (zh) | 一种数据存储方法、系统及查询方法 | |
US9965355B2 (en) | System and method for dynamic collection of system management data in a mainframe computing environment | |
CN105335459B (zh) | 基于xbrl智能报告平台的合并报表数据抽取方法 | |
CN108073658A (zh) | 一种数据同步系统及方法 | |
CN109766313A (zh) | 地质项目数据处理方法、装置及计算机设备 | |
CN102567471B (zh) | 一种基于信息增益计算的海量数据异常侦测方法 | |
CN113434397B (zh) | 任务系统的测试方法、装置、电子设备及存储介质 | |
CN114756685A (zh) | 一种投诉单的投诉风险识别方法及装置 | |
CN111930746A (zh) | 基于离线数据处理的风险交易管控方法、装置及系统 | |
CN114661706A (zh) | 一种基于jlogstash的Clickhouse数据写入插件方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191001 |