CN110196758A - 数据处理方法和装置、存储介质及电子装置 - Google Patents
数据处理方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN110196758A CN110196758A CN201810444404.8A CN201810444404A CN110196758A CN 110196758 A CN110196758 A CN 110196758A CN 201810444404 A CN201810444404 A CN 201810444404A CN 110196758 A CN110196758 A CN 110196758A
- Authority
- CN
- China
- Prior art keywords
- data
- time
- tables
- period
- target
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 30
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000008859 change Effects 0.000 claims description 57
- 238000004590 computer program Methods 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 12
- 238000013524 data verification Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 10
- 241001269238 Data Species 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 21
- 238000004364 calculation method Methods 0.000 description 13
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 11
- 238000012217 deletion Methods 0.000 description 10
- 230000037430 deletion Effects 0.000 description 10
- PMHURSZHKKJGBM-UHFFFAOYSA-N isoxaben Chemical compound O1N=C(C(C)(CC)CC)C=C1NC(=O)C1=C(OC)C=CC=C1OC PMHURSZHKKJGBM-UHFFFAOYSA-N 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 238000013480 data collection Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010219 correlation analysis Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 101100328884 Caenorhabditis elegans sqt-3 gene Proteins 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法和装置、存储介质及电子装置。该方法包括:根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;根据第一时间段的第一结束时刻上的第二事务快照从第一数据表中获取第二数据集合;获取第一目标数据,其中,第一目标数据为第一数据表中已过去的第一时间段对应的数据,第一目标数据包括:属于第二数据集但并不属于第一数据集的数据。本发明解决了相关技术从数据表中获取任意时间段内的增量数据的效率较低的技术问题。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种数据处理方法和装置、存储介质及电子装置。
背景技术
由于业务数据的不断获取,数据分析需要基于历史数据和不断产生的新数据进行,而在对历史数据进行分析时通常会考虑一段时间内的增量数据。目前,相关技术只能针对单个数据表的增量数据进行分析,无法实现对多个数据表的增量数据进行分析。而且由于相关技术采用源数据和目的数据对比的方式确定数据表中一段时间内的增量数据,导致增量数据的获取效率较低,进而影响了对单个数据表的增量数据进行分析的效率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法和装置、存储介质及电子装置,以至少解决相关技术从数据表中获取任意时间段内的增量数据的效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法,包括:根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;根据所述第一时间段的第一结束时刻上的第二事务快照从所述第一数据表中获取第二数据集合;获取第一目标数据,其中,所述第一目标数据为所述第一数据表中已过去的所述第一时间段对应的数据,所述第一目标数据包括:属于所述第二数据集但并不属于所述第一数据集的数据。
根据本发明实施例的另一方面,还提供了一种数据处理装置,包括:第一获取单元,用于根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;第二获取单元,用于根据所述第一时间段的第一结束时刻上的第二事务快照从所述第一数据表中获取第二数据集合;第三获取单元,用于获取第一目标数据,其中,所述第一目标数据为所述第一数据表中已过去的所述第一时间段对应的数据,所述第一目标数据包括:属于所述第二数据集但并不属于所述第一数据集的数据。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行本发明实施例中任意一种数据处理方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行本发明实施例中任意一种数据处理方法。
在本发明实施例中,通过根据在所述第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合,根据在第一时间段的第一结束时刻上的第二事务快照从第一数据表中获取第二数据集合,然后取第一数据集合与第二数据集合的对称差集,将属于第二数据集但并不属于第一数据集的数据作为第一目标数据,达到了从数据表中快速获取任意时间段内的增量数据的目的,进而解决了相关技术从数据表中获取任意时间段内的增量数据的效率较低的技术问题,从而实现了提高从数据表中获取任意时间段内的增量数据的效率,进而提高对数据表中任意时间段内的增量数据进行分析的效率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据处理方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的数据处理方法的流程图;
图3是根据本发明实施例的历史态数据转储至历史数据表中的示意图;
图4是根据本发明实施例的另一种可选的数据处理方法的流程图;
图5是根据本发明实施例的再一种可选的数据处理方法的流程图;
图6是根据本发明实施例的一种可选的增量计算的示意图;
图7是根据本发明实施例的一种可选的数据处理装置的示意图;以及
图8是根据本发明实施例的一种电子装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种数据处理方法。
可选地,在本实施例中,上述数据处理方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的数据处理方法可以由服务器102来执行,也可以由终端104来执行。其中,终端104执行本发明实施例的数据处理方法也可以是由安装在其上的客户端来执行。
可选地,服务器102执行本发明实施例的数据处理方法的过程可以描述为:服务器102根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;服务器102根据第一时间段的第一结束时刻上的第二事务快照从第一数据表中获取第二数据集合;服务器102获取第一目标数据,其中,第一目标数据为第一数据表中已过去的第一时间段对应的数据,第一目标数据包括:属于第二数据集但并不属于第一数据集的数据。
可选地,终端104或终端04上的客户端执行本发明实施例的数据处理方法的过程可以描述为:终端104或客户端根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;终端104或客户端根据第一时间段的第一结束时刻上的第二事务快照从第一数据表中获取第二数据集合;终端104或客户端获取第一目标数据,其中,第一目标数据为第一数据表中已过去的第一时间段对应的数据,第一目标数据包括:属于第二数据集但并不属于第一数据集的数据。
下面以客户端为执行主体为例对本发明实施例的数据处理方法进行详细说明。
在对本发明实施例进行详细说明之前,此处首先需要说明,本发明实施例中的“第一”、“第二”等仅仅是名称上进行区别,并不构成顺序上的限定。
图2是根据本发明实施例的一种可选的数据处理方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S102,根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;
步骤S104,根据第一时间段的第一结束时刻上的第二事务快照从第一数据表中获取第二数据集合;
步骤S106,获取第一目标数据,其中,第一目标数据为第一数据表中已过去的第一时间段对应的数据,第一目标数据包括:属于第二数据集但并不属于第一数据集的数据。
上述步骤通过根据在所述第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合,根据在第一时间段的第一结束时刻上的第二事务快照从第一数据表中获取第二数据集合,然后取第一数据集合与第二数据集合的对称差集,将属于第二数据集但并不属于第一数据集的数据作为第一目标数据,达到了从数据表中快速获取任意时间段内的增量数据的目的,进而解决了相关技术从数据表中获取任意时间段内的增量数据的效率较低的技术问题,从而实现了提高从数据表中获取任意时间段内的增量数据的效率,进而提高对数据表中任意时间段内的增量数据进行分析的效率的技术效果。
针对上述步骤需要说明的是,第一数据表中可以包括多条数据,每条数据对应的时间段可以不同,例如,第一数据表可以为用户_工资数据表,该数据表中可以包括多个用户在不同时间段内的工资,例如用户A在2016年的工资为1000,在2017年的工资为2000,在2018年的工资为2000;用户B在2016年的工资为3000,在2017年的工资为3000,在2018年的工资为5000。第一时间段为当前时刻之前的任意一个时间段,例如当前时刻为2018年,则在上述举例的用户_工资表中,第一时间段可以为2016年,也可以为2017年。第一目标数据可以为第一数据表中已过去的第一时间段对应的数据,则在上述举例的用户_工资表中,假设第一时间段为2016年,则第一目标数据包括:用户A在2016年的工资为1000,用户B在2016年的工资为3000。
可选地,第一数据表可以为当前数据表,第一数据表中的数据均为当前态数据,其中,当前态数据可以为截止到当前时刻处于有效的数据,可以包括:未进行任何修改的数据、执行更新操作后得到的更新后的数据、新插入但未进行更新的数据。
可选地,本发明实施例可以对第一数据表中的任意一个当前态数据进行变更操作,例如,在对第一数据表中的第四数据项执行变更操作的情况下,其中,第四数据项可以为第一数据表中的任意一个当前态数据,可以将第四数据项存入到第三数据表中,其中,第三数据表可以为用于存储历史态数据的历史数据表,并将第一数据表中的第四数据项替换成第四数据项变更后得到的第五数据项。
可选地,第三数据表中可以包括具有对应关系的第四数据项和用于指示变更操作的信息,以指示对数据项所执行的变更操作的类型。
可选地,上述变更操作可以包括:将第一数据表中的第四数据项更新为第五数据项、或者删除第四数据项、或者删除第四数据项插入第五数据项。
本发明实施例对用于指示变更操作的信息不做具体限定,例如,该信息可以为数值、字符等。通过在第三数据表中存储据具有对应关系的第四数据项和用于指示变更操作的信息,可以达到便于对第三数据表中属于同一种变更操作的数据项进行相关分析,进而达到满足数据分析多样化需求的目的。
可选地,在历史态数据被定期清理时,是将历史态数据进行转储的最佳时机,此时数据库系统已经不再需要对历史态数据进行DML操作。由于系统清理是一种批量操作,所以历史态数据也是采用类似的批量转储策略。当数据清理线程或进程工作时,转储线程或进程收集历史态数据,插入到已经定义好的历史数据表结构中。当前数据表中被删除或修改的历史态数据会转储到历史数据表中,并在历史数据表中对数据进行重新组织,从而保证高的读取效率。
例如,在图3中,经过一系列操作调整Kim的余额为400,则在当前数据表中Kim的余额为400,该数据项为当前态数据。而“1,Kim,300”元组,假设还有并发事务在使用,则该元组处于过渡态,故将其存放在过渡数据表中。而元组“1,Kim,100”、“1,Kim,200”以及“1,John,70”处于历史态,将会被转储进历史数据表中。图3中历史态数据的转储,将会在历史态数据在Undo Log中被清除时发生。Undo Log中的一条元组(Undo Rec)对应一条元组的历史版本,Purge操作会将需要清理的Undo Log读入内存中,通过对Undo Rec的解析,将元组历史版本重新以物理元组的形式组织起来,存入到历史数据表中,从而做到历史态数据的持久化存储。转储操作是一个原子操作,同时作为一个内部事务执行,确保转储操作语义正确。未被转储的历史态数据受系统旧有的故障恢复机制保护,确保不丢失。被转储后的历史态数据被持久化存储。需要说明的是,MySQL采用这种方式将历史态数据转储进历史数据表中,因此在MySQL/InnoDB中也可以这样实现,但并不限于这样实现转储。如PostgreSQL的全态数据存储在同一个页面中,则需要实现当前态数据与历史态数据的分离,才能把历史态数据存储到历史数据表。
可选地,本发明实施例可以从第一数据表中获取第一目标数据,其中,第一目标数据为第一数据表中已过去的第一时间段对应的数据。可选地,获取第一目标数据可以包括:根据在第一起始时刻上的第一事务快照得到第一数据集;根据在第一结束时刻上的第二事务快照得到第二数据集;将属于第二数据集但并不属于第一数据集的数据作为第一目标数据。
需要说明的是,为了从第一数据表中获取第一时间段对应的第一目标数据,本发明实施例可以分别根据在第一时间段的第一起始时刻上的一事务快照以及在第一结束时刻上的第二事务快照,得到第一数据集和第二数据集,并将属于第二数据集但并不属于第一数据集的数据作为第一目标数据。例如,第一数据集包括数据项1、数据项2、数据项3;第二数据集包括数据项2、数据项3、数据项4,则第一目标数据包括数据项4。
本发明实施例通过上述步骤可以实现快速从数据表中获取任意时间段对应的增量数据,进而解决了相关技术从数据表中获取任意时间段内的增量数据的效率较低的技术问题,从而实现了提高从数据表中获取任意时间段内的增量数据的效率,进而提高对数据表中任意时间段内的增量数据进行分析的效率的技术效果。
可选地,上述第一时间段可以包括以下任意一个时间段:
由第一起始时刻为第一初始时刻,第一结束时刻为第一当前时刻组成的时间段,其中,第一初始时刻用于表示生成第一数据表的时刻;
由第一起始时刻为第一时刻,第一结束时刻为第一当前时刻组成的时间段,其中,第一时刻为第一初始时刻与第一当前时刻之间的时刻;
由第一起始时刻为第二时刻,第一结束时刻为第三时刻组成的时间段,其中,第二时刻与第三时刻均为第一初始时刻与第一当前时刻之间的时刻,且第三时刻晚于第二时刻。
需要说明的是,以生成第一数据表的时刻(也即第一初始时刻)为起点,以当前时刻(也即第一当前时刻)为终点的时间轴上,第一时刻、第二时刻、第三时刻可以时该时间轴上的时刻。第一时间段可以是第一初始时刻至第一当前时刻之间的时间段、第一时刻至第一当前时刻之间的时间段、第二时刻至第三时刻之间的时间段。
本发明实施例通过限定第一时间段在时间轴上的范围,可以通过根据在对应时刻上的事务快照,以从数据表中获取不同时间段对应的增量数据。
可选地,基于第一时间段的取值不同,本发明实施例定义了三种对应的数据读取方式。当第一时间段为由第一起始时刻为第一初始时刻,第一结束时刻为第一当前时刻组成的时间段时,本发明实施例可以利用当前快照读的方式读取数据,也即在当前时刻读取数据;当第一时间段为由第一起始时刻为第一时刻,第一结束时刻为第一当前时刻组成的时间段时,本发明实施例可以利用历史快照读的方式读取数据,也即在历史时间段上的任意时刻执行事务快照,读取从此快照之后一直到当前时刻的数据;当第一时间段为由第一起始时刻为第二时刻,第一结束时刻为第三时刻组成的时间段时,本发明实施例可以利用历史快照差读的方式读取数据,也即在历史时间段上获取两次事务快照,读取这两个事务快照间发生变化的数据。
本发明实施例通过上述三种数据读取方式,可以实现从数据表中快速读取任意时间段内的增量数据的目的。
根据本发明上述方法可以实现从数据表中快速读取任意时间段内的增量数据,进一步地,本发明还可以利用以下可选实施例对获取到的多个增量数据进行分析计算。需要说明的是,以下可选实施例仅以两个增量数据的分析计算为例。在以下可选实施例中每个增量数据分别来自不同的数据表,这样可以实现对两个数据表的增量数据进行快速分析计算,以达到提高两个数据表的增量数据的分析计算的效率。
作为一种可选的实施例,图4是根据本发明实施例的另一种可选的数据处理方法的流程图,如图4所示,该方法可以包括以下步骤:
步骤S202,获取第一目标数据,其中,第一目标数据为第一数据表中已过去的第一时间段对应的数据,第一目标数据包括:属于第二数据集但并不属于第一数据集的数据,第一数据集为在第一时间段的第一起始时刻上的第一事务快照所得到的数据集合,第二数据集为在第一时间段的第一结束时刻上的第二事务快照所得到的数据集合;
步骤S204,获取第二目标数据,其中,第二目标数据为第二数据表中已过去的第二时间段对应的数据,第二目标数据包括:属于第四数据集但并不属于第三数据集的数据,第三数据集为在第二时间段的第二起始时刻上的第三事务快照所得到的数据集合,第四数据集为在第二时间段的第二结束时刻上的第四事务快照所得到的数据集合;
步骤S206,对第一目标数据与第二目标数据通过第一目标参数进行关联操作,其中,第一目标参数用于指示第一目标数据和第二目标数据之间的关联关系。
通过上述步骤S202至步骤S206,通过对在所述第一时间段的第一起始时刻上的第一事务快照所得到的第一数据集合与在第一时间段的第一结束时刻上的第二事务快照所得到的第二数据集合取对称差集,获取属于第二数据集但并不属于第一数据集的数据作为第一目标数据;同理通过对在所述第二时间段的第二起始时刻上的第三事务快照所得到的第三数据集合与在第二时间段的第二结束时刻上的第四事务快照所得到的第四数据集合取对称差集,获取属于第四数据集但并不属于第三数据集的数据作为第二目标数据;最后将第一目标数据与第二目标数据通过第一目标参数进行关联操作。本发明实施例达到了快速获取多个数据表中历史数据中任意时间段内的增量数据的目的,从而实现了快速对多个数据表中历史数据中任意时间段内的增量数据进行分析,以达到提高对多个数据表中历史数据中任意时间段内的增量数据进行分析的效率的技术效果,进而解决了相关技术从数据表中获取任意时间段内的增量数据的效率较低的技术问题。
在步骤S202提供的技术方案中,需要说明的是,关于第一目标数据的获取方法已经在本发明上述实施例中进行了详细介绍,此处不再赘述。
在步骤S204提供的技术方案中,第二数据表中可以包括多条数据,每条数据对应的时间段可以不同,例如,第二数据表可以为用户_账户余额数据表,该数据表中可以包括多个用户在不同时间段内的账户余额,例如用户A在2016年的账户余额为1000,在2017年的账户余额为2000,在2018年的账户余额为2000;用户B在2016年的账户余额为3000,在2017年的账户余额为3000,在2018年的账户余额为5000。第一时间段为当前时刻之前的任意一个时间段,例如当前时刻为2018年,则在上述举例的用户_工资表中,第一时间段可以为2016年,也可以为2017年。第一目标数据可以为第一数据表中已过去的第一时间段对应的数据,则在上述举例的用户_账户余额表中,假设第一时间段为2016年,则第一目标数据包括:用户A在2016年的账户余额为1000,用户B在2016年的账户余额为3000。
可选地,第二数据表可以为当前数据表,第二数据表中的数据均为当前态数据,其中,当前态数据可以为截止到当前时刻处于有效的数据,可以包括:未进行任何修改的数据、执行更新操作后得到的更新后的数据、新插入但未进行更新的数据。
可选地,本发明实施例可以对第二数据表中的任意一个当前态数据进行变更操作,例如,在对第二数据表中的第六数据项执行变更操作的情况下,其中,第六数据项可以为第二数据表中的任意一个当前态数据,可以将第六数据项存入到第四数据表中,其中,第四数据表可以为用于存储历史态数据的历史数据表,并将第二数据表中的第六数据项替换成第六数据项变更后得到的第七数据项。
可选地,第四数据表中可以包括具有对应关系的第六数据项和用于指示变更操作的信息,以指示对数据项所执行的变更操作的类型。
可选地,上述变更操作可以包括:将第二数据表中的第六数据项更新为第七数据项、或者删除第六数据项、或者删除第六数据项插入第七数据项。
本发明实施例对用于指示变更操作的信息不做具体限定,例如,该信息可以为数值、字符等。通过在第四数据表中存储据具有对应关系的第六数据项和用于指示变更操作的信息,可以达到便于对第四数据表中属于同一种变更操作的数据项进行相关分析,进而达到满足数据分析多样化需求的目的。
可选地,本发明实施例可以从第二数据表中获取第二目标数据,其中,第二目标数据为第二数据表中已过去的第二时间段对应的数据。可选地,获取第二目标数据可以包括以下步骤:
步骤S2042,根据在第二起始时刻上的第三事务快照得到第三数据集;
步骤S2044,根据在第二结束时刻上的第四事务快照得到第四数据集;
步骤S2046,将属于第四数据集但并不属于第三数据集的数据作为第二目标数据。
需要说明的是,为了从第二数据表中获取第二时间段对应的第二目标数据,本发明实施例可以分别根据在第二时间段的第二起始时刻上的第三事务快照以及在第二结束时刻上的第四事务快照,得到第三数据集和第四数据集,并将属于第二数据集但并不属于第一数据集的数据作为第二目标数据。例如,第三数据集包括数据项1、数据项2、数据项3;第四数据集包括数据项2、数据项3、数据项4,则第二目标数据包括数据项4。
本发明实施例通过上述步骤可以实现从第二数据表中获取第二时间段对应的增量数据。
可选地,上述第二时间段可以包括以下任意一个时间段:
由第二起始时刻为第二初始时刻,第二结束时刻为第二当前时刻组成的时间段,其中,第二初始时刻用于表示生成第二数据表的时刻;
由第二起始时刻为第四时刻,第二结束时刻为第二当前时刻组成的时间段,其中,第四时刻为第二初始时刻与第二当前时刻之间的时刻;
由第二起始时刻为第五时刻,第二结束时刻为第六时刻组成的时间段,其中,第五时刻与第六时刻均为第二初始时刻与第二当前时刻之间的时刻,且第六时刻晚于第五时刻。
需要说明的是,以生成第二数据表的时刻(也即第二初始时刻)为起点,以当前时刻(也即第二当前时刻)为终点的时间轴上,第四时刻、第五时刻、第六时刻可以时该时间轴上的时刻。第二时间段可以是第二初始时刻至第二当前时刻之间的时间段、第四时刻至第二当前时刻之间的时间段、第五时刻至第六时刻之间的时间段。
本发明实施例通过限定第二时间段在时间轴上的范围,可以通过根据在对时刻上的事务快照,以从数据表中获取不同时间段对应的增量数据。
可选地,基于第二时间段的取值不同,本发明实施例定义了三种对应的数据读取方式。当第二时间段为由第二起始时刻为第二初始时刻,第二结束时刻为第二当前时刻组成的时间段时,本发明实施例可以利用当前快照读的方式读取数据,也即在当前时刻读取数据;当第二时间段为由第二起始时刻为第四时刻,第二结束时刻为第二当前时刻组成的时间段时,本发明实施例可以利用历史快照读的方式读取数据,也即在历史时间段上的任意时刻执行事务快照,读取从此快照之后一直到当前时刻的数据;当第二时间段为由第二起始时刻为第五时刻,第二结束时刻为第六时刻组成的时间段时,本发明实施例可以利用历史快照差读的方式读取数据,也即在历史时间段上获取两次事务快照,读取这两个事务快照间发生变化的数据。
可选地,第一数据表与第二数据表可以不同,也可以相同。第一时间段与第二时间段可以不同,也可以相同。例如,第一目标数据与第二目标数据可以为来自不同数据表但为同一个时间段对应的数据,或者可以为同一个数据表不同时间段对应的数据。
下面将以具体示例介绍历史数据表的由来以及增量数据的获取:
创建两张表,分别为当前数据表和历史数据表,创建时两个表为空表。当前数据表每一条数据项包括用户标识、账户余额、事务开始时间、事务结束时间。新增三位用户后当前数据表如表1所示:
表1
如果在2018-04-28 14:13:05将001用户的账户余额更新为200,且事务开始时间更新为14:13:05,则当前数据表更新为表2:
表2
相应地,历史数据表新增一条数据项,该数据项为001用户未更新账户余额之前的数据项,且事务结束时间变为2018-04-28 14:13:05,如表3所示:
表3
此处需要说明的是,历史数据表相对于当前数据表多出一列,该列用于表示生成该历史数据表所执行操作的类型,此处定义1代表插入数据项,2代表删除数据项,3代表更新数据项。
如果在2018-04-28 14:14:42对003用户进行销户,则当前数据表更新为表4:
表4
相应地,历史数据表新增一条数据项,该数据项为从当前数据表中删除的003用户的数据项,且事务开始时间变为2018-04-28 14:14:42,如表5所示:
表5
在获取到表5所示的历史数据表之后,如果需要从该历史数据表中获取2018-4-2814:12:00至2018-4-28 14:14:00期间的数据项,则在该期间内001用户对应的事务有效,则该历史数据表中2018-4-28 14:12:00至2018-4-28 14:14:00期间的增量数据量为001用户对应的数据项,如表6所示:
表6
上述示例具体介绍了历史数据表的生成以及从历史数据表中获取任意时间段内的增量数据。在获取到历史数据中任意时间段内的增量数据之后,本发明实施例对获取到的增量数据进行分析计算。本发明实施例通过快速获取历史数据中任意时间段内的增量数据,可以实现提高对历史数据中任意时间段内的增量数据进行分析计算的效率。
需要说明的是,对于上述步骤S202与步骤S204并不限定其执行顺序,也即可以先获取第一目标数据,然后再获取第二目标数据,或者可以先获取第二目标数据,然后再获取第一目标数据,或者可以同时获取第一目标数据与第二目标数据。
在步骤S206提供的技术方案中,在获取到第一目标数据与第二目标数据之后,本发明实施例可以对第一目标数据与第二目标数据通过第一目标参数进行关联操作,其中,第一目标参数可以用于指示第一目标数据和第二目标数据之间的关联关系。可选地,本发明实施例中的第一目标数据与第二目标数据可以包括至少一个数据项。可选地,本发明实施例中关联操作可以包括但并不限定于求和、取平均值、连接计算等。可选地,第一目标参数可以为第一目标数据与第二目标数据之间相同的参数,例如第一目标数据包括具有对应关系的用户标识与用户账户余额,第二目标数据包括具有对应关系的用户标识与用户账户流水,则用户标识可以为第一目标参数。
可选地,对第一目标数据与第二目标数据通过第一目标参数进行关联操作,可以包括:将第一目标数据中第一目标参数对应的第一数据项与第二目标数据中第一目标参数对应的第二数据项进行关联,得到第三目标数据,其中,第三目标数据中第一目标参数对应的第三数据项包括第一数据项和第二数据项。
需要说明的是,本发明实施例可以应用于数据核对等类似的场景中,例如银行对账业务需要对用户的账户余额以及账户流水进行对账。
下面将以银行对账业务需求为例对本发明实施例进行具体说明:
本发明实施例如果检测到数据核对请求,其中,数据核对请求用于请求对第一数据表与第二数据表中在预定时间段内第一目标参数对应的数据进行核对操作。基于对账业务需要对同一个时间段的账户余额与账户流水进行核对,所以本发明实施例中的第一时间段和第二时间段均为预定时间段,也即从第一数据表中获取预定时间段对应的第一目标数据,从第二数据表中获取预定时间段对应的第二目标数据。然后可以将第一目标数据与第二目标数据通过第一目标参数进行关联操作(例如JOIN连接操作)之后,对第三数据项包括的第一数据项与第二数据项进行核对操作。可选地,第三数据项可以指示核对结果。
例如,需要对用户ID为1和3的用户在预定时间段内的账户余额与账户流水进行核对,第一目标数据如表7所示,用于表示用户的账户余额,其中,“尚未更改”,用关键字UC(Until Changed)表示:
表7
第二目标数据如表8所示,用于表示用户的账户流水变动:
表8
流水ID | 用户ID | 最近修改该数据项的事务ID | 流水变化值 |
1 | 1 | T1 | +100 |
2 | 1 | T2 | +100 |
3 | 3 | T4 | -70 |
在将第一目标数据与第二目标数据进行JOIN连接操作后,可以得到表9所示的第三目标数据:
表9
如表9所示,第一目标数据与第二目标数据在进行JOIN后所到的数据表中可以清楚直观地指示用户ID为1的用户在T1时刻账户余额变化与账户流水变化相等,则说明无错误;在T2时刻账户余额变化与账户流水变化不相等,则说明有错误,可能是账户流水记录有误;用户ID为3的用户在T4时刻账户余额变化与账户流水变化相等,则说明无错误。
可选地,第三目标数据还可以多出一列用于指示核对结果,如表10所示:
表10
还需要说明的是,上述示例具体说明了对两个数据表中的任意时间段内的增量数据进行分析计算。
可选地,本发明实施例还可以扩展为对超过两个的数据表中的任意时间段内的增量数据进行分析计算,也即实现多个数据表中的任意时间段内的增量数据的分析计算,具体参见以下另一个可选的实施例。
作为另一种可选的实施例,图5是根据本发明实施例的再一种可选的数据处理方法的流程图,如图5所示,该数据处理方法可以包括以下步骤:
步骤S302,获取第一目标数据,其中,第一目标数据为第一数据表中已过去的第一时间段对应的数据,第一目标数据包括:属于第二数据集但并不属于第一数据集的数据,第一数据集为在第一时间段的第一起始时刻上的第一事务快照所得到的数据集合,第二数据集为在第一时间段的第一结束时刻上的第二事务快照所得到的数据集合;
步骤S304,获取至少一个第四目标数据,其中,所述第四目标数据为第五数据表中已过去的第三时间段对应的数据,所述第四目标数据包括:属于第六数据集但并不属于第五数据集的数据,所述第五数据集为在所述第三时间段的第三起始时刻上的第五事务快照所得到的数据集合,所述第六数据集为在所述第三时间段的第三结束时刻上执行的第六事务快照所得到的数据集合;
步骤S306,对所述第一目标数据与所述至少一个第四目标数据通过第二目标参数进行关联操作,其中,所述第二目标参数用于指示所述第一目标数据和所述至少一个第四目标数据之间的关联关系。
通过上述步骤S302至步骤S306,通过从多个数据表中快速获取一段时间内的增量数据,然后对这些增量数据进行关联操作,达到了快速获取多个数据表中任意时间段内的增量数据的目的,从而实现了快速对多个数据表中历史数据中任意时间段内的增量数据进行分析,以达到提高对多个数据表中历史数据中任意时间段内的增量数据进行分析的效率的技术效果,进而解决了相关技术从数据表中获取任意时间段内的增量数据的效率较低的技术问题。
在步骤S302提供的技术方案中,需要说明的是,关于第一目标数据的获取方法已经在本发明上述实施例中进行了详细介绍,此处不再赘述。
在步骤S304提供的技术方案中,第五数据表中可以包括多条数据,每条数据对应的时间段可以不同,例如,第五数据表可以为用户_账户余额数据表,该数据表中可以包括多个用户在不同时间段内的账户余额,例如用户A在2016年的账户余额为1000,在2017年的账户余额为2000,在2018年的账户余额为2000;用户B在2016年的账户余额为3000,在2017年的账户余额为3000,在2018年的账户余额为5000。第三时间段为当前时刻之前的任意一个时间段,例如当前时刻为2018年,则在上述举例的用户_工资表中,第三时间段可以为2016年,也可以为2017年。第四目标数据可以为第五数据表中已过去的第三时间段对应的数据,则在上述举例的用户_账户余额表中,假设第三时间段为2016年,则第四目标数据包括:用户A在2016年的账户余额为1000,用户B在2016年的账户余额为3000。
可选地,第五数据表可以为当前数据表,第五数据表中的数据均为当前态数据,其中,当前态数据可以为截止到当前时刻处于有效的数据,可以包括:未进行任何修改的数据、执行更新操作后得到的更新后的数据、新插入但未进行更新的数据。
可选地,本发明实施例可以对第五数据表中的任意一个当前态数据进行变更操作,例如,在对第五数据表中的第八数据项执行变更操作的情况下,其中,第八数据项可以为第五数据表中的任意一个当前态数据,可以将第八数据项存入到第六数据表中,其中,第六数据表可以为用于存储历史态数据的历史数据表,并将第五数据表中的第八数据项替换成第八数据项变更后得到的第九数据项。
可选地,第六数据表中可以包括具有对应关系的第八数据项和用于指示变更操作的信息,以指示对数据项所执行的变更操作的类型。
可选地,上述变更操作可以包括:将第五数据表中的第八数据项更新为第九数据项、或者删除第八数据项、或者删除第八数据项插入第九数据项。
本发明实施例对用于指示变更操作的信息不做具体限定,例如,该信息可以为数值、字符等。通过在第六数据表中存储据具有对应关系的第八数据项和用于指示变更操作的信息,可以达到便于对第六数据表中属于同一种变更操作的数据项进行相关分析,进而达到满足数据分析多样化需求的目的。
可选地,本发明实施例可以从第五数据表中获取第四目标数据,其中,第四目标数据为第五数据表中已过去的第三时间段对应的数据。可选地,获取第四目标数据可以包括以下步骤:
步骤S3042,根据在第三起始时刻上的第五事务快照得到第五数据集;
步骤S3044,根据在第三结束时刻上的第六事务快照得到第六数据集;
步骤S3046,将属于第六数据集但并不属于第五数据集的数据作为第四目标数据。
需要说明的是,为了从第五数据表中获取第三时间段对应的第四目标数据,本发明实施例可以分别根据在第三时间段的第三起始时刻上的第五事务快照以及在第三结束时刻上的第六事务快照,得到第五数据集和第六数据集,并将属于第六数据集但并不属于第五数据集的数据作为第四目标数据。例如,第五数据集包括数据项1、数据项2、数据项3;第六数据集包括数据项2、数据项3、数据项4,则第四目标数据包括数据项4。
本发明实施例通过上述步骤可以实现从第五数据表中获取第三时间段对应的增量数据。
可选地,上述第三时间段可以包括以下任意一个时间段:
由第三起始时刻为第三初始时刻,第三结束时刻为第三当前时刻组成的时间段,其中,第三初始时刻用于表示生成第五数据表的时刻;
由第三起始时刻为第七时刻,第三结束时刻为第三当前时刻组成的时间段,其中,第七时刻为第三初始时刻与第三当前时刻之间的时刻;
由第三起始时刻为第八时刻,第三结束时刻为第九时刻组成的时间段,其中,第八时刻与第九时刻均为第三初始时刻与第三当前时刻之间的时刻,且第九时刻晚于第八时刻。
需要说明的是,以生成第五数据表的时刻(也即第三初始时刻)为起点,以当前时刻(也即第三当前时刻)为终点的时间轴上,第七时刻、第八时刻、第九时刻可以时该时间轴上的时刻。第三时间段可以是第三初始时刻至第三当前时刻之间的时间段、第七时刻至第三当前时刻之间的时间段、第八时刻至第九时刻之间的时间段。
本发明实施例通过限定第三时间段在时间轴上的范围,可以通过在不同时刻上的事务快照,以从数据表中获取不同时间段对应的增量数据。
可选地,基于第三时间段的取值不同,本发明实施例定义了三种对应的数据读取方式。当第三时间段为由第三起始时刻为第三初始时刻,第三结束时刻为第三当前时刻组成的时间段时,本发明实施例可以利用当前快照读的方式读取数据,也即在当前时刻读取数据;当第三时间段为由第三起始时刻为第七时刻,第三结束时刻为第三当前时刻组成的时间段时,本发明实施例可以利用历史快照读的方式读取数据,也即在历史时间段上的任意时刻执行事务快照,读取从此快照之后一直到当前时刻的数据;当第三时间段为由第三起始时刻为第八时刻,第三结束时刻为第九时刻组成的时间段时,本发明实施例可以利用历史快照差读的方式读取数据,也即在历史时间段上获取两次事务快照,读取这两个事务快照间发生变化的数据。
可选地,一个第四目标数据可以来自一个第五数据表,多个第四目标数据可以分别来自多个第五数据表,或者多个第四目标数据可以来自同一个第五数据表。可选地,每个第四目标数据对应的第三时间段可以相同,也可以不同。可选地,至少一个第四目标数据可以是分别来自不同数据表中的同一个时间段对应的数据,也可以是来自同一个数据表中的至少一个不同时间段对应的数据。
在步骤S306提供的技术方案中,在获取到第一目标数据与至少一个第四目标数据之后,本发明实施例可以对第一目标数据与至少一个第四目标数据通过第二目标参数进行关联操作,其中,第二目标参数可以用于指示第一目标数据与至少一个第四目标数据之间的关联关系。可选地,本发明实施例中的第一目标数据与第四目标数据可以包括至少一个数据项。可选地,本发明实施例中关联操作可以包括但并不限定于求和、取平均值、连接计算等。可选地,第二目标参数可以为第一目标数据与第四目标数据之间相同的参数,例如第一目标数据包括具有对应关系的用户标识与用户账户余额,第四目标数据包括具有对应关系的用户标识与用户账户流水,则用户标识可以为第二目标参数。
可选地,对第一目标数据与至少一个第四目标数据通过第二目标参数进行关联操作,可以包括:将第一目标数据中第二目标参数对应的第四数据项与第四目标数据中第二目标参数对应的第五数据项进行关联,得到第六目标数据,其中,第六目标数据中第二目标参数对应的第六数据项包括第四数据项和第五数据项。
针对多个数据表中任意时间段内的增量数据的分析计算与上述两个数据表中任意时间段内的增量数据的分析计算过程相似,此处不再赘述。
本发明还提供了一种优选实施例,该优选实施例提供了一种基于多版本并发控制(Multi-Version Concurrency Control,简称为MVCC)和时态技术实现增量计算的方法。
该方法通过实现历史旧版本数据的自动存储,以便在数据处理时,例如执行对账任务,能够基于历史旧版本数据做增量式的数据快速获取、增量式数据的灵活计算,使得执行多表JOIN等对账任务时,有更灵活的增量数据计算方式、有更好的执行速度,且可以基于历史上的任何时间段做任何时间段的增量数据计算。
该方法基于MVCC技术、多版本的历史数据转储技术,实现任意时间段的增量数据的计算,对于基于MVCC技术的数据库系统,可以实现增量数据的计算,且其特点是:任意时段、任何历史数据之间都可以进行数据的计算。
数据的状态属性可以标识数据的生命周期轨迹。数据的生命周期可以分为三个阶段,每个阶段刻画数据的不同状态属性,以标识数据的生命周期轨迹中所处的状态。
当前态:数据项的最新版本的数据,是处于当前阶段的数据。处于当前阶段的数据的状态,称为当前态。
历史态:数据项在历史上的一个状态,其值是旧值,不是当前值。处于历史阶段的数据的状态,称为历史态。一个数据项的历史态,可以有多个,反映了数据的状态变迁的过程。处于历史态的数据,只能被读取不能再被修改或删除。
过渡态:不是数据项的最新的版本也不是历史态版本,处于从当前态向历史态转变的过程中。处于过渡态的数据,称为半衰数据。
上述三个状态,涵盖了一个数据项的生命周期,合称为数据全态或称为全态数据。在MVCC机制下,数据的三种状态均存在;在非MVCC机制下,数据只存在历史态和当前态。
当前态:MVCC或封锁并发访问控制机制下,事务提交后的数据的新值处于当前态。
历史态:MVCC机制下,当前活跃事务列表中最小的事务之前的事务生成的数据,其状态处于历史态。在封锁并发访问控制机制下,事务提交后,提交前的数据的值变为历史态的值,即数据项的旧值处于历史态。
过渡态:MVCC机制下,被读取的版本上尚有活跃事务(非最新相关事务)在使用,因最新相关事务修改了数据项的值,其最新值已经处于一个当前态,被读取到的值相对当前态已经处于一个历史状态,故其数据状态介于当前态和历史态之间,所以称为过渡态。
在MVCC机制下,为了支持全态数据的读取,定义三种读取方式,分别为历史快照差读、当前快照读和历史快照读。
历史快照差读:给出两个快照,读取这两个快照间发生变化的历史态数据,即读取历史上一段时间内的数据,而这里的时间是事务发生的时间。给出开始快照s_start和结束快照s_stop,历史快照差查询的结果集为s_start可见数据集和s_stop可见数据集的对称差集,即只属于s_stop可见数据集,而不属于s_start可见数据集的历史态数据集合。
当前快照读:常规的基于MVCC的读数据方式。利用MVCC技术中的多版本、快照、元组可见性判断算法,获取当前时刻可读取到的当前态数据和过渡态数据数据。
历史快照读:指的是给出一个历史上的事务快照,读取从此快照之后一直到当前时刻的全态数据。
历史快照读的实现算法代码Algorithm 1如下所示:
历史快照差读的实现算法代码Algorithm2如下所示:
该方法修改了SELECT语句,其语法为:
其中,table_references的格式为:
tbl_name[[AS]alias][index_hint][SNAPSHOT START snapshot_name[TOsnapshot_name2][WITH type]]
功能描述如下:
每个快照,统称为事务快照(注意不是数据块的数据快照)或简称为快照。
一个事务快照的数据结构,类似PostgreSQL的快照的数据结构,如下:
MySQL也类似的结构:如class ReadView中“trx_id_tm_up_limit_id”相当于上述的“TransactionId xmin”,class ReadView中“trx_id_t m_low_limit_id”相当于“TransactionId xmax”。
所以不考虑特定数据库的具体定义方式,而是要考虑其MVCC中快照的含义,是一致的:表明当前新事务执行时刻,当前系统哪些数据是可读的,哪些是并发/并行的事务其数据不能被本事务获取。
这样,在MVCC机制的控制下,可以获取哪些数据是可以被当前事务获取的。
快照创建的时候,还不能知道哪些数据是增量的数据。这需要借助两个条件,一个是数据项上的数据中的xid值和数据项的事务生命周期(事务什么时候开始什么时候结束),一个是快照差。
“[SNAPSHOT[START snapshot_name][TO snapshot_name2][WITH type]]”是在SELECT基础上新增加的内容,表示为一个“tbl_name”对象指定一个快照区间,即表示“历史快照差读”,是对历史态数据的读取。所有子句都包括(SNAPSHOT、START、TO),表示“快照差读”。不带有SNAPSHOT子句,表示“当前快照读”。只带有“[SNAPSHOT START snapshot_name[WITH type]]”,表示“历史快照读”,从snapshot_name到当前快照。只带有“[SNAPSHOT TOsnapshot_name2[WITH type]]”,表示“历史快照读”,从系统初始化后默认的系统快照到snapshot_name2快照为止。snapshot_name:指定一个具体的快照,此快照包括的内容为{xmin,xmax,cretaeTime}的值。
从tbl_name获取指定区间的全量数据/增量数据[col_1,…]/[*]:获取指定列,*表示所有的列。实际返回的结果中,如果带有“[WITH type]”,会比tab_name的物理列多一列,列名为increment_type,SMALLINT类型,值为:
1:表示新增的数据
2:表示老数据被删除
3:表示老数据被更新
该方法能够对上述三种数据的变化情况进行识别。
type的值有四种:
ALL:表示得到快照差范围内、所有的数据包括新增的,删除的、被更新的。
INSERT:表示只得到新插入的数据。
DELETE:表示只得到被删除的数据。
UPDATE:表示只得到被更新的数据。
SELECT语句支持多表JOIN操作,本语句一样支持多表JOIN,从而支持了“增量计算”。例如:
假设有两个表A、B,基量数据分别是A1、B1,增量数据分别是A2、B2
增量计算需求为:A2 JOIN B2,或者A1 JOIN B2,或者A2 JOIN B1
对于A表,增量数据A2的快照差是快照SA1和SA2之间的新发生的增删改数据;对于B表,增量数据B2的快照差是快照SB1和SB2之间的新发生的增删改数据。
在时间轴上,基于快照差做增量计算可以表示为如图6所示的SA1-SA2-SB2-SB1的四边形。
A2 JOIN B2的查询语句可以写为:SELECT*FROM A SNAPSHOT START SA1 TO SA2JOIN B SNAPSHOT START SB1 TO SB2
A1 JOIN B2的查询语句可以写为:SELECT*FROM A SNAPSHOT TO SA1 JOIN BSNAPSHOT START SB1 TO SB2
为每个表指定其快照差的范围,即可以使用此范围内的历史数据进行各种连接操作,如内连接、外连接等。
针对本发明需要说明以下内容:
第一,本发明不允许对历史数据做DML操作,即只允许对当前快照的数据做DML操作。
第二,增量计算适用于:各种类型的应用,如执行ETL过程、数据同步、批量数据导出、增量备份任务等,则可以把增量数据应用到系统中。在这些应用当中,可以直接对各个表进行各种JOIN等运算,避免了抽取出数据后再进行计算这两个过程,实现了边读取边计算的方式。
第三,对SELECT语句做扩充,无损SELECT语义,增强了SELECT的计算能力。
第四,增强后的SELECT命令可以放到存储过程/用户自定义函数块内部执行,这样可以在一个事务内,对多个表进行增量数据获取,保持表之间的数据一致性。
第五,基于任意的时间段上的增量数据做增量数据计算,为潜在的特殊应用提供了实现的可能。例如,对于同一表,基于历史数据与当前数据做表的自连接计算,可以实现历史于现实对比的业务需求。
第六,能够有效地和事务概念结合,在不同隔离级别下实现各自可见的增量数据获取。这样的结合,对于随机分布的数据在增删改操作下数据散布在不同位置的情况下获取增量非常有效(只作一次范围扫描)。
第七,可以很容易找出被删除的数据而进行恢复,容易实现数据闪回等操作,可以有效地防止数据丢失等事情发生。
第八,执行多表跨多个数据阶段的JOIN时,不支持带有聚集函数、DISTINCT的语义,如果有则报告错误。
增量计算可以解决银行业等诸如每日对账等需求,并把每日对账这种以固定时间段的对账方式改变为实时的对账方式,如每小时对账、每分钟对账,甚至是每秒对账,更能满足对历史上任意时间段的反复对账的需求。这有效地满足了日益突出的实时性需求,并且能够节约大量的诸如ETL等过程对时间和资源的消耗、节约数据冗余对存储的消耗,采取边读取边计算的方式节约了ETL后再计算的时间和资源消耗。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种用于实施上述数据处理方法的数据处理装置。图7是根据本发明实施例的一种可选的数据处理装置的示意图,如图7所示,该装置可以包括:
第一获取单元12,用于根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;第二获取单元14,用于根据第一时间段的第一结束时刻上的第二事务快照从第一数据表中获取第二数据集合;第三获取单元16,用于获取第一目标数据,其中,第一目标数据为第一数据表中已过去的第一时间段对应的数据,第一目标数据包括:属于第二数据集但并不属于第一数据集的数据。
需要说明的是,该实施例中的第一获取单元22可以用于执行本申请实施例中的步骤S102,该实施例中的第二获取单元24可以用于执行本申请实施例中的步骤S104,该实施例中的第三获取单元16可以用于执行本申请实施例中的步骤S106。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
可选地,该数据处理装置还可以包括:第四获取单元,用于获取第二目标数据,其中,第二目标数据为第二数据表中已过去的第二时间段对应的数据,第二目标数据包括:属于第四数据集但并不属于第三数据集的数据,第三数据集为在第二时间段的第二起始时刻上的第三事务快照所得到的数据集合,第四数据集为在第二时间段的第二结束时刻上的第四事务快照所得到的数据集合;第一操作单元,用于对第一目标数据与第二目标数据通过第一目标参数进行关联操作,其中,第一目标参数用于指示第一目标数据和第二目标数据之间的关联关系。
可选地,第一操作单元可以包括:关联模块,用于将第一目标数据中第一目标参数对应的第一数据项与第二目标数据中第一目标参数对应的第二数据项进行关联,得到第三目标数据,其中,第三目标数据中第一目标参数对应的第三数据项包括第一数据项和第二数据项。
可选地,该数据处理装置还可以包括:检测单元,用于在根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合之前,检测到数据核对请求,其中,数据核对请求用于请求对第一数据表与第二数据表中在预定时间段内目标参数对应的数据进行核对操作,第一时间段和第二时间段均为预定时间段;核对单元,用于在对第一目标数据与第二目标数据通过第一目标参数进行关联操作之后,对第三数据项包括的第一数据项与第二数据项进行核对操作。
可选地,该数据处理装置还可以包括:第一存储单元,用于在根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合之前,在对第一数据表中的第四数据项执行变更操作的情况下,将第四数据项存入到第三数据表中,并将第一数据表中的第四数据项替换成第四数据项变更后得到的第五数据项,其中,第三数据表中包括具有对应关系的第四数据项和用于指示变更操作的信息。
可选地,该数据处理装置还可以包括:第二存储单元,用于在获取第二目标数据之前,在对第二数据表中的第六数据项执行变更操作的情况下,将第六数据项存入到第四数据表中,并将第二数据表中的第六数据项替换成第六数据项变更后得到的第七数据项,其中,第四数据表中包括具有对应关系的第六数据项和用于指示变更操作的信息。
可选地,第一时间段可以包括以下任意一个时间段:由第一起始时刻为第一初始时刻,第一结束时刻为第一当前时刻组成的时间段,其中,第一初始时刻用于表示生成第一数据表的时刻;由第一起始时刻为第一时刻,第一结束时刻为第一当前时刻组成的时间段,其中,第一时刻为第一初始时刻与第一当前时刻之间的时刻;由第一起始时刻为第二时刻,第一结束时刻为第三时刻组成的时间段,其中,第二时刻与第三时刻均为第一初始时刻与第一当前时刻之间的时刻,且第三时刻晚于第二时刻。
可选地,第二时间段可以包括以下任意一个时间段:由第二起始时刻为第二初始时刻,第二结束时刻为第二当前时刻组成的时间段,其中,第二初始时刻用于表示生成第二数据表的时刻;由第二起始时刻为第四时刻,第二结束时刻为第二当前时刻组成的时间段,其中,第四时刻为第二初始时刻与第二当前时刻之间的时刻;由第二起始时刻为第五时刻,第二结束时刻为第六时刻组成的时间段,其中,第五时刻与第六时刻均为第二初始时刻与第二当前时刻之间的时刻,且第六时刻晚于第五时刻。
可选地,该数据处理装置还可以包括:第五获取单元,用于在获取第一目标数据之后,获取至少一个第三目标数据,其中,第三目标数据为第五数据表中已过去的第三时间段对应的数据,第三目标数据包括:属于第六数据集但并不属于第五数据集的数据,第五数据集为在第三时间段的第三起始时刻上的第五事务快照所得到的数据集合,第六数据集为在第三时间段的第三结束时刻上执行的第六事务快照所得到的数据集合;第二操作单元,用于对第一目标数据与至少一个第三目标数据通过第二目标参数进行关联操作,其中,第二目标参数用于指示第一目标数据和至少一个第三目标数据之间的关联关系。
通过上述模块,达到了从数据表中快速获取任意时间段内的增量数据的目的,进而解决了相关技术从数据表中获取任意时间段内的增量数据的效率较低的技术问题,进一步地,还可以实现快速对多个数据表中任意时间段内的增量数据进行分析的效率的技术效果。
根据本发明实施例的又一个方面,还提供了一种用于实施上述数据处理方法的电子装置。
图8是根据本发明实施例的一种电子装置的结构框图,如图8所示,该电子装置可以包括:一个或多个(图中仅示出一个)处理器201、存储器203,其中,存储器203中可以存储有计算机程序,处理器201可以被设置为运行所述计算机程序以执行本发明实施例的数据处理方法。
其中,存储器203可用于存储计算机程序以及模块,如本发明实施例中的数据处理方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的计算机程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
可选地,如图8所示,该电子装置还可以包括:传输装置205以及输入输出设备207。其中,传输装置205用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(Network InterfaceController,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图8所示的结构仅为示意,电子装置可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,电子装置还可以包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。
可选地,在本实施例中,上述存储器203可以用于存储计算机程序。
可选地,在本实施例中,上述处理器可以被设置为运行计算机程序,以执行以下步骤:根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;根据第一时间段的第一结束时刻上的第二事务快照从第一数据表中获取第二数据集合;获取第一目标数据,其中,第一目标数据为第一数据表中已过去的第一时间段对应的数据,第一目标数据包括:属于第二数据集但并不属于第一数据集的数据。
处理器201还用于执行下述步骤:在获取第一目标数据之后,获取第二目标数据,其中,第二目标数据为第二数据表中已过去的第二时间段对应的数据,第二目标数据包括:属于第四数据集但并不属于第三数据集的数据,第三数据集为在第二时间段的第二起始时刻上的第三事务快照所得到的数据集合,第四数据集为在第二时间段的第二结束时刻上执行的第四事务快照所得到的数据集合;对第一目标数据与第二目标数据通过第一目标参数进行关联操作,其中,第一目标参数用于指示第一目标数据和第二目标数据之间的关联关系。
处理器201还用于执行下述步骤:将第一目标数据中第一目标参数对应的第一数据项与第二目标数据中第一目标参数对应的第二数据项进行关联,得到第三目标数据,其中,第三目标数据中第一目标参数对应的第三数据项包括第一数据项和第二数据项。
处理器201还用于执行下述步骤:在根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合之前,检测到数据核对请求,其中,数据核对请求用于请求对第一数据表与第二数据表中在预定时间段内目标参数对应的数据进行核对操作,第一时间段和第二时间段均为预定时间段;在对第一目标数据与第二目标数据通过第一目标参数进行关联操作之后,对第三数据项包括的第一数据项与第二数据项进行核对操作。
处理器201还用于执行下述步骤:在根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合之前,在对第一数据表中的第四数据项执行变更操作的情况下,将第四数据项存入到第三数据表中,并将第一数据表中的第四数据项替换成第四数据项变更后得到的第五数据项,其中,第三数据表中包括具有对应关系的第四数据项和用于指示变更操作的信息。
处理器201还用于执行下述步骤:在获取第二目标数据之前,在对第二数据表中的第六数据项执行变更操作的情况下,将第六数据项存入到第四数据表中,并将第二数据表中的第六数据项替换成第六数据项变更后得到的第七数据项,其中,第四数据表中包括具有对应关系的第六数据项和用于指示变更操作的信息。
处理器201还用于执行下述步骤:在获取第一目标数据之后,获取至少一个第三目标数据,其中,第三目标数据为第五数据表中已过去的第三时间段对应的数据,第三目标数据包括:属于第六数据集但并不属于第五数据集的数据,第五数据集为在第三时间段的第三起始时刻上的第五事务快照所得到的数据集合,第六数据集为在第三时间段的第三结束时刻上执行的第六事务快照所得到的数据集合;对第一目标数据与至少一个第三目标数据通过第二目标参数进行关联操作,其中,第二目标参数用于指示第一目标数据和至少一个第三目标数据之间的关联关系。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
采用本发明实施例,提供了一种数据处理方案。通过对在所述第一时间段的第一起始时刻上的第一事务快照所得到的第一数据集合与在第一时间段的第一结束时刻上的第二事务快照所得到的第二数据集合取对称差集,获取属于第二数据集但并不属于第一数据集的数据作为第一目标数据;同理通过对在所述第二时间段的第二起始时刻上的第三事务快照所得到的第三数据集合与在第二时间段的第二结束时刻上的第四事务快照所得到的第四数据集合取对称差集,获取属于第四数据集但并不属于第三数据集的数据作为第二目标数据;最后将第一目标数据与第二目标数据通过目标参数进行关联操作。本发明实施例达到了从数据表中快速获取任意时间段内的增量数据的目的,进而解决了相关技术从数据表中获取任意时间段内的增量数据的效率较低的技术问题,进一步地,还可以实现快速对多个数据表中任意时间段内的增量数据进行分析的效率的技术效果。
根据本发明实施例的又一个方面,还提供了一种存储介质。该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述实施例中数据处理方法的步骤。
可选地,在本实施例中,存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的计算机程序:
S1,根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;
S2,根据第一时间段的第一结束时刻上的第二事务快照从第一数据表中获取第二数据集合;
S3,获取第一目标数据,其中,第一目标数据为第一数据表中已过去的第一时间段对应的数据,第一目标数据包括:属于第二数据集但并不属于第一数据集的数据。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:在获取第一目标数据之后,获取第二目标数据,其中,第二目标数据为第二数据表中已过去的第二时间段对应的数据,第二目标数据包括:属于第四数据集但并不属于第三数据集的数据,第三数据集为在第二时间段的第二起始时刻上的第三事务快照所得到的数据集合,第四数据集为在第二时间段的第二结束时刻上执行的第四事务快照所得到的数据集合;对第一目标数据与第二目标数据通过第一目标参数进行关联操作,其中,第一目标参数用于指示第一目标数据和第二目标数据之间的关联关系。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:将第一目标数据中第一目标参数对应的第一数据项与第二目标数据中第一目标参数对应的第二数据项进行关联,得到第三目标数据,其中,第三目标数据中第一目标参数对应的第三数据项包括第一数据项和第二数据项。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:在根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合之前,检测到数据核对请求,其中,数据核对请求用于请求对第一数据表与第二数据表中在预定时间段内目标参数对应的数据进行核对操作,第一时间段和第二时间段均为预定时间段;在对第一目标数据与第二目标数据通过第一目标参数进行关联操作之后,对第三数据项包括的第一数据项与第二数据项进行核对操作。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:在根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合之前,在对第一数据表中的第四数据项执行变更操作的情况下,将第四数据项存入到第三数据表中,并将第一数据表中的第四数据项替换成第四数据项变更后得到的第五数据项,其中,第三数据表中包括具有对应关系的第四数据项和用于指示变更操作的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:在获取第二目标数据之前,在对第二数据表中的第六数据项执行变更操作的情况下,将第六数据项存入到第四数据表中,并将第二数据表中的第六数据项替换成第六数据项变更后得到的第七数据项,其中,第四数据表中包括具有对应关系的第六数据项和用于指示变更操作的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:在获取第一目标数据之后,获取至少一个第三目标数据,其中,第三目标数据为第五数据表中已过去的第三时间段对应的数据,第三目标数据包括:属于第六数据集但并不属于第五数据集的数据,第五数据集为在第三时间段的第三起始时刻上的第五事务快照所得到的数据集合,第六数据集为在第三时间段的第三结束时刻上执行的第六事务快照所得到的数据集合;对第一目标数据与至少一个第三目标数据通过第二目标参数进行关联操作,其中,第二目标参数用于指示第一目标数据和至少一个第三目标数据之间的关联关系。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;
根据所述第一时间段的第一结束时刻上的第二事务快照从所述第一数据表中获取第二数据集合;
获取第一目标数据,其中,所述第一目标数据为所述第一数据表中已过去的所述第一时间段对应的数据,所述第一目标数据包括:属于所述第二数据集但并不属于所述第一数据集的数据。
2.根据权利要求1所述的方法,其特征在于,在所述获取第一目标数据之后,所述方法还包括:
获取第二目标数据,其中,所述第二目标数据为第二数据表中已过去的第二时间段对应的数据,所述第二目标数据包括:属于第四数据集但并不属于第三数据集的数据,所述第三数据集为在所述第二时间段的第二起始时刻上的第三事务快照所得到的数据集合,所述第四数据集为在所述第二时间段的第二结束时刻上执行的第四事务快照所得到的数据集合;
对所述第一目标数据与所述第二目标数据通过第一目标参数进行关联操作,其中,所述第一目标参数用于指示所述第一目标数据和所述第二目标数据之间的关联关系。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一目标数据与所述第二目标数据通过第一目标参数进行关联操作包括:
将所述第一目标数据中所述第一目标参数对应的第一数据项与所述第二目标数据中所述第一目标参数对应的第二数据项进行关联,得到第三目标数据,其中,所述第三目标数据中所述第一目标参数对应的第三数据项包括所述第一数据项和所述第二数据项。
4.根据权利要求3所述的方法,其特征在于,
在所述根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合之前,所述方法还包括:检测到数据核对请求,其中,所述数据核对请求用于请求对所述第一数据表与所述第二数据表中在预定时间段内所述第一目标参数对应的数据进行核对操作,所述第一时间段和所述第二时间段均为所述预定时间段;
在所述对所述第一目标数据与所述第二目标数据通过第一目标参数进行关联操作之后,所述方法还包括:对所述第三数据项包括的所述第一数据项与所述第二数据项进行所述核对操作。
5.根据权利要求2所述的方法,其特征在于,在所述根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合之前,所述方法还包括:
在对所述第一数据表中的第四数据项执行变更操作的情况下,将所述第四数据项存入到第三数据表中,并将所述第一数据表中的所述第四数据项替换成所述第四数据项变更后得到的第五数据项,其中,所述第三数据表中包括具有对应关系的所述第四数据项和用于指示所述变更操作的信息。
6.根据权利要求2所述的方法,其特征在于,在所述获取第二目标数据之前,所述方法还包括:
在对所述第二数据表中的第六数据项执行变更操作的情况下,将所述第六数据项存入到第四数据表中,并将所述第二数据表中的所述第六数据项替换成所述第六数据项变更后得到的第七数据项,其中,所述第四数据表中包括具有对应关系的所述第六数据项和用于指示所述变更操作的信息。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一时间段包括以下任意一个时间段:
由所述第一起始时刻为第一初始时刻,所述第一结束时刻为第一当前时刻组成的时间段,其中,所述第一初始时刻用于表示生成所述第一数据表的时刻;
由所述第一起始时刻为第一时刻,所述第一结束时刻为所述第一当前时刻组成的时间段,其中,所述第一时刻为所述第一初始时刻与所述第一当前时刻之间的时刻;
由所述第一起始时刻为第二时刻,所述第一结束时刻为第三时刻组成的时间段,其中,所述第二时刻与所述第三时刻均为所述第一初始时刻与所述第一当前时刻之间的时刻,且所述第三时刻晚于所述第二时刻。
8.根据权利要求2至6中任一项所述的方法,其特征在于,所述第二时间段包括以下任意一个时间段:
由所述第二起始时刻为第二初始时刻,所述第二结束时刻为第二当前时刻组成的时间段,其中,所述第二初始时刻用于表示生成所述第二数据表的时刻;
由所述第二起始时刻为第四时刻,所述第二结束时刻为所述第二当前时刻组成的时间段,其中,所述第四时刻为所述第二初始时刻与所述第二当前时刻之间的时刻;
由所述第二起始时刻为第五时刻,所述第二结束时刻为第六时刻组成的时间段,其中,所述第五时刻与所述第六时刻均为所述第二初始时刻与所述第二当前时刻之间的时刻,且所述第六时刻晚于所述第五时刻。
9.根据权利要求1所述的方法,其特征在于,在所述获取第一目标数据之后,所述方法还包括:
获取至少一个第四目标数据,其中,所述第四目标数据为第五数据表中已过去的第三时间段对应的数据,所述第四目标数据包括:属于第六数据集但并不属于第五数据集的数据,所述第五数据集为在所述第三时间段的第三起始时刻上的第五事务快照所得到的数据集合,所述第六数据集为在所述第三时间段的第三结束时刻上执行的第六事务快照所得到的数据集合;
对所述第一目标数据与所述至少一个第四目标数据通过第二目标参数进行关联操作,其中,所述第二目标参数用于指示所述第一目标数据和所述至少一个第四目标数据之间的关联关系。
10.一种数据处理装置,其特征在于,包括:
第一获取单元,用于根据第一时间段的第一起始时刻上的第一事务快照从第一数据表中获取第一数据集合;
第二获取单元,用于根据所述第一时间段的第一结束时刻上的第二事务快照从所述第一数据表中获取第二数据集合;
第三获取单元,用于获取第一目标数据,其中,所述第一目标数据为所述第一数据表中已过去的所述第一时间段对应的数据,所述第一目标数据包括:属于所述第二数据集但并不属于所述第一数据集的数据。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第四获取单元,用于获取第二目标数据,其中,所述第二目标数据为第二数据表中已过去的第二时间段对应的数据,所述第二目标数据包括:属于第四数据集但并不属于第三数据集的数据,所述第三数据集为在所述第二时间段的第二起始时刻上的第三事务快照所得到的数据集合,所述第四数据集为在所述第二时间段的第二结束时刻上的第四事务快照所得到的数据集合;
第一操作单元,用于对所述第一目标数据与所述第二目标数据通过第一目标参数进行关联操作,其中,所述第一目标参数用于指示所述第一目标数据和所述第二目标数据之间的关联关系。
12.根据权利要求11所述的装置,其特征在于,所述第一操作单元包括:
关联模块,用于将所述第一目标数据中所述第一目标参数对应的第一数据项与所述第二目标数据中所述第一目标参数对应的第二数据项进行关联,得到第三目标数据,其中,所述第三目标数据中所述第一目标参数对应的第三数据项包括所述第一数据项和所述第二数据项。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第五获取单元,用于在所述获取第一目标数据之后,获取至少一个第三目标数据,其中,所述第三目标数据为第五数据表中已过去的第三时间段对应的数据,所述第三目标数据包括:属于第六数据集但并不属于第五数据集的数据,所述第五数据集为在所述第三时间段的第三起始时刻上的第五事务快照所得到的数据集合,所述第六数据集为在所述第三时间段的第三结束时刻上执行的第六事务快照所得到的数据集合;
第二操作单元,用于对所述第一目标数据与所述至少一个第三目标数据通过第二目标参数进行关联操作,其中,所述第二目标参数用于指示所述第一目标数据和所述至少一个第三目标数据之间的关联关系。
14.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至9任一项中所述的方法。
15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至9任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810444404.8A CN110196758A (zh) | 2018-05-10 | 2018-05-10 | 数据处理方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810444404.8A CN110196758A (zh) | 2018-05-10 | 2018-05-10 | 数据处理方法和装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110196758A true CN110196758A (zh) | 2019-09-03 |
Family
ID=67751308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810444404.8A Pending CN110196758A (zh) | 2018-05-10 | 2018-05-10 | 数据处理方法和装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110196758A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090399A (zh) * | 2019-12-13 | 2020-05-01 | 北京浪潮数据技术有限公司 | 一种磁盘数据的在线迁移方法、装置、设备及介质 |
CN111309733A (zh) * | 2020-02-20 | 2020-06-19 | 深圳震有科技股份有限公司 | 增量数据抽取处理方法及装置、计算机设备、介质 |
US20210019299A1 (en) * | 2019-07-17 | 2021-01-21 | Aveva Software, Llc | System and server comprising database schema for accessing and managing utilization and job data |
CN112559641A (zh) * | 2020-12-07 | 2021-03-26 | 泰康保险集团股份有限公司 | 拉链表的处理方法及装置、可读存储介质及电子设备 |
CN114385631A (zh) * | 2021-12-17 | 2022-04-22 | 北京达佳互联信息技术有限公司 | 校验方法、装置、服务器及存储介质 |
US11531594B2 (en) | 2018-11-30 | 2022-12-20 | Tencent Technology (Shenzhen) Company Limited | Data recovery method and apparatus, server, and computer-readable storage medium |
WO2023071367A1 (zh) * | 2021-10-25 | 2023-05-04 | 中兴通讯股份有限公司 | 通信业务数据的处理方法、装置和计算机存储介质 |
WO2023077971A1 (zh) * | 2021-11-05 | 2023-05-11 | 腾讯科技(深圳)有限公司 | 事务处理方法、装置、计算设备及存储介质 |
CN118069431A (zh) * | 2024-04-19 | 2024-05-24 | 天津南大通用数据技术股份有限公司 | 一种基于原地更新储存的数据库闪回方法 |
US12001297B2 (en) | 2018-11-30 | 2024-06-04 | Tencent Technology (Shenzhen) Company Limited | Data backup method and apparatus, server, and computer-readable storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307277A1 (en) * | 2008-06-04 | 2009-12-10 | Microsoft Corporation | Generation of database deltas and restoration |
CN103226466A (zh) * | 2013-04-26 | 2013-07-31 | 浪潮集团山东通用软件有限公司 | 一种高效的增量数据捕获方法 |
US20150052108A1 (en) * | 2013-08-14 | 2015-02-19 | Globalfoundries Inc. | Method, computer readable storage medium and computer system for obtaining snapshots of data |
CN106326219A (zh) * | 2015-06-16 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 核对业务系统数据的方法、装置及系统 |
-
2018
- 2018-05-10 CN CN201810444404.8A patent/CN110196758A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307277A1 (en) * | 2008-06-04 | 2009-12-10 | Microsoft Corporation | Generation of database deltas and restoration |
CN103226466A (zh) * | 2013-04-26 | 2013-07-31 | 浪潮集团山东通用软件有限公司 | 一种高效的增量数据捕获方法 |
US20150052108A1 (en) * | 2013-08-14 | 2015-02-19 | Globalfoundries Inc. | Method, computer readable storage medium and computer system for obtaining snapshots of data |
CN106326219A (zh) * | 2015-06-16 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 核对业务系统数据的方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
HAIXIANG LI等: "《Efficient time-interval data extraction in MVCC-based》", 《WORLD WIDE WEB JOURNAL》 * |
罗佳 张起荣: "《基于SQL SERVER 2012的数据库技术及应用》", 30 June 2017, 电子科技大学出版社 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11531594B2 (en) | 2018-11-30 | 2022-12-20 | Tencent Technology (Shenzhen) Company Limited | Data recovery method and apparatus, server, and computer-readable storage medium |
US12001297B2 (en) | 2018-11-30 | 2024-06-04 | Tencent Technology (Shenzhen) Company Limited | Data backup method and apparatus, server, and computer-readable storage medium |
US20210019299A1 (en) * | 2019-07-17 | 2021-01-21 | Aveva Software, Llc | System and server comprising database schema for accessing and managing utilization and job data |
CN111090399A (zh) * | 2019-12-13 | 2020-05-01 | 北京浪潮数据技术有限公司 | 一种磁盘数据的在线迁移方法、装置、设备及介质 |
CN111309733A (zh) * | 2020-02-20 | 2020-06-19 | 深圳震有科技股份有限公司 | 增量数据抽取处理方法及装置、计算机设备、介质 |
CN112559641A (zh) * | 2020-12-07 | 2021-03-26 | 泰康保险集团股份有限公司 | 拉链表的处理方法及装置、可读存储介质及电子设备 |
WO2023071367A1 (zh) * | 2021-10-25 | 2023-05-04 | 中兴通讯股份有限公司 | 通信业务数据的处理方法、装置和计算机存储介质 |
WO2023077971A1 (zh) * | 2021-11-05 | 2023-05-11 | 腾讯科技(深圳)有限公司 | 事务处理方法、装置、计算设备及存储介质 |
CN114385631A (zh) * | 2021-12-17 | 2022-04-22 | 北京达佳互联信息技术有限公司 | 校验方法、装置、服务器及存储介质 |
CN118069431A (zh) * | 2024-04-19 | 2024-05-24 | 天津南大通用数据技术股份有限公司 | 一种基于原地更新储存的数据库闪回方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110196758A (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN103299267B (zh) | 用于执行多租户存储中的交叉存储连接的方法和系统 | |
CN103049556B (zh) | 一种海量医疗数据的快速统计查询方法 | |
US10452625B2 (en) | Data lineage analysis | |
US9348641B2 (en) | System and method for performing a transaction in a massively parallel processing database | |
CN104216955B (zh) | 一种操作数据及管理事务的方法、装置及分布式系统 | |
US8694647B2 (en) | Read-only operations processing in a paxos replication system | |
CN110168515A (zh) | 用于分析数据关系以支持查询执行的系统 | |
CN110019251A (zh) | 一种数据处理系统、方法及设备 | |
CN103646111A (zh) | 大数据环境下实现实时数据关联的系统及方法 | |
CN109344153A (zh) | 业务数据的处理方法及终端设备 | |
CN111881223B (zh) | 数据管理方法、设备、系统及存储介质 | |
CN108536752A (zh) | 一种数据同步方法、装置和设备 | |
CN105808653B (zh) | 一种基于用户标签系统的数据处理方法及装置 | |
CN110134705A (zh) | 一种数据查询方法、缓存服务器及终端 | |
CN110023925A (zh) | 生成、访问和显示沿袭元数据 | |
CN109710388A (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
CN109299087A (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
CN107148617A (zh) | 日志协调存储组的自动配置 | |
CN105787058B (zh) | 一种用户标签系统及基于用户标签系统的数据推送系统 | |
CN105518669A (zh) | 数据模型改变管理 | |
CN114218218A (zh) | 基于数据仓库的数据处理方法、装置、设备及存储介质 | |
Nawab et al. | Message Futures: Fast Commitment of Transactions in Multi-datacenter Environments. | |
CN111400332A (zh) | 项目进度的监控方法及装置 | |
CN107609090A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190903 |
|
RJ01 | Rejection of invention patent application after publication |