CN113836157A - 获取数据库增量数据的方法和装置 - Google Patents
获取数据库增量数据的方法和装置 Download PDFInfo
- Publication number
- CN113836157A CN113836157A CN202111100735.8A CN202111100735A CN113836157A CN 113836157 A CN113836157 A CN 113836157A CN 202111100735 A CN202111100735 A CN 202111100735A CN 113836157 A CN113836157 A CN 113836157A
- Authority
- CN
- China
- Prior art keywords
- data
- backup data
- list
- key value
- hash
- 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
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/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种获取数据库增量数据的方法和装置,主要包括以下技术方案:获取分别在第一时间点和第二时间点对数据库进行备份得到的第一备份数据和第二备份数据;生成所述第一备份数据的列表文件和所述第二备份数据的列表文件,所述列表文件至少包括各条数据的哈希值和键值;对所述第一备份数据和所述第二备份数据中的各条数据进行键值匹配,得到重复键值列表和增删键值列表;对所述重复键值列表中的各条数据进行哈希值比对,得到修改键值列表;基于所述增删键值列表和所述修改键值列表,得到所述数据库在所述第二时间点相对于所述第一时间点的增量数据。本申请能够降低对业务系统中生产方数据库的影响,且提高了分析效率和准确性。
Description
【技术领域】
本申请涉及计算机技术领域,特别涉及一种获取数据库增量数据的方法和装置。
【背景技术】
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就被认为是现有技术。
随着云计算和大数据技术在信息化建设中的不断深入使用,业务系统需要随时随地提供即时可用的数据,使整体业务系统的运行和维护更加高效和安全。除了收集数据库全量数据之外,在很多应用场景下需要获取数据库增量数据。
目前已经存在一些获取数据库增量数据的方式,但这些方式大多对业务系统的正常运行造成影响。
【发明内容】
有鉴于此,本申请提供了一种获取数据库增量数据的方法和装置,从而降低对业务系统正常运行的影响。
具体技术方案如下:
根据本申请的第一方面,提供了一种获取数据库增量数据的方法,包括:
获取分别在第一时间点和第二时间点对数据库进行备份得到的第一备份数据和第二备份数据;
生成所述第一备份数据的列表文件和所述第二备份数据的列表文件,所述列表文件至少包括各条数据的哈希值和键值;
对所述第一备份数据和所述第二备份数据中的各条数据进行键值匹配,得到重复键值列表和增删键值列表;
对所述重复键值列表中的各条数据进行哈希值比对,得到修改键值列表;
基于所述增删键值列表和所述修改键值列表,得到所述数据库在所述第二时间点相对于所述第一时间点的增量数据。
根据本申请的第二方面,提供了一种获取数据库增量数据的装置,包括:
备份获取单元,用于获取分别在第一时间点和第二时间点对数据库进行备份得到的第一备份数据和第二备份数据;
列表生成单元,用于生成所述第一备份数据的列表文件和所述第二备份数据的列表文件,所述列表文件至少包括各条数据的哈希值和键值;
键值匹配单元,用于对所述第一备份数据和所述第二备份数据中的各条数据进行键值匹配,得到重复键值列表和增删键值列表;
哈希对比单元,用于对所述重复键值列表中的各条数据进行哈希值比对,得到修改键值列表;
增量确定单元,用于基于所述增删键值列表和所述修改键值列表,得到所述数据库在所述第二时间点相对于所述第一时间点的增量数据。
根据本申请的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
【附图说明】
图1为本申请实施例提供的获取数据库增量数据的方法流程图;
图2为本申请实施例提供的键值匹配的示意性流程图;
图3为本申请实施例提供的一种哈希值匹配的处理示意图;
图4为本申请实施例提供的获取数据库增量数据的装置结构图;
图5为本申请实施例提供的电子设备的结构示意图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
在背景技术中已经提及,在目前已经存在的一些获取数据库增量数据库的方式中,大多会对业务系统的正常运行造成影响。例如,在生产方的数据库上建立插入、修改、删除触发器的方式,再例如在生产方的数据库中增加时间戳字段的方式,再例如将生产方的数据库与MD5临时表进行全表比对的方式,等等。这些方式均会对生产方的数据库造成影响。
基于此,本申请的核心思想在于通过对数据库的备份数据进行全量分析从而得到增量数据。下面结合实施例对本申请提供的方法进行详细描述。
图1为本申请实施例提供的获取数据库增量数据的方法流程图,该方法的执行主体为获取数据库增量数据的装置,该装置可以为位于服务器端的应用,或者还可以为位于服务器端的应用中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元,或者,还可以位于具有较强计算功能的计算机终端,本发明实施例对此不进行特别限定。如图1中所示,该方法可以包括:
在101中,获取分别在第一时间点和第二时间点对数据库进行备份得到的第一备份数据和第二备份数据。
在102中,生成第一备份数据的列表文件和第二备份数据的列表文件,列表文件至少包括各条数据的哈希值和键值。
在103中,对第一备份数据和第二备份数据中的各条数据进行键值匹配,得到重复键值列表和增删键值列表。
在104中,对重复键值列表中的各条数据进行哈希值比对,得到修改键值列表。
在105中,基于增删键值列表和修改键值列表,得到数据库在第二时间点相对于第一时间点的增量数据。
可以看出,本申请通过对数据库的不同时间点的备份数据进行基于哈希和键值的比对,得到增量数据,大大降低了对业务系统中生产方的数据库正常运行的影响。
需要说明的是,本公开中涉及的“第一”、“第二”等限定并不具备大小、顺序和数量等方面的限制,仅仅用以在名称上加以区分。例如“第一备份数据”和“第二备份数据”用以区分两个备份数据。再例如“第一时间点”和“第二时间点”用以区分两个时间点。
下面对上述方法中的各步骤进行详细描述。首先对上述步骤101即“获取分别在第一时间点和第二时间点对数据库进行备份得到的第一备份数据和第二备份数据”进行详细描述。
本申请中为了降低对生产方数据库的影响,并不会对生产方数据库(后续简称“数据库”)进行直接分析和处理,而是在不同时间点对数据库进行全量备份。可以是周期性触发的,也可以是基于特定事件触发的。另外,本申请对数据库进行全量备份的方式不加以限制,可以采用任意方式,本申请仅对全量备份得到的备份数据进行利用。
假设要获取第二时间点相对于第一时间点的数据库增量数据,则获取在第一时间点对数据库进行备份得到第一备份数据以及在第二时间点对数据库进行备份得到的第二备份数据。
例如,备份系统每天晚上10点对数据库进行全量备份,因此形成了8月20号的全量数据即第一备份数据和8月21号的全量数据即第二备份数据。在本申请中若要获取数据库8月21号相比较8月20号的增量数据,就要首先获取上述8月29号的第一备份数据和8月21号的第二备份数据。
另外需要说明的是,本申请中所述的增量数据包括第二时间点相比较第一时间点数据库增加、删除和修改的数据。
下面结合实施例对上述步骤102即“生成第一备份数据的列表文件和第二备份数据的列表文件”进行详细描述。
本步骤中生成的列表文件至少包括各条数据的hash(哈希)值和key(键)值,还可以包括原始数据的预设格式文本,例如Json文本。通过备份数据到列表文件的转化,之后的分析比对都通过列表文件操作,从而提高分析效率。
其中,hash值是把一些不同长度的信息转化成128位的编码的值。也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系。它支持快速查找,可以放入内存进行查询分析操作,速度非常快。Key值存放了第一备份数据和第二备份数据的主键信息,用来进行数据的差异对比。原始数据Json文本存放的是实际数据。
通常对于海量数据处理的困难用一句话概括就是时空资源不够。所谓时空资源不够就是时间受限和空间受限。其中时间受限指的是无法在有限的时间内完成针对海量数据的处理。空间受限指的是无法将海量数据一次性读入内存。
对于空间受限的问题本申请中采用内“大而化小,分而治之”的策略。即将数据按照分片生成文件列表,然后按照分片对应的小文件读入内存进行分析和比对。对于时间受限的问题,本申请中采用高效的算法配合恰当的数据结构,例如哈希值、Bloom Filter等方式。更进一步结合多线程并发的处理方式,来提高数据处理效率。后续实施例中将会分别涉及到。
作为一种优选的实施方式,在本步骤之前可以首先依据第一备份数和第二备份数据的数据量和资源处理能力,确定分配的第一线程的数量和分片的大小,还可以进一步确定Block Size(块大小)。其中第一线程指的是用以并行生成列表文件的线程。
通常数据库的全量备份数据量很大,可以首先通过诸如Sql Count查询指令查询第一备份数据和第二备份数据的数据量。
上述的资源处理能力可以体现为CPU、内存等的剩余资源状况。
假设依据数据量和资源处理能力确定分配n1个第一线程,n1为正整数。那么由这n1个第一线程依据分配的分片大小并行生成第一备份数据中各分片的列表文件以及第二备份数据中各分片的列表文件。也就是说,一方面将备份数据进行了分片处理,按照分片生成列表文件;另一方面采用多线程并行处理的方式来生成列表文件,所谓多线程就是把并发执行机制运用在一个程序中,将原本一个列表生成任务划分成了多个子任务,由多个线程并行执行各子任务对应的列表生成处理,有效地防止线程“堵塞”。通过这两方面大大提高了对海量备份数据的时空处理能力。
更具体地,各第一线程在针对各分片生成列表文件时,可以按照确定的BlockSize进行备份数据的读取。
下面结合实施例对上述步骤103即“对第一备份数据和第二备份数据中的各条数据进行键值匹配,得到重复键值列表和增删键值列表”以及步骤104即“对重复键值列表中的各条数据进行哈希值比对,得到修改键值列表”进行详细描述。
这两个步骤是获取增量数据的主要分析过程。为了提高海量数据的分析能力,作为一种优选的实施方式,可以将上述第一备份数据的列表文件和第二备份数据的列表文件加载至Bloom Filter,在Bloom Filter中进行key匹配和hash值匹配。
Bloom Filter是一种空间效率很高的随机数据结构,利用位数组很简洁地表示一个集合,并能够判断一个元素是否属于这个集合。本申请中调用了Bloom Filter在内存中执行key匹配和hash值匹配。
如图2中所示,首先在步骤201中,可以将第一备份数据的列表文件和第二备份数据的列表文件加载至Bloom Filter,然后在步骤202中,在内存中对两个列表文件进行key匹配。如果两份文件的key完全一致,说明第一备份数据和第二备份数据完全一致,则在步骤203中确定数据库在第二时间点相对于第一时间点不存在增量数据。
如果两份文件的key不完全一致,则表明数据库在第二时间点相对于第一时间点存在增量数据,需要进一步分析匹配。
可以进一步在步骤204中确定第一备份数据和第二备份数据对应的匹配键值构成重复键值列表,在步骤205中将重复键值列表分别与第一备份数据、第二备份数据匹配,分别得到增加键值列表和删除键值列表。
然后在步骤206中,进一步对重复键值列表中的各条数据进行hash值比对,得到修改键值列表。即重复键值列表中key值对应的在第一备份数据和第二备份数据中的数据进行hash值比对,如果不一致,则认为该key值对应的数据发生修改,将该key值加入修改键值列表。
在进行上述key值匹配和hash比对时,可以依据之前确定出的Block Size的读取数据进行hash值比对。
需要说明的是,上述步骤205和206仅仅为本实施例示出的一种执行顺序,也可以先执行步骤206再执行步骤205,或者同时执行上述步骤205和206,本申请对此不加以限制。
为了进一步改进空间受限的问题,在进行hash比对时也可以采用“大而化小,分而治之”的策略。在生成第一备份数据的列表文件和第二备份数据的列表文件时,利用hash映射将第一备份数据的各条数据的hash值存储于n个第一文件中,利用hash映射将第二备份数据的各条数据的hash值存储于n个第二文件中,n为2以上的正整数。
由于每条数据都存在hash值,按照hash值将各条数据分布存储到多个文件中,即通过小文件的方式来存储。根据hash函数的唯一性,相同的数据一定被映射至同一个小文件中。例如,可以采用如下方式进行映射:
BucketID=H(mi)%n
其中,对于第一备份数据而言,mi表示第一备份数据中的第i条数据,BucketID为第一文件的标号,%为取余数的运算符。同样地,对于第二备份数据而言,mi表示第二备份数据中的第i条数据,BucketID为第二文件的标号。
举个例子,假设第一备份数据中各条数据通过hash映射分布于n个第一文件,记为{a1,a2,…,an},第二备份数据中各条数据通过hash映射分布于n个第二文件,记为{b1,b2,…,bn}。根据hash函数的性质可知,第一备份数据和第二备份数据中相同数据一定被映射到序号相同的小文件(即第一文件和第二文件),因此只需要一次比对{a1,b1},{a2,b2},…,{an,bn}。
优选地,如图3中所示,可以利用多个第二线程并行对相同序号的第一文件和第二文件进行hash值比对。例如,由3个第二线程分别对{a1,b1},{a2,b2},{a3,b3}进行比对,再接着分别对{a4,b4},{a5,b5},{a6,b6},依次类推。最后再对各线程的比对结果进行归并。
下面结合实施例对上述步骤105即“基于增删键值列表和修改键值列表,得到数据库在第二时间点相对于第一时间点的增量数据”进行详细描述。
前面已经提及了增量数据实际上包含增加、删除和修改的数据,因此可以基于增删键值列表和修改键值列表得到,也就是整合key匹配和hash比对的结果。具体地,可以将增删键值列表和修改键值列表中的key值在第一备份数据和第二备份数据的列表文件中进行匹配,从而得到数据库在第二时间点相对于第一时间点的增量数据。
由于第一备份数据和第二备份数据的列表文件中各条数据已经被转换成jason格式,该jason格式的数据与hash值一起保存并记录行号,因此,在已经得到增删键值列表和修改键值列表中的key值时,意味着增量数据的key值已经确定,通过该key值可以找到对应行号,并得到具体的jason格式的数据。
其中,增删键值列表实际上包括增加键值列表和删除键值列表,那么增加键值列表中的key在第二备份数据中匹配,得到增加的数据。删除键值列表中的key在第一备份数据中匹配,得到删除的数据。修改键值列表中的key在第一备份数据和第二备份数据中进行匹配,分别得到的是修改前和修改后的数据。
上述得到的数据库在第二时间点相对于第一时间点的增量数据可以通过诸如采集器等工具利用Web socket(网络套接字)格式返回给用户,用户就得到了包括增加、删除和修改的增量数据。
另外,作为一种优选的实施方式,本申请实施例中执行上述方法的各步骤可以由一种特定类型的线程来执行,即协程(goroutine)。协程是一种用户级的轻量型线程。协程具有自己的寄存器上下文和栈。协程调度切换时能够保存上一次调度时的状态,与传统线程不同的是,协程的暂停完全由程序控制而非操作系统内核,因此,其开销远远小于传统线程。
在实际运行过程中,协程运行在线程之上,当一个任务的协程处理完后,主动让出,另一个协程运行于当前线程之上继续执行。协程不会增加线程数量,只是在线程之上采用分时复用的方式运行多个协程。举个例子,在进行hash值的比对时,可以启动100个线程,每个线程上运行100个协程同时进行hash值的比对,这样不仅能够减少线程切换的开销,且能够同时实现10000个数据块的hash值比对。
以上是对本申请所提供方法进行的详细描述,下面结合实施例对本申请所提供的装置进行详细描述。
图4为本申请实施例提供的获取数据库增量数据的装置结构图,如图4中所示,该装置400可以包括:备份获取单元401、列表生成单元402、键值匹配单元403、哈希对比单元404和增量确定单元405,还可以进一步包括资源分配单元406和列表加载单元407。其中各组成单元的主要功能如下:
备份获取单元401,用于获取分别在第一时间点和第二时间点对数据库进行备份得到的第一备份数据和第二备份数据。
列表生成单元402,用于生成第一备份数据的列表文件和第二备份数据的列表文件,列表文件至少包括各条数据的hash值和key值。
键值匹配单元403,用于对第一备份数据和第二备份数据中的各条数据进行key值匹配,得到重复键值列表和增删键值列表。
哈希对比单元404,用于对重复键值列表中的各条数据进行hash值比对,得到修改键值列表。
增量确定单元405,用于基于增删键值列表和修改键值列表,得到数据库在第二时间点相对于第一时间点的增量数据。
作为一种优选的实施方式,资源分配单元406,用于依据第一备份数据和第二备份数据的数据量和资源处理能力确定分配的第一线程的数量和分片的大小。
相应地,列表生成单元402利用分配的各第一线程依据分片的大小并行生成第一备份数据中各分片的列表文件以及第二备份数据中各分片的列表文件。
更进一步地,资源分配单元406,还可以依据第一备份数据和第二备份数据的数据量和资源处理能力确定Block Size。
上述的键值匹配单元403和哈希对比单元404具体依据Block Size读取数据,进行key值匹配和hash值比对。
作为一种优选的实施方式,列表加载单元407,用于将第一备份数据的列表文件和第二备份数据的列表文件加载至Bloom Filter。
相应地,键值匹配单元403和哈希对比单元404在Bloom Filter中进行key值匹配和hash值比对。
具体地,键值匹配单元403用于对第一备份数据和第二备份数据中的各条数据进行key值匹配;如果第一备份数据和第二备份数据中各条数据的key值完全匹配,则确定数据库在第二时间点相对于第一时间点不存在增量数据;否则,进一步得到重复键值列表和增删键值列表。
键值匹配单元403在得到重复键值列表和增删键值列表时,可以确定第一备份数据和第二备份数据对应的匹配键值构成重复键值列表;将重复键值列表分别与第一备份数据、第二备份数据匹配,分别得到增加键值列表和删除键值列表。
作为一种优选的实施方式,列表生成单元402在生成第一备份数据的列表文件和第二备份数据的列表文件时,具体用于利用hash映射将第一备份数据的各条数据的hash值存储于n个第一文件中,利用hash映射将第二备份数据的各条数据的hash值存储于n个第二文件中,n为2以上的正整数。
相应地,哈希对比单元404可以利用多个第二线程并行对相同序号的第一文件和第二文件进行hash值比对;将第一文件和第二文件中不同的hash值对应的key值构成修改键值列表。
更进一步地,上述列表文件除了包含各条数据的key值和hash值之外,还包括各调数据的预订格式文本,例如json格式文本。
增量确定单元405,具体用于将增删键值列表和修改键值列表中的key值在第一备份数据和第二备份数据的列表文件中进行匹配,得到数据库在第二时间点相对于第一时间点的增量数据。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图5所示,是根据本公开实施例的获取数据库增量数据的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如获取数据库增量数据的方法。例如,在一些实施例中,获取数据库增量数据的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。
在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的获取数据库增量数据的方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行获取数据库增量数据的方法。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控30制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPs,Ⅵirtual Private Server)服务中存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (18)
1.一种获取数据库增量数据的方法,包括:
获取分别在第一时间点和第二时间点对数据库进行备份得到的第一备份数据和第二备份数据;
生成所述第一备份数据的列表文件和所述第二备份数据的列表文件,所述列表文件至少包括各条数据的哈希值和键值;
对所述第一备份数据和所述第二备份数据中的各条数据进行键值匹配,得到重复键值列表和增删键值列表;
对所述重复键值列表中的各条数据进行哈希值比对,得到修改键值列表;
基于所述增删键值列表和所述修改键值列表,得到所述数据库在所述第二时间点相对于所述第一时间点的增量数据。
2.根据权利要求1所述的方法,还包括:依据所述第一备份数据和第二备份数据的数据量和资源处理能力确定分配的第一线程的数量和分片的大小;
分配的各第一线程依据所述分片的大小并行生成第一备份数据中各分片的列表文件以及第二备份数据中各分片的列表文件。
3.根据权利要求2所述的方法,还包括:依据所述第一备份数据和第二备份数据的数据量和资源处理能力确定数据块大小BlockSize;
依据所述BlockSize读取数据,进行所述键值匹配和哈希值比对。
4.根据权利要求1所述的方法,还包括:将所述第一备份数据的列表文件和所述第二备份数据的列表文件加载至BloomFilter;
在所述BloomFilter中进行所述键值匹配和哈希值比对。
5.根据权利要求1所述的方法,其中,对所述第一备份数据和所述第二备份数据中的各条数据进行键值匹配包括:
对所述第一备份数据和所述第二备份数据中的各条数据进行键值匹配;
如果所述第一备份数据和所述第二备份数据中各条数据的键值完全匹配,则确定所述数据库在所述第二时间点相对于所述第一时间点不存在增量数据;否则,进一步得到重复键值列表和增删键值列表。
6.根据权利要求1或5所述的方法,其中,所述得到重复键值列表和增删键值列表包括:
确定第一备份数据和所述第二备份数据对应的匹配键值构成重复键值列表;
将所述重复键值列表分别与所述第一备份数据、所述第二备份数据匹配,分别得到增加键值列表和删除键值列表。
7.根据权利要求1所述的方法,其中,在生成所述第一备份数据的列表文件和所述第二备份数据的列表文件时,利用哈希映射将第一备份数据的各条数据的哈希值存储于n个第一文件中,利用所述哈希映射将第二备份数据的各条数据的哈希值存储于n个第二文件中,所述n为2以上的正整数;
对所述重复键值列表中的各条数据进行哈希值比对,得到修改键值列表包括:
利用多个第二线程并行对相同序号的第一文件和第二文件进行哈希值比对;
将第一文件和第二文件中不同的哈希值对应的键值构成修改键值列表。
8.根据权利要求1至5、7中任一项所述的方法,其中,所述列表文件还包括各条数据的预设格式文本;
基于所述增删键值列表和所述修改键值列表,得到所述数据库在所述第二时间点相对于所述第一时间点的增量数据包括:
将所述增删键值列表和所述修改键值列表中的键值在所述第一备份数据和所述第二备份数据的列表文件中进行匹配,得到所述数据库在所述第二时间点相对于所述第一时间点的增量数据。
9.一种获取数据库增量数据的装置,包括:
备份获取单元,用于获取分别在第一时间点和第二时间点对数据库进行备份得到的第一备份数据和第二备份数据;
列表生成单元,用于生成所述第一备份数据的列表文件和所述第二备份数据的列表文件,所述列表文件至少包括各条数据的哈希值和键值;
键值匹配单元,用于对所述第一备份数据和所述第二备份数据中的各条数据进行键值匹配,得到重复键值列表和增删键值列表;
哈希对比单元,用于对所述重复键值列表中的各条数据进行哈希值比对,得到修改键值列表;
增量确定单元,用于基于所述增删键值列表和所述修改键值列表,得到所述数据库在所述第二时间点相对于所述第一时间点的增量数据。
10.根据权利要求9所述的装置,还包括:
资源分配单元,用于依据所述第一备份数据和第二备份数据的数据量和资源处理能力确定分配的第一线程的数量和分片的大小;
所述列表生成单元利用分配的各第一线程依据所述分片的大小并行生成第一备份数据中各分片的列表文件以及第二备份数据中各分片的列表文件。
11.根据权利要求10所述的装置,所述资源分配单元,还用于依据所述第一备份数据和第二备份数据的数据量和资源处理能力确定数据块大小Block Size;
所述键值匹配单元和所述哈希比对单元,具体依据所述BlockSize读取数据,进行所述键值匹配和哈希值比对。
12.根据权利要求9所述的装置,还包括:
列表加载单元,用于将所述第一备份数据的列表文件和所述第二备份数据的列表文件加载至BloomFilter;
所述键值匹配单元和所述哈希对比单元在所述BloomFilter中进行所述键值匹配和哈希值比对。
13.根据权利要求9所述的装置,其中,所述键值匹配单元,具体用于对所述第一备份数据和所述第二备份数据中的各条数据进行键值匹配;如果所述第一备份数据和所述第二备份数据中各条数据的键值完全匹配,则确定所述数据库在所述第二时间点相对于所述第一时间点不存在增量数据;否则,进一步得到重复键值列表和增删键值列表。
14.根据权利要求9或13所述的装置,其中,所述键值匹配单元,具体用于确定第一备份数据和所述第二备份数据对应的匹配键值构成重复键值列表;将所述重复键值列表分别与所述第一备份数据、所述第二备份数据匹配,分别得到增加键值列表和删除键值列表。
15.根据权利要求9所述的装置,其中,所述列表生成单元在生成所述第一备份数据的列表文件和所述第二备份数据的列表文件时,具体用于利用哈希映射将第一备份数据的各条数据的哈希值存储于n个第一文件中,利用所述哈希映射将第二备份数据的各条数据的哈希值存储于n个第二文件中,所述n为2以上的正整数;
所述哈希对比单元,具体用于利用多个第二线程并行对相同序号的第一文件和第二文件进行哈希值比对;将第一文件和第二文件中不同的哈希值对应的键值构成修改键值列表。
16.根据权利要求9至13、15中任一项所述的装置,其中,所述列表文件还包括各条数据的预设格式文本;
所述增量确定单元,具体用于将所述增删键值列表和所述修改键值列表中的键值在所述第一备份数据和所述第二备份数据的列表文件中进行匹配,得到所述数据库在所述第二时间点相对于所述第一时间点的增量数据。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111100735.8A CN113836157A (zh) | 2021-09-18 | 2021-09-18 | 获取数据库增量数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111100735.8A CN113836157A (zh) | 2021-09-18 | 2021-09-18 | 获取数据库增量数据的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113836157A true CN113836157A (zh) | 2021-12-24 |
Family
ID=78959905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111100735.8A Pending CN113836157A (zh) | 2021-09-18 | 2021-09-18 | 获取数据库增量数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113836157A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114791916A (zh) * | 2022-06-22 | 2022-07-26 | 广东杰纳医药科技有限公司 | 一种临床试验数据的快速比对方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138635A (zh) * | 2015-08-21 | 2015-12-09 | 中国人民解放军装备学院 | 一种利用哈希值比对进行数据增量复制的方法 |
US20180173596A1 (en) * | 2016-12-15 | 2018-06-21 | Palantir Technologies Inc. | Incremental backup of computer data files |
CN113254397A (zh) * | 2021-06-15 | 2021-08-13 | 成都统信软件技术有限公司 | 一种数据检查方法及计算设备 |
-
2021
- 2021-09-18 CN CN202111100735.8A patent/CN113836157A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138635A (zh) * | 2015-08-21 | 2015-12-09 | 中国人民解放军装备学院 | 一种利用哈希值比对进行数据增量复制的方法 |
US20180173596A1 (en) * | 2016-12-15 | 2018-06-21 | Palantir Technologies Inc. | Incremental backup of computer data files |
CN113254397A (zh) * | 2021-06-15 | 2021-08-13 | 成都统信软件技术有限公司 | 一种数据检查方法及计算设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114791916A (zh) * | 2022-06-22 | 2022-07-26 | 广东杰纳医药科技有限公司 | 一种临床试验数据的快速比对方法 |
CN114791916B (zh) * | 2022-06-22 | 2022-10-11 | 广东杰纳医药科技有限公司 | 一种临床试验数据的快速比对方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102129425B (zh) | 数据仓库中大对象集合表的访问方法及装置 | |
CN111949710B (zh) | 数据存储方法、装置、服务器及存储介质 | |
US20220019562A1 (en) | Data compression based on key-value store | |
CN111722918A (zh) | 业务标识码生成方法、装置、存储介质及电子设备 | |
CN114817651B (zh) | 数据存储方法、数据查询方法、装置和设备 | |
CN107357794B (zh) | 优化键值数据库的数据存储结构的方法和装置 | |
CN114996173B (zh) | 一种管理存储设备写操作的方法和装置 | |
US9213759B2 (en) | System, apparatus, and method for executing a query including boolean and conditional expressions | |
CN115631273A (zh) | 一种大数据的去重方法、装置、设备及介质 | |
CN113836157A (zh) | 获取数据库增量数据的方法和装置 | |
CN114398520A (zh) | 数据检索方法、系统、装置、电子设备及存储介质 | |
CN113722600A (zh) | 应用于大数据的数据查询方法、装置、设备及产品 | |
CN103577604B (zh) | 一种用于Hadoop分布式环境的图像索引结构 | |
CN113010542A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN112433757A (zh) | 一种确定接口调用关系的方法和装置 | |
CN115454971A (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
CN115904240A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN115639966A (zh) | 一种数据写入方法、装置、终端设备及存储介质 | |
CN115328898A (zh) | 一种数据处理方法、装置、电子设备及介质 | |
CN114443772A (zh) | 一种分布式数据的处理方法、装置、设备及介质 | |
US10185718B1 (en) | Index compression and decompression | |
CN115408547A (zh) | 一种字典树构建方法、装置、设备及存储介质 | |
US11907194B2 (en) | Systems and methods for executing and hashing modeling flows | |
CN117056133B (zh) | 一种基于分布式物联网架构的数据备份方法、装置及介质 | |
CN114490852A (zh) | 导航数据回库的方法、装置、设备、存储介质及程序产品 |
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 |