CN113449043A - 数据同步方法、装置、计算机设备和存储介质 - Google Patents
数据同步方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113449043A CN113449043A CN202110822595.9A CN202110822595A CN113449043A CN 113449043 A CN113449043 A CN 113449043A CN 202110822595 A CN202110822595 A CN 202110822595A CN 113449043 A CN113449043 A CN 113449043A
- Authority
- CN
- China
- Prior art keywords
- data
- operation log
- target
- target database
- database
- 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 58
- 230000001360 synchronised effect Effects 0.000 claims abstract description 15
- 238000005192 partition Methods 0.000 claims description 42
- 238000012544 monitoring process Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 19
- 238000012217 deletion Methods 0.000 description 11
- 230000037430 deletion Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据同步方法、装置、计算机设备和存储介质。所述方法包括:获取目标数据库上层数据结构对应的操作日志,所述操作日志中记录有与源端数据库中的操作日志同步的数据操作信息;解析所述操作日志,在所述操作日志中确定操作数据;根据所述操作数据,更新目标数据库底层数据结构中的数据,所述目标数据库中更新后的数据与所述源端数据库中的数据一致。采用本方法能够实现目标数据库与源端数据库的数据同步,提高目标数据库数据处理的准确性。
Description
技术领域
本申请涉及数据仓库技术领域,特别是涉及一种数据同步方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的飞速发展,数据信息在日常的工作生活中扮演着至关重要的角色,因此,越来越多的厂家、企业等选择构建数据仓库来实现数据信息的存储和管理。数据仓库(也称为目标数据库)在多个源端数据库中抽取数据,实现与多个源端数据库的数据同步,进而根据数据仓库中的数据信息进行数据处理和应用。
传统的数据仓库的数据同步方式为增量数据抽取的方式,即针对源端数据库中的新增数据进行抽取,以实现源端数据库与目标数据库的数据同步。而对于源端数据库中的删除数据,只能依赖源端数据库提供的删除数据记录,确定目标端数据库中的删除数据。
然而,源端数据库与目标数据库往往并非统一管理,很多源端数据库无法为目标数据库提供删除数据的数据记录,导致目标端数据仓库中存在已删除的数据,数据信息不同步,进而导致数据处理结果不准确。
发明内容
基于此,有必要针对上述技术问题,提供一种数据同步方法、装置、计算机设备和存储介质。
一种数据同步方法,所述方法包括:
获取目标数据库上层数据结构对应的操作日志,所述操作日志中记录有与源端数据库中的操作日志同步的数据操作信息;
解析所述操作日志,在所述操作日志中确定操作数据;
根据所述操作数据,更新目标数据库底层数据结构中的数据,所述目标数据库中更新后的数据与所述源端数据库中的数据一致。
在其中一个实施例中,所述获取目标数据库上层数据结构对应的操作日志之前,所述方法还包括:
监控源端数据库中的数据更新操作,通过数据同步工具,在目标数据库上层数据结构中执行相同的数据更新操作;
将所述数据更新操作写入所述目标数据库上层数据结构的操作日志中。
在其中一个实施例中,所述获取目标数据库上层数据结构对应的操作日志,包括:
监控所述目标数据库上层数据结构中每一操作日志的文件写入过程;
当在预设的时间范围内,所述操作日志的大小保持不变时,确定所述操作日志写入完成,获取所述操作日志。
在其中一个实施例中,所述解析所述操作日志,在所述操作日志中确定操作数据,包括:
解析所述操作日志,根据目标操作标识在所述操作日志中过滤得到目标操作日志;
将所述目标操作日志进行格式转换,得到目标格式的操作日志文件,确定所述目标格式的操作日志文件中的目标格式的操作数据。
在其中一个实施例中,所述操作数据携带时间戳信息,目标数据库底层数据结构的分区表中包含至少一个基于时间标识划分的分区,所述根据所述操作数据,更新目标数据库底层数据结构中的数据,包括:
在所述分区表中,确定与所述时间戳信息相对应的时间标识划分的目标分区,将所述操作数据存储至所述目标分区;所述目标分区还存储有所述时间标识记录的时刻下所述目标数据库底层数据结构的全部数据;
根据所述操作数据,在所述目标分区的全部数据中确定更新数据;
基于确定出的所述更新数据,更新所述目标数据库底层数据结构中的数据。
在其中一个实施例中,所述方法还包括:
将所述操作数据存储至所述目标数据库底层数据结构中的更新记录表中,所述更新记录表用于记录所述目标数据库的数据更新信息。
一种数据同步装置,所述装置包括:
获取模块,用于获取目标数据库上层数据结构对应的操作日志,所述操作日志中记录有与源端数据库中的操作日志同步的数据操作信息;
解析模块,用于解析所述操作日志,在所述操作日志中确定操作数据;
数据同步模块,用于根据所述操作数据,更新目标数据库底层数据结构中的数据,所述目标数据库中更新后的数据与所述源端数据库中的数据一致。
在其中一个实施例中,所述装置还包括:
监控模块,用于监控源端数据库中的数据更新操作,通过数据同步工具,在目标数据库上层数据结构中执行相同的数据更新操作;
更新模块,用于将所述数据更新操作写入所述目标数据库上层数据结构的操作日志中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取目标数据库上层数据结构对应的操作日志,所述操作日志中记录有与源端数据库中的操作日志同步的数据操作信息;
解析所述操作日志,在所述操作日志中确定操作数据;
根据所述操作数据,更新目标数据库底层数据结构中的数据,所述目标数据库中更新后的数据与所述源端数据库中的数据一致。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取目标数据库上层数据结构对应的操作日志,所述操作日志中记录有与源端数据库中的操作日志同步的数据操作信息;
解析所述操作日志,在所述操作日志中确定操作数据;
根据所述操作数据,更新目标数据库底层数据结构中的数据,所述目标数据库中更新后的数据与所述源端数据库中的数据一致。
上述数据同步方法、装置、计算机设备和存储介质,获取目标数据库上层数据结构对应的操作日志,所述操作日志中记录有与源端数据库中的操作进行同步的数据操作信息;解析所述操作日志,在所述操作日志中确定目标操作对应的操作数据;根据所述操作数据,更新目标数据库底层数据结构中的数据,以使所述目标数据库中的数据与所述源端数据库一致。采用本方法,通过操作日志实现目标数据库上层数据结构与源端数据库的数据实时同步,进而监测目标数据库上层数据结构的操作日志,基于操作日志中的操作数据,更新目标数据库底层数据结构中的数据,实现源端数据库与目标数据库的数据同步,保证了应用目标数据库中数据进行数据处理的结果准确性。
附图说明
图1为一个实施例中数据同步方法的流程示意图;
图2为一个实施例中目标数据库与源端数据库间操作日志同步的流程图;
图3为一个实施例中获取目标数据库上层数据结构操作日志步骤的流程图;
图4为一个实施例中确定操作日志中操作数据的步骤的流程图;
图5为一个实施例中根据操作数据进行目标数据库数据更新步骤的流程图;
图6为一个实施例中数据同步方法示例的流程示意图;
图7为一个实施例中数据同步装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
首先,在具体介绍本申请实施例的技术方案之前,先对本申请实施例基于的技术背景或者技术演进脉络进行介绍。通常情况下,在数据仓库技术领域,当前的技术背景是:数据仓库(也即目标端的数据库,简称为目标数据库)中的可进行数据处理和数据应用的数据由多个源端数据库提供,具体的,数据仓库会根据预设的采样周期,定期抽取多个源端数据库的增量数据,对增量数据进行加工处理,将处理后的统一格式的数据存储至数据仓库底层,以用于在基于数据仓库中的数据进行数据处理和应用时,直接调取统一格式的标准化数据。然而,数据仓库只能抽取源端数据库的增量数据,对于源端数据库中的其他数据处理形式的数据,例如,删除数据,无法基于抽取到的增量数据实现对数据仓库中的删除数据进行删除,导致数据仓库中存在删除数据等噪音数据,进而导致基于数据仓库中的数据进行数据处理和应用的结果是不准确的。基于该背景,申请人通过长期的研发以及实验数据的搜集、演示和验证,发现多个源端数据库间存在对于删除数据不做记录或者记录情况不齐的状况,进而如何确定源端数据库的删除数据,实现数据仓库的数据同步,成为目前亟待解决的难题。另外,需要说明的是,本申请中发现需要确定源端数据库中的删除数据以及下述实施例介绍的技术方案,申请人均付出了大量的创造性劳动。
在一个实施例中,如图1所示,提供了一种数据同步方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的***,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤101,获取目标数据库上层数据结构对应的操作日志。
其中,目标数据库上层数据结构中的操作日志记录有与源端数据库中的操作日志同步的数据操作信息。
在实施中,一个分布式***中部署有Hbase数据仓库(也称为目标数据库),该Hbase数据仓库是一个分布式的、面向列的开源数据库。该数据仓库包含多个用于加工和存储数据的数据层(也称为数据结构),例如,一般的数据仓库包括三层,分别为贴源层、加工层和集市层,为了便于理解数据仓库中各层在数据存储中的关系,同时不限定具体的数据仓库的层级数目,本实施例以上层数据结构、中层数据结构和下层数据结构来描述数据仓库中各层级间的逻辑关系,其中的每一数据结构不限于为数据仓库中的一层。
部署分布式目标数据库的任一服务器节点通过数据同步工具实现源端数据库中的操作日志与自身数据库的上层数据结构中的操作日志同步,也即实现了源端数据库中的数据与目标数据库的上层数据结构中的数据一致,进一步只需要将目标数据库上层数据结构中的数据进行数据底层入库存储即可,则获取目标数据库中上层数据结构的操作日志,通过分析上层数据结构的操作日志来实现上层数据结构与底层数据结构间的信息传递。
可选的,多个源端数据库可以有mysql数据库、Oracle数据库等,本申请实施例对于源端数据库的数目和类型不做限定。
步骤102,解析操作日志,在操作日志中确定操作数据。
在实施中,分布式***中的任一服务器节点(也称为数据节点)解析目标数据库上层数据结构中的操作日志(WAL,Write-Ahead-Log,预先日志),在操作日志中确定出对应的操作数据。其中,WAL(操作日志)是Hbase目标数据库中RegionServer(数据节点)在处理数据***和删除操作过程中用来记录操作内容的日志。
步骤103,根据操作数据,更新目标数据库底层数据结构中的数据,目标数据库中更新后的数据与源端数据库中的数据一致。
在实施中,分布式***根据确定出的操作数据,建立该操作数据与目标数据库底层数据结构中存储的原始数据间的关联关系,并基于关联关系在目标数据库底层数据结构中,对原始数据中进行数据更新,使得目标数据库中更新后数据保持与源端数据库中的数据一致。
上述数据同步方法中,获取目标数据库上层数据结构对应的操作日志,操作日志中记录有与源端数据库中的操作日志同步的数据操作信息。解析该操作日志,在操作日志中确定操作数据;根据操作数据,更新目标数据库底层数据结构中的数据,使得目标数据库中更新后的数据与源端数据库中的数据一致。采用本方法,通过触发目标数据库上层数据结构中的操作日志与源端数据库的操作日志保持一致,进而基于目标数据库上层数据结构的操作日志中的操作数据,更新目标数据库底层数据结构中的数据,实现源端数据库与目标数据库底层数据结构中的应用数据保持同步,提高了目标数据库中数据处理和应用的结果准确性。
在一个实施例中,如图2所示,获取目标数据库上层数据结构中的操作日志,实现目标数据库上层数据结构中的数据与底层数据结构中的数据一致之前,目标数据库上层数据结构中的任何数据操作都是基于与多个源端数据库保持一致,从而触发的数据操作,因此,在步骤101之前,该方法还包括以下步骤:
步骤201,监控源端数据库中的数据更新操作,通过数据同步工具,在目标数据库上层数据结构中执行相同的数据更新操作。
在实施中,目标数据库上层数据结构中存储的数据是通过数据实时同步工具(简称为数据同步工具)与多个源端数据库保持数据同步的数据。具体的,当任意源端数据库发生数据更新操作(例如,数据删除操作)时,源端数据库中的源端操作日志均会记录该数据更新操作以及该数据更新操作对应的数据操作信息,从而由数据实时同步工具读取源端操作日志,识别其中的数据更新操作的操作数据信息,并触发目标数据库(即目标端的数据仓库)的上层数据结构进行相同的数据更新操作,例如,在识别到源端数据库发生了删除操作后,触发目标数据库进行相同数据的删除操作。目标数据库根据该删除操作,更新自身上层数据结构中的操作日志,使得上层数据结构中的操作日志与源端数据库的操作日志实时保持同步。
其中,数据更新操作可以为替换数据更新操作,也可以为删除数据更新操作,本申请实施例对于数据更新操作的类型不做限定。
其中,用于监控源端数据库的数据同步工具可以有多种,例如,canal(水渠/管道/沟渠)主要用于源端数据库增量日志解析,提供增量数据订阅和消费,进行数据实时同步的工具。OGG(oracle goldengate,甲骨文)一种基于日志的结构化数据复制软件,能够实现大量交易数据的实时捕捉,变换和投递,实现源端数据库与目标数据库上层数据结构的数据同步。对应不同的源端数据库匹配不同的数据同步工具,例如,源端数据库为mysql数据库,则可以利用canal数据同步工具进行数据更新操作的监控和数据同步。源端数据库为Oracle数据库,则可以利用OGG数据同步工具进行数据更新操作的监控和数据同步。
步骤202,将数据更新操作写入目标数据库上层数据结构的操作日志中。
在实施中,目标数据库上层数据结构中的日志机制会将在目标数据库上层数据结构中发生的任何数据更新操作所产生的操作数据信息写入上层数据结构的操作日志文件中。
本实施例中,通过数据同步工具将源端数据库中发生的数据更新操作同步至目标数据库中,无需统一管理源端数据库的数据更新记录机制,实现源端数据库中的数据与目标数据库的数据保持一致。
在一个实施例中,如图3所示,根据上述实施例中的方法通过数据同步工具的监控,可以实现源端数据库中的数据与目标数据库的上层数据结构中的数据保持一致,进而只需要实现目标数据库上层数据结构中的数据与底层数据结构中的数据同步即可实现目标数据库中可应用的数据与源端数据库数据一致,则步骤101具体处理过程包括:
步骤301,监控目标数据库上层数据结构中每一操作日志的文件写入过程。
在实施中,由于分布式***中包括多个服务器节点(主节点(master)和数据节点(regionserver)),在多个服务器节点间共同部署了目标数据库(即数据仓库),则可以以任意一台服务器节点作为数据仓库中的存储空间进行数据存储和处理,当用户需要对目标数据库进行数据同步时,对于目标数据库的上层数据结构中的操作日志,则预先下载至服务器本地,进行本地分析处理,由于操作日志具有实时写入的功能,基于操作日志文件的写入分页机制,每当写入完成一个操作日志文件,则对操作日志进行处理,因此,服务器节点通过运行shell脚本监控目标数据库上层数据结构的操作日志写入过程。
步骤302,当在预设的时间范围内,操作日志的大小保持不变时,确定操作日志写入完成,获取操作日志。
在实施中,分布式***监测操作日志的写入过程时,以操作日志的文件大小写入变化作为文件写入是否完成的标准,则当在预设的时间范围内,操作日志的大小保持不变时,确定操作日志写入完成,则获取该写入完成的操作日志,进行后续的分析处理,否则继续等待操作日志文件的更新写入。
可选的,可以在wals操作日志目录下获取目标数据库上层数据结构中的操作日志,该wals的目录基于时间顺序进行操作日志的存储。
在一个实施例中,如图4所示,步骤102的具体处理过程包括:
步骤401,解析操作日志,根据目标操作标识在操作日志中过滤得到目标操作日志。
在实施中,分布式***将下载到本地的操作日志进行解析处理,根据目标筛选条件,识别本地下载的操作日志中携带目标操作标识的操作日志,其中,该目标操作标识可以表示目标操作的完整数据操作信息。进而,通过目标操作标识进行操作日志过滤,得到最终用于数据同步的目标操作日志。例如,在本地下载的操作日志中识别删除数据操作日志,根据删除数据对应的数据操作信息,在全部的操作日志中识别过滤出删除操作对应的目标操作日志。
可选的,对于操作日志目录中已经下载到本地的操作日志,分布式***可以删除该目录缓存中的相同的操作日志,降低缓存压力。
步骤402,将目标操作日志进行格式转换,得到目标格式的操作日志文件,确定目标格式的操作日志文件中的目标格式的操作数据。
在实施中,在分布式***中运行预先配置的Python脚本服务,实现将目标操作日志进行格式转换,即将过滤筛选出的WAL(预写日志)转换为标准的json格式文件,进而再由json(JavaScript Object Notation,JavaScript对象符号)格式文件转化为目标数据库中可用的CSV(Comma Separated Value,逗号分隔值文件格式)格式文件,在CSV格式文件中以vlen主键为0识别并提取CSV格式的操作数据。
本实施例中,通过目标操作标识,在全部的操作日志中筛选得到目标操作日志,通过对目标操作日志进行分析和格式转换确定出目标格式的操作数据,实现了对于操作日志中操作数据的确定和提取,以用于根据操作数据更新目标数据库底层数据结构中的原始数据。
在一个实施例中,如图5所示,操作数据携带时间戳信息,目标数据库底层数据结构的分区表中包含至少一个基于时间标识划分的分区,步骤103的具体处理过程包括:
步骤501,在分区表中,确定与时间戳信息相对应的时间标识划分的目标分区,将操作数据存储至目标分区(hive)。其中,目标分区还存储有时间标识记录的时刻下目标数据库底层数据结构的全部数据。
在实施中,在目标数据库的每一层数据结构中均配置有用于存储数据的分区表,该分区表中包含至少一个基于时间标识划分的分区(也可以称为分区表的分区子表),例如,时间标识以天(24小时)作为时间单位,划分得到分区表中每一天的分区子表,进而,在目标数据库的中层数据结构或者底层数据结构的实际数据处理过程中,可以针对每一天开辟新的分区子表来存储当天抽取到的源端数据库的新增数据。
进而,由于操作日志中确定出的操作数据携带时间戳信息,则根据时间戳信息与对应时间标识的关联关系,在目标数据库底层数据结构的分区表中确定目标分区(也称为目标分区子表)。具体的,若获取并解析前一天(例如7月8日凌晨0时)的操作日志,则在操作日志中确定出的操作数据携带有7月8日0时的时间戳信息,进而根据该时间戳信息与当前所处日期(7月9日)的时间关联关系,将携带0时时间戳信息的操作数据存储在当前所处日期(7月9日)的目标分区。另外,在目标分区内还存储有当前所处日期对应的当前全量数据,该当前全量数据由当前新增数据与目标数据库前一天的全量数据进行数据合并得到。此时,在当前所处日期的时间标识划分的目标分区中存在当前所处日期的全量数据以及操作数据。
步骤502,根据操作数据,在目标分区的全部数据中确定更新数据。
在实施中,在目标分区中,根据操作数据,建立目标分区中当前全量数据与操作数据间的关联关系,进而基于建立的关联关系确定出目标分区中当前的全量数据中存在的待更新的更新数据。
步骤503,基于确定出的更新数据,更新目标数据库底层数据结构中的数据。
在实施中,根据确定出的目标数据库底层数据结构当前全量数据中的更新数据之后,根据对应的更新操作,更新目标数据库底层数据结构中的数据,例如,确定出的更新数据为需要删除的删除数据,则在目标数据库底层数据结构存储的当前全量数据中,删除确定出的删除数据,得到更新后的目标数据库底层数据结构中的数据。
本实施例中,在目标数据库底层数据结构的分区表中,基于操作数据识别目标分区中全量数据中的更新数据,对更新数据进行更新操作,得到目标数据库底层数据结构中更新后的全量数据,保证了目标数据库数据同步的及时性。
在一个实施例中,该方法还包括:将操作数据存储至目标数据库底层数据结构中的更新记录表中,更新记录表用于记录目标数据库的数据更新信息。
在实施中,针对源端数据库数据更新操作的操作数据,例如,数据删除操作对应的删除数据,由于多个源端数据库由各数据生成端独立管理,并非每一源端数据库均会对数据更新操作的操作数据进行备份,因此,本申请实施例在目标数据库中提供更新记录表,将数据更新操作(例如,数据删除操作)对应的操作数据存储在目标数据库底层数据结构中的更新记录表中,目标数据库可以根据该更新记录表中记录的信息对目标数据库进行数据复盘。
可选的,目标数据库对于更新记录表中记录的删除数据可以单独进行恢复,实现删除数据的备份功能。
本实施例中,通过建立操作数据与目标数据库底层数据结构中的更新数据间的关联关系,对目标数据底层数据结构中的全量数据进行更新,得到更新后的全量数据,实现目标数据库底层数据结构中的数据与上层数据结构中的数据,进而与源端数据结构中的数据保持一致。
在一个实施例中,如图6所示,提供了一种数据同步方法的示例,该示例具体处理步骤如下所示:
步骤601,通过数据同步工具同步源端数据库与目标数据库上层数据结构中的数据。
步骤602,监控目标数据库上层数据结构中的操作日志,根据操作日志文件大小在预设时间内是否发生变化,判别操作日志写入过程是否完成,若完成则将操作日志下载至本地。
步骤603,解析下载至本地的操作日志,对本地操作日志进行过滤筛选,并将筛选后的操作日志转换为json标准文件,进而将json标准文件转换为csv格式文件,抽取csv格式文件中的操作数据,将其存储至数据库分区表(hive)中。
步骤604,根据分区表中存储的操作数据识别目标数据库下层数据结构中包含的原始数据中的待更新数据。
步骤605,更新目标数据库下层数据结构中的数据,得到更新同步后的目标数据库下层数据结构的数据。
步骤606,保留操作数据,将操作数据存储至更新记录数据表中。
应该理解的是,虽然图1至6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1至6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种数据同步装置700,包括:获取模块710、解析模块720和数据同步模块730,其中:
获取模块710,用于获取目标数据库上层数据结构对应的操作日志,操作日志中记录有与源端数据库中的操作日志同步的数据操作信息;
解析模块720,用于解析操作日志,在操作日志中确定操作数据;
数据同步模块730,用于根据操作数据,更新目标数据库底层数据结构中的数据,目标数据库中更新后的数据与源端数据库中的数据一致。
在一个实施例中,该装置700还包括:
同步模块,用于监控源端数据库中的数据更新操作,通过数据同步工具,在目标数据库上层数据结构中执行相同的数据更新操作;
写入模块,用于将数据更新操作写入目标数据库上层数据结构的操作日志中。
在一个实施例中,获取模块710具体用于监控目标数据库上层数据结构中每一操作日志的文件写入过程;
当在预设的时间范围内,操作日志的大小保持不变时,确定操作日志写入完成,获取操作日志。
在一个实施例中,解析模块720具体用于解析操作日志,根据目标操作标识在操作日志中过滤得到目标操作日志;
将目标操作日志进行格式转换,得到目标格式的操作日志文件,确定目标格式的操作日志文件中的目标格式的操作数据。
在一个实施例中,数据同步模块730,具体用于在分区表中,确定与时间戳信息相对应的时间标识划分的目标分区,将操作数据存储至目标分区;目标分区还存储有时间标识记录的时刻下目标数据库底层数据结构的全部数据;
根据操作数据,在目标分区的全部数据中确定更新数据;
基于确定出的更新数据,更新目标数据库底层数据结构中的数据。
在一个实施例中,该装置700还包括:
更新记录模块,用于将操作数据存储至目标数据库底层数据结构中的更新记录表中,更新记录表用于记录目标数据库的数据更新信息。
关于数据同步装置700的具体限定可以参见上文中对于数据同步方法的限定,在此不再赘述。上述数据同步装置700中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的目标数据库用于存储多个源端数据库的业务数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据同步方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法包括:
获取目标数据库上层数据结构对应的操作日志,所述操作日志中记录有与源端数据库中的操作日志同步的数据操作信息;
解析所述操作日志,在所述操作日志中确定操作数据;
根据所述操作数据,更新目标数据库底层数据结构中的数据,所述目标数据库中更新后的数据与所述源端数据库中的数据一致。
2.根据权利要求1所述的方法,其特征在于,所述获取目标数据库上层数据结构对应的操作日志之前,所述方法还包括:
监控源端数据库中的数据更新操作,通过数据同步工具,在目标数据库上层数据结构中执行相同的数据更新操作;
将所述数据更新操作写入所述目标数据库上层数据结构的操作日志中。
3.根据权利要求1所述的方法,其特征在于,所述获取目标数据库上层数据结构对应的操作日志,包括:
监控所述目标数据库上层数据结构中每一操作日志的文件写入过程;
当在预设的时间范围内,所述操作日志的大小保持不变时,确定所述操作日志写入完成,获取所述操作日志。
4.根据权利要求1所述的方法,其特征在于,所述解析所述操作日志,在所述操作日志中确定操作数据,包括:
解析所述操作日志,根据目标操作标识在所述操作日志中过滤得到目标操作日志;
将所述目标操作日志进行格式转换,得到目标格式的操作日志文件,确定所述目标格式的操作日志文件中的目标格式的操作数据。
5.根据权利要求1或4所述的方法,其特征在于,所述操作数据携带时间戳信息,目标数据库底层数据结构的分区表中包含至少一个基于时间标识划分的分区,所述根据所述操作数据,更新目标数据库底层数据结构中的数据,包括:
在所述分区表中,确定与所述时间戳信息相对应的时间标识划分的目标分区,将所述操作数据存储至所述目标分区;所述目标分区还存储有所述时间标识记录的时刻下所述目标数据库底层数据结构的全部数据;
根据所述操作数据,在所述目标分区的全部数据中确定更新数据;
基于确定出的所述更新数据,更新所述目标数据库底层数据结构中的数据。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述操作数据存储至所述目标数据库底层数据结构中的更新记录表中,所述更新记录表用于记录所述目标数据库的数据更新信息。
7.一种数据同步装置,其特征在于,所述装置包括:
获取模块,用于获取目标数据库上层数据结构对应的操作日志,所述操作日志中记录有与源端数据库中的操作日志同步的数据操作信息;
解析模块,用于解析所述操作日志,在所述操作日志中确定操作数据;
数据同步模块,用于根据所述操作数据,更新目标数据库底层数据结构中的数据,所述目标数据库中更新后的数据与所述源端数据库中的数据一致。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
监控模块,用于监控源端数据库中的数据更新操作,通过数据同步工具,在目标数据库上层数据结构中执行相同的数据更新操作;
更新模块,用于将所述数据更新操作写入所述目标数据库上层数据结构的操作日志中。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110822595.9A CN113449043A (zh) | 2021-07-21 | 2021-07-21 | 数据同步方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110822595.9A CN113449043A (zh) | 2021-07-21 | 2021-07-21 | 数据同步方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113449043A true CN113449043A (zh) | 2021-09-28 |
Family
ID=77816929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110822595.9A Pending CN113449043A (zh) | 2021-07-21 | 2021-07-21 | 数据同步方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113449043A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020128996A1 (en) * | 2001-03-09 | 2002-09-12 | David Reed | System and method for maintaining large-grained database concurrency with a log monitor incorporating dynamically redefinable business logic |
CN104298760A (zh) * | 2014-10-23 | 2015-01-21 | 北京京东尚科信息技术有限公司 | 一种应用于数据仓库的数据处理方法和数据处理装置 |
CN109241174A (zh) * | 2018-06-26 | 2019-01-18 | 东软集团股份有限公司 | 数据同步方法、装置、可读存储介质和电子设备 |
CN109933630A (zh) * | 2019-03-19 | 2019-06-25 | 武汉达梦数据库有限公司 | 数据库数据实时同步方法及设备 |
CN110297866A (zh) * | 2019-05-20 | 2019-10-01 | 平安普惠企业管理有限公司 | 基于日志分析的数据同步方法及数据同步装置 |
CN110807067A (zh) * | 2019-09-29 | 2020-02-18 | 北京淇瑀信息科技有限公司 | 关系型数据库和数据仓库的数据同步方法、装置及设备 |
CN111209344A (zh) * | 2020-02-07 | 2020-05-29 | 浪潮软件股份有限公司 | 数据同步方法及装置 |
CN112286941A (zh) * | 2020-12-23 | 2021-01-29 | 武汉物易云通网络科技有限公司 | 一种基于Binlog+HBase+Hive的大数据同步方法和装置 |
CN112434043A (zh) * | 2020-12-02 | 2021-03-02 | 新华三大数据技术有限公司 | 一种数据同步方法、装置、电子设备及介质 |
CN113094442A (zh) * | 2021-04-30 | 2021-07-09 | 广州虎牙科技有限公司 | 全量数据同步方法、装置、设备和介质 |
-
2021
- 2021-07-21 CN CN202110822595.9A patent/CN113449043A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020128996A1 (en) * | 2001-03-09 | 2002-09-12 | David Reed | System and method for maintaining large-grained database concurrency with a log monitor incorporating dynamically redefinable business logic |
CN104298760A (zh) * | 2014-10-23 | 2015-01-21 | 北京京东尚科信息技术有限公司 | 一种应用于数据仓库的数据处理方法和数据处理装置 |
CN109241174A (zh) * | 2018-06-26 | 2019-01-18 | 东软集团股份有限公司 | 数据同步方法、装置、可读存储介质和电子设备 |
CN109933630A (zh) * | 2019-03-19 | 2019-06-25 | 武汉达梦数据库有限公司 | 数据库数据实时同步方法及设备 |
CN110297866A (zh) * | 2019-05-20 | 2019-10-01 | 平安普惠企业管理有限公司 | 基于日志分析的数据同步方法及数据同步装置 |
CN110807067A (zh) * | 2019-09-29 | 2020-02-18 | 北京淇瑀信息科技有限公司 | 关系型数据库和数据仓库的数据同步方法、装置及设备 |
CN111209344A (zh) * | 2020-02-07 | 2020-05-29 | 浪潮软件股份有限公司 | 数据同步方法及装置 |
CN112434043A (zh) * | 2020-12-02 | 2021-03-02 | 新华三大数据技术有限公司 | 一种数据同步方法、装置、电子设备及介质 |
CN112286941A (zh) * | 2020-12-23 | 2021-01-29 | 武汉物易云通网络科技有限公司 | 一种基于Binlog+HBase+Hive的大数据同步方法和装置 |
CN113094442A (zh) * | 2021-04-30 | 2021-07-09 | 广州虎牙科技有限公司 | 全量数据同步方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110147411B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN109241175B (zh) | 数据同步方法、装置、存储介质及电子设备 | |
CN109460349B (zh) | 一种基于日志的测试用例生成方法和装置 | |
CN107040578B (zh) | 数据同步方法、装置和*** | |
CN110569214B (zh) | 用于日志文件的索引构建方法、装置及电子设备 | |
CN109522290B (zh) | 一种HBase数据块恢复及数据记录提取方法 | |
CN109634970B (zh) | 表数据同步方法、设备、存储介质及装置 | |
CN110651265A (zh) | 数据复制*** | |
CN110879813A (zh) | 一种基于二进制日志解析的MySQL数据库增量同步实现方法 | |
CN105205053A (zh) | 一种数据库增量日志解析方法及*** | |
CN112182104A (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN110647531A (zh) | 数据同步方法、装置、设备及计算机可读存储介质 | |
CN104636242A (zh) | 一种基于Linux操作***的***日志自动删除重复内容的方法 | |
CN104714880B (zh) | 日志数据传输方法、***及日志服务器 | |
CN114490554A (zh) | 数据同步方法及其装置、电子设备及存储介质 | |
CN110704442A (zh) | 一种大数据的实时获取方法及装置 | |
CN113377789A (zh) | 数据库变更数据的处理方法、装置、计算机设备和介质 | |
US20220229821A1 (en) | Data restoration using dynamic data structure altering | |
CN111176901B (zh) | 一种hdfs删除文件恢复方法、终端设备及存储介质 | |
CN113449043A (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
CN111897877A (zh) | 基于分布式思想的高性能高可靠数据共享***及方法 | |
CN107168822B (zh) | Oracle streams的异常修复***及方法 | |
CN115686941A (zh) | 基于PostgreSQL数据库的数据处理方法、装置、设备及介质 | |
CN107633056A (zh) | 用于用电信息采集终端的数据管理方法 | |
US11455294B2 (en) | Information lifecycle management notification framework |
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 |