CN108009223A - 一种交易数据的一致性检测方法及装置 - Google Patents
一种交易数据的一致性检测方法及装置 Download PDFInfo
- Publication number
- CN108009223A CN108009223A CN201711190483.6A CN201711190483A CN108009223A CN 108009223 A CN108009223 A CN 108009223A CN 201711190483 A CN201711190483 A CN 201711190483A CN 108009223 A CN108009223 A CN 108009223A
- Authority
- CN
- China
- Prior art keywords
- data
- tables
- detected
- dimension
- interim table
- 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.)
- Granted
Links
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种交易数据的一致性检测方法及装置,涉及在线交易技术领域。方法包括:获取待检测的多份数据表,并获取各数据表的表结构以及待检测的数据项;根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列;汇总后逐行对各数据表对应的待检测列进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
Description
技术领域
本发明涉及在线交易技术领域,尤其涉及一种交易数据的一致性检测方法及装置。
背景技术
当前,在线交易系统中的交易明细以一份为准,但是根据业务延伸出的不同的子平台根据业务需求,会使用交易明细的延伸出的汇总数据,例如常见的月报、财务报表等功能。在这种情况下,交易明细和汇总数据之间的数据一致性检测就变得非常重要。
目前,检测不同平台系统间的数据一致性的方法有很多,例如方法一:该方法是获取多个副本数据中每个副本数据所在数据分片的二进制日志文件,依据对二进制日志文件的判断结果确定各个数据分片中的副本数据是否一致。但是,方法一要求多个副本的数据结构完全一样,对于异构数据则无法采用此种方法一。另一种方法二是数据交易时进行检测,在一个平台生成信息交互,然后将信息同步到多个平台上,保证数据再多个平台的一致性。然而方法二的过程会影响交易的效率,并且不适合大批量数据的检测。
可见,当前如何实现一种高效,大批量,且能够适用于异构数据的交易数据的一致性检测,成为了一个亟待解决的问题。
发明内容
本发明的实施例提供一种交易数据的一致性检测方法及装置,以解决当前现有技术缺乏一种高效,大批量,且能够适用于异构数据的交易数据的一致性检测的方法的问题。
为达到上述目的,本发明采用如下技术方案:
一种交易数据的一致性检测方法,包括:
获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成;
根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;
根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;
根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;
汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
具体的,所述根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表,包括:
将待检测的数据项之中的共有度量作为临时表中的度量;
根据待检测的数据项之中的具有上下层级关系的维度,生成一虚拟维度表,并确定所述虚拟维度表中各具有上下层级关系的维度列的最高层级维度;
将所述最高层级维度作为临时表中的维度列。
具体的,根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,包括:
确定临时表中的维度列中是否存在与所述分区信息相关的维度列,若存在,则根据分区信息向所述临时表插入数据,形成向所述临时表插入数据的过程的第一部分;
确定数据表中是否有包含临时表中的维度列的索引,若存在,则根据索引向所述临时表插入数据,形成向所述临时表插入数据的过程的第二部分;
将所述过程的第一部分和所述过程的第二部分进行合并,整合为向所述临时表插入数据的过程。
具体的,将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,包括:
将各数据表中的待检测的数据项中的相同含义的检测维度插入到临时表的不同行同一列中;
将各数据表中的待检测的数据项中的各待检测度量插入到临时表的不同行不同列中,最后将不同数据表中同一对象对应的检测多行数据合并为一行。
一种交易数据的一致性检测装置,包括:
数据表获取单元,用于获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量列组成;
结构分析单元,用于根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;
临时表生成单元,用于根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;
数据插入单元,用于根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;
一致性检测单元,用于汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
另外,所述临时表生成单元,具体用于:
将待检测的数据项之中的共有度量作为临时表中的度量;
根据待检测的数据项之中的具有上下层级关系的维度,生成一虚拟维度表,并确定所述虚拟维度表中各具有上下层级关系的维度列的最高层级维度;
将所述最高层级维度作为临时表中的维度列。
另外,所述数据插入单元,具体用于:
确定临时表中的维度列中是否存在与所述分区信息相关的维度列,若存在,则根据分区信息向所述临时表插入数据,形成向所述临时表插入数据的过程的第一部分;
确定数据表中是否有包含临时表中的维度列的索引,若存在,则根据索引向所述临时表插入数据,形成向所述临时表插入数据的过程的第二部分;
将所述过程的第一部分和所述过程的第二部分进行合并,整合为向所述临时表插入数据的过程。
进一步的,所述数据插入单元,具体还用于:
将各数据表中的待检测的数据项中的相同含义的检测维度插入到临时表的不同行同一列中;
将各数据表中的待检测的数据项中的各待检测度量插入到临时表的不同行不同列中,最后将不同数据表中同一对象对应的检测多行数据合并为一行。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成;
根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;
根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;
根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;
汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
一种计算机设备,包括存储器、处理器及存储在存储上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成;
根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;
根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;
根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;
汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
本发明实施例提供的一种交易数据的一致性检测方法及装置,首先获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成;然后,根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;进而,根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。对于多份数据表,即使表结构是异构的,也可以通过临时表来完成数据的重新插入,从而提高大批量交易数据的高效一致性检测,并且在发现一致性存在问题时,可以及时确定存在问题的临时表的数据列和行,及时定位了一致性存在问题的位置。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种交易数据的一致性检测方法的流程图一;
图2为本发明实施例提供的一种交易数据的一致性检测方法的流程图二;
图3为本发明实施例提供的一种交易数据的一致性检测装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在实现本发明实施例的过程中,发明人发现现有技术存在如下方案,且存在一些缺陷:
现有技术一(CN201510954550.1):记载了一种多副本数据一致性的检测方法及装置,方法包括:获取多个副本数据中每个副本数据所在数据分片的二进制日志文件,二进制日志文件用于记录相应数据分片中对副本数据所执行的数据操作;判断各个副本数据所在数据分片的二进制日志文件是否相同;依据对二进制日志文件的判断结果确定各个数据分片中的副本数据是否一致。
该现有技术一采用的是日志比较的方式,但有一个前提,基础数据的数据结构必须相同,当数据结构有差异时,即使所需要核对的数据文件的数据明细相同,数据文件不同会导致二进制日志文件不同,对不同结构的数据文件做相同的数据明细变更的操作会因为结构原因而有所不同,导致记录操作数据的二进制日志文件也会不同。由于以上的原因,此现有技术一并不适用于交易明细和汇总数据之间(即异构数据之间)的数据一致性检测。
现有技术二(CN201310553660.8):记载了一种多平台之间数据一致性检测的方法和系统,方法包括:数据交易时进行检测,在交易时生成第一平台信息表,所述第一平台信息表包括第一平台在预设时间段内的交互信息记录,所述交互信息记录包括交互完成时间、业务交互特征数据、第一平台业务数据标识和/或第二平台业务数据标识、第一平台数据处理状态标识;获取第二平台信息表,所述第二平台信息表包括第二平台在预设时间段内的交互信息记录,所述交互信息记录包括交互完成时间、业务交互特征数据、第一平台业务数据标识和/或第二平台业务数据标识;分别提取所述第二平台信息表中的交互信息记录,在所述第一平台信息表中查找与所述第二平台信息表中的交互完成时间、业务交互特征数据、第一平台业务数据标识和/或第二平台业务数据标识相同的交互信息记录;若查找成功,则查看所述第一平台信息表中的第一平台数据处理状态标识是否为成功状态。若是,则将所述第二平台信息表中的交互信息记录写入第三信息表。可见,现有技术二采用的是交易时进行数据同步,针对每一笔交易,根据数据的不同状态标记完成多个数据源同步的过程。但是该现有技术二不能满足在短时间内完成大批量交易的数据一致性的检查,仅适用于少量数据在交易时的同步,而并非交易数据的一致性检查。
为了克服上述现有技术一和现有技术二的问题,如图1所示,本发明实施例提供一种交易数据的一致性检测方法,包括:
步骤101、获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成。
步骤102、根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度。
步骤103、根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表。
步骤104、根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总。
步骤105、汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
本发明实施例提供的一种交易数据的一致性检测方法,首先获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成;然后,根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;进而,根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。对于多份数据表,即使表结构是异构的,也可以通过临时表来完成数据的重新插入,从而提高大批量交易数据的高效一致性检测,并且在发现一致性存在问题时,可以及时确定存在问题的临时表的数据列和行,及时定位了一致性存在问题的位置。
为了使本领域的技术人员更好的了解本发明,下面结合具体实例,列举一个更为详细的实施例,如图2所示,本发明实施例提供一种交易数据的一致性检测方法,包括:
步骤201、获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成。
此处,上述多份数据表可以是来自于不同的交易系统平台,各数据表之间的数据结构可以是异构的。所述待检测的数据项可以是指交易系统平台中的数据,例如整个待检测的数据项为“2017年9月份中奖信息”,其包含多个维度,例如包含“中奖时间”、“中奖网点地址”、“中奖金额”、“中奖用户名”等维度。由于各数据表之间的数据结构可以是异构的,因此各数据表所包含的维度可以不相同,且个别维度之间可能存在上下层级关系,例如“中奖网点地址”,一些数据表中统计的是县级地区如“大兴区”、“通州区”,另一些数据表中统计的是市级地区如“北京市”、“上海市”,而县级地区是属于在市级地区之中的。
步骤202、根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度。
其中共有维度是指各数据表中待检测的数据项中相同的维度,例如“2017年9月份中奖信息”中,各数据表中均含有“中奖用户名”和“中奖金额”,则该“中奖用户名”和“中奖金额”即为共有维度。而具有上下层级关系的维度是例如上述的“中奖网点地址”,一些数据表中统计的是县级地区如“大兴区”、“通州区”,另一些数据表中统计的是市级地区如“北京市”、“上海市”,而县级地区是属于在市级地区之中的;又例如“中奖时间”中,一些数据表采用小时来统计、一些数据表采用天来统计,则采用天来统计的维度是采用小时来统计的维度的上一层级。
步骤203、将待检测的数据项之中的共有度量作为临时表中的度量。
例如,将“中奖用户名”、“中奖金额”等共有度量加入到临时表中的度量中,而对于一些数据表存在,而另一些数据表不存在的度量,则需要舍弃。例如,一数据表含有度量“中奖时间”、“中奖网点地址”、“中奖金额”、“中奖用户名”,另一数据表仅含有“中奖金额”和“中奖用户名”,则“中奖时间”、“中奖网点地址”度量需要舍弃,仅在临时表中形成“中奖金额”和“中奖用户名”的度量。
步骤204、根据待检测的数据项之中的具有上下层级关系的维度,生成一虚拟维度表,并确定所述虚拟维度表中各具有上下层级关系的维度列的最高层级维度。
步骤205、将所述最高层级维度作为临时表中的维度列。
例如,一些数据表中统计的是县级地区如“大兴区”、“通州区”,另一些数据表中统计的是市级地区如“北京市”、“上海市”,而县级地区是属于在市级地区之中的,则需要以市级地区来作为临时表中的维度,即“大兴区”、“通州区”这样的维度应直接属于“北京市”。
步骤206、首先确定临时表中的维度列中是否存在与所述分区信息相关的维度列,若存在,则根据分区信息向所述临时表插入数据,形成向所述临时表插入数据的过程的第一部分。
分区是在表创建过程中根据业务进行的存储分区,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能,本方案中的步骤206和步骤207采用优先使用分区(例如以oracle数据库为例,优先使用range(范围)和list(列表)分区),然后再使用索引的方式,最终整合临时表插入数据的过程,使得整个插入过程可以速度较快,消耗系统的CPU较少。
步骤207、其次确定数据表中是否有包含临时表中的维度列的索引,若存在,则根据索引向所述临时表插入数据,形成向所述临时表插入数据的过程的第二部分。
步骤208、将所述过程的第一部分和所述过程的第二部分进行合并,整合为向所述临时表插入数据的过程。
步骤209、将各数据表中的待检测的数据项中的相同含义的检测维度插入到临时表的不同行同一列中,将各数据表中的待检测的数据项中的各待检测度量插入到临时表的不同行不同列中。
一般情况下,相同含义的维度是指不具有数字内容的数据(如不具备金额的数据),例如各数据表中均存在“中奖网点地址”、“中奖时间”等维度,则可将各数据表的“中奖网点地址”、“中奖时间”分别合并插入到临时表对应的两列中,待检测度量可以是具有数字内容的数据(例如具有金额的数据),例如各数据表中均存在“中奖金额”的待检测项数据,则可以将各数据表对应的“中奖金额”插入到临时表的不同度量列中。
步骤210、将不同数据表中同一对象对应的检测多行数据合并为一行。
如下表1所示,最终形成的临时表可以是:
表1:
步骤211、逐行对各数据表对应的待检测列进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
例如,对于上表1所示,待检测列为最后三列的“中奖金额”,通过逐行检测,可以确定中奖用户0002对应的各表的中奖金额存在不一致的问题,从而实现了高效的定位。
本发明实施例提供的一种交易数据的一致性检测方法,首先获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成;然后,根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;进而,根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。对于多份数据表,即使表结构是异构的,也可以通过临时表来完成数据的重新插入,从而提高大批量交易数据的高效一致性检测,并且在发现一致性存在问题时,可以及时确定存在问题的临时表的数据列和行,及时定位了一致性存在问题的位置。
对于上述的交易数据的一致性检测方法,下面列举一个详细的实例,其过程如下:
以核对销售数据为例,有一份数据交易明细和多份按照不同维度进行汇总的汇总表。
(1)、分析交易明细,找出所有的维度列。
(2)、分析按照交易明细进行的汇总表,找出所有的维度列。
(3)、对比交易明细和汇总表的维度列,找出共用的维度列和有上下层级关系的维度列,将这些维度列进行筛选,和销售数据列一起生成临时表。
(4)、检测交易明细表的结构,发现有分区,检查查询范围是否可以利用上分区,例如交易明细表是按照时间进行范围分区,临时表也有时间为天的列,则使用交易明细表的分区,减少扫描数据范围,如果可以利用上,生成按照分区检测的过程。
(5)、继续检测交易明细表的结构,发现有使用临时表的所含有字段的索引,生成按照索引检测检测的过程。
(6)、将第(4)、(5)两步操作操作合并,整合为插入临时表的过程。
(7)、检测各个汇总表的结构,发现有分区,检查查询范围是否可以利用上分区,如果可以利用上,生成按照分区检测的过程。
(8)、继续检测各个汇总表的结构,发现有使用临时表的所含有字段的索引,生成按照索引检测检测的过程。
(9)、将第(7)、(8)两步操作操作合并,整合为插入临时表的过程。
(10)、执行第(6)、(9)两步操作生成的过程,将数据插入到临时表中。
(11)、合并临时表中的数据,将不同数据来源的同一含义的检测字段的数据合并为一行。
(12)、进行逐行检测,比对数据。
(13)、根据比对结果,判断是否发生异常,如果有异常,锁定出现异常数据的位置,如果正常,输出结果。
另外,本发明实施例中还可以不采用生成临时表的方式,而是使用数据明细重新生成要核对的统计表。而临时表和统计表的结构不同,统计表是固定结构,临时表是根据要比对数据项生成的,临时表是针对数据项(可能多个)的表,结构不固定,比统计表数据更抽象。
对于本发明的实施例,可以有如下有益效果:
第一,在本发明实施例中,获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项,其检测范围可以由人工定义,可以针对重要的数据进行优先核对,并且可以对数据进行重复性核对。
第二,在本发明实施例中,检测的数据可以为异构的,可以有效核对交易明细的延伸出的汇总数据。
第三,在本发明实施例中,可以自动按照输入的条件挑选最优的执行计划的程序,减轻了数据库的压力,而且节省了时间,提升了性能。
第四,在本发明实施例中,当发生一致性问题时,可以直接锁定异常数据的位置。避免检测出现异常时,还需要再执行其他程序锁定异常数据。
对应于上述图1和图2所示的方法实施例,如图3所示,本发明实施例还提供一种交易数据的一致性检测装置,包括:
数据表获取单元31,用于获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成。
结构分析单元32,用于根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度。
临时表生成单元33,用于根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表。
数据插入单元34,用于根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总。
一致性检测单元35,用于汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
另外,所述临时表生成单元33,具体用于:
将待检测的数据项之中的共有度量作为临时表中的度量。
根据待检测的数据项之中的具有上下层级关系的维度,生成一虚拟维度表,并确定所述虚拟维度表中各具有上下层级关系的维度列的最高层级维度。
将所述最高层级维度作为临时表中的维度列。
另外,所述数据插入单元34,具体用于:
确定临时表中的维度列中是否存在与所述分区信息相关的维度列,若存在,则根据分区信息向所述临时表插入数据,形成向所述临时表插入数据的过程的第一部分。
确定数据表中是否有包含临时表中的维度列的索引,若存在,则根据索引向所述临时表插入数据,形成向所述临时表插入数据的过程的第二部分。
将所述过程的第一部分和所述过程的第二部分进行合并,整合为向所述临时表插入数据的过程。
进一步的,所述数据插入单元34,具体还用于:
将各数据表中的待检测的数据项中的相同含义的检测维度插入到临时表的不同行同一列中。
将各数据表中的待检测的数据项中的各待检测度量插入到临时表的不同行不同列中,最后将不同数据表中同一对象对应的检测多行数据合并为一行。
本发明实施例提供的一种交易数据的一致性检测装置,首先获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成;然后,根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;进而,根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。对于多份数据表,即使表结构是异构的,也可以通过临时表来完成数据的重新插入,从而提高大批量交易数据的高效一致性检测,并且在发现一致性存在问题时,可以及时确定存在问题的临时表的数据列和行,及时定位了一致性存在问题的位置。
另外,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成。
根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度。
根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表。
根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总。
汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
另外,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成。
根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度。
根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表。
根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总。
汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种交易数据的一致性检测方法,其特征在于,包括:
获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成;
根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;
根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;
根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;
汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
2.根据权利要求1所述的交易数据的一致性检测方法,其特征在于,所述根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表,包括:
将待检测的数据项之中的共有度量作为临时表中的度量;
根据待检测的数据项之中的具有上下层级关系的维度,生成一虚拟维度表,并确定所述虚拟维度表中各具有上下层级关系的维度列的最高层级维度;
将所述最高层级维度作为临时表中的维度列。
3.根据权利要求2所述的交易数据的一致性检测方法,其特征在于,根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,包括:
确定临时表中的维度列中是否存在与所述分区信息相关的维度列,若存在,则根据分区信息向所述临时表插入数据,形成向所述临时表插入数据的过程的第一部分;
确定数据表中是否有包含临时表中的维度列的索引,若存在,则根据索引向所述临时表插入数据,形成向所述临时表插入数据的过程的第二部分;
将所述过程的第一部分和所述过程的第二部分进行合并,整合为向所述临时表插入数据的过程。
4.根据权利要求3所述的交易数据的一致性检测方法,其特征在于,将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,包括:
将各数据表中的待检测的数据项中的相同含义的检测维度插入到临时表的不同行同一列中;
将各数据表中的待检测的数据项中的各待检测度量插入到临时表的不同行不同列中,最后将不同数据表中同一对象对应的检测多行数据合并为一行。
5.一种交易数据的一致性检测装置,其特征在于,包括:
数据表获取单元,用于获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量列组成;
结构分析单元,用于根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;
临时表生成单元,用于根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;
数据插入单元,用于根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;
一致性检测单元,用于汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
6.根据权利要求5所述的交易数据的一致性检测装置,其特征在于,所述临时表生成单元,具体用于:
将待检测的数据项之中的共有度量作为临时表中的度量;
根据待检测的数据项之中的具有上下层级关系的维度,生成一虚拟维度表,并确定所述虚拟维度表中各具有上下层级关系的维度列的最高层级维度;
将所述最高层级维度作为临时表中的维度列。
7.根据权利要求6所述的交易数据的一致性检测装置,其特征在于,所述数据插入单元,具体用于:
确定临时表中的维度列中是否存在与所述分区信息相关的维度列,若存在,则根据分区信息向所述临时表插入数据,形成向所述临时表插入数据的过程的第一部分;
确定数据表中是否有包含临时表中的维度列的索引,若存在,则根据索引向所述临时表插入数据,形成向所述临时表插入数据的过程的第二部分;
将所述过程的第一部分和所述过程的第二部分进行合并,整合为向所述临时表插入数据的过程。
8.根据权利要求7所述的交易数据的一致性检测装置,其特征在于,所述数据插入单元,具体还用于:
将各数据表中的待检测的数据项中的相同含义的检测维度插入到临时表的不同行同一列中;
将各数据表中的待检测的数据项中的各待检测度量插入到临时表的不同行不同列中,最后将不同数据表中同一对象对应的检测多行数据合并为一行。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:
获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成;
根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;
根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;
根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;
汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
10.一种计算机设备,包括存储器、处理器及存储在存储上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
获取待检测的多份数据表,并从所述多份数据表中获取各数据表的表结构以及待检测的数据项;所述待检测的数据项由一至多个度量组成;
根据各数据表的表结构,确定各数据表中待检测的数据项中的每个度量所涉及的共有的维度和具有上下层级关系的维度;
根据待检测的数据项之中的每个度量以及度量所涉及的共有的维度和具有上下层级关系的维度,生成临时表;
根据各数据表的分区信息和索引信息,确定向所述临时表插入数据的过程,并将各数据表中的待检测的数据项的数据通过上述过程插入到所述临时表的各列中,各数据表生成的数据中维度插入临时表中相同的维度列,度量插入临时表中不同的度量列,最后完成汇总;
汇总后逐行对各数据表对应的待检测度量进行检测,以确定临时表每行的待检测列从不同数据表获取的数据的一致性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711190483.6A CN108009223B (zh) | 2017-11-24 | 2017-11-24 | 一种交易数据的一致性检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711190483.6A CN108009223B (zh) | 2017-11-24 | 2017-11-24 | 一种交易数据的一致性检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108009223A true CN108009223A (zh) | 2018-05-08 |
CN108009223B CN108009223B (zh) | 2021-12-07 |
Family
ID=62053830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711190483.6A Active CN108009223B (zh) | 2017-11-24 | 2017-11-24 | 一种交易数据的一致性检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108009223B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108648092A (zh) * | 2018-05-16 | 2018-10-12 | 中国平安人寿保险股份有限公司 | 保险赔付率计算方法、装置、设备及计算机可读存储介质 |
CN111897844A (zh) * | 2020-06-20 | 2020-11-06 | 中国建设银行股份有限公司 | 基于粒度信息的报表合法性检测方法、装置及电子设备 |
CN111930842A (zh) * | 2020-08-10 | 2020-11-13 | 中国工商银行股份有限公司 | 一种数据核对方法及装置 |
US11106649B2 (en) * | 2018-03-06 | 2021-08-31 | Ping An Technology (Shenzhen) Co., Ltd. | Electronic apparatus, data chain archiving method, system and storage medium |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102650995A (zh) * | 2011-02-25 | 2012-08-29 | 中国银联股份有限公司 | 多维数据分析模型生成系统及方法 |
CN103605776A (zh) * | 2013-11-28 | 2014-02-26 | 北京国双科技有限公司 | 信息数据库的数据处理方法和装置 |
CN103984715A (zh) * | 2014-05-08 | 2014-08-13 | 武汉库百网络技术有限公司 | 一种异构数据库的数据同步、校验方法、装置及系统 |
CN104111937A (zh) * | 2013-04-18 | 2014-10-22 | 中兴通讯股份有限公司 | 主、备数据库及其数据一致性检测、修复方法和装置 |
US20150046413A1 (en) * | 2013-08-06 | 2015-02-12 | Sap Ag | Delta store giving row-level versioning semantics to a non-row-level versioning underlying store |
CN104965879A (zh) * | 2015-06-12 | 2015-10-07 | 小米科技有限责任公司 | 修改数据表的表结构的方法及装置 |
CN105989194A (zh) * | 2015-03-20 | 2016-10-05 | 国际商业机器公司 | 表数据比较的方法和系统 |
CN106407366A (zh) * | 2016-09-09 | 2017-02-15 | 浪潮软件股份有限公司 | 一种分布式系统数据提取方法 |
-
2017
- 2017-11-24 CN CN201711190483.6A patent/CN108009223B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102650995A (zh) * | 2011-02-25 | 2012-08-29 | 中国银联股份有限公司 | 多维数据分析模型生成系统及方法 |
CN104111937A (zh) * | 2013-04-18 | 2014-10-22 | 中兴通讯股份有限公司 | 主、备数据库及其数据一致性检测、修复方法和装置 |
US20150046413A1 (en) * | 2013-08-06 | 2015-02-12 | Sap Ag | Delta store giving row-level versioning semantics to a non-row-level versioning underlying store |
CN103605776A (zh) * | 2013-11-28 | 2014-02-26 | 北京国双科技有限公司 | 信息数据库的数据处理方法和装置 |
CN103984715A (zh) * | 2014-05-08 | 2014-08-13 | 武汉库百网络技术有限公司 | 一种异构数据库的数据同步、校验方法、装置及系统 |
CN105989194A (zh) * | 2015-03-20 | 2016-10-05 | 国际商业机器公司 | 表数据比较的方法和系统 |
CN104965879A (zh) * | 2015-06-12 | 2015-10-07 | 小米科技有限责任公司 | 修改数据表的表结构的方法及装置 |
CN106407366A (zh) * | 2016-09-09 | 2017-02-15 | 浪潮软件股份有限公司 | 一种分布式系统数据提取方法 |
Non-Patent Citations (1)
Title |
---|
王晓鹏: ""上海医保接口交易数据一致性及准确性研究"", 《信息与电脑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11106649B2 (en) * | 2018-03-06 | 2021-08-31 | Ping An Technology (Shenzhen) Co., Ltd. | Electronic apparatus, data chain archiving method, system and storage medium |
CN108648092A (zh) * | 2018-05-16 | 2018-10-12 | 中国平安人寿保险股份有限公司 | 保险赔付率计算方法、装置、设备及计算机可读存储介质 |
CN111897844A (zh) * | 2020-06-20 | 2020-11-06 | 中国建设银行股份有限公司 | 基于粒度信息的报表合法性检测方法、装置及电子设备 |
CN111930842A (zh) * | 2020-08-10 | 2020-11-13 | 中国工商银行股份有限公司 | 一种数据核对方法及装置 |
CN111930842B (zh) * | 2020-08-10 | 2024-02-09 | 中国工商银行股份有限公司 | 一种数据核对方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108009223B (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108009223A (zh) | 一种交易数据的一致性检测方法及装置 | |
CN104468777B (zh) | 数据操作方法和装置 | |
CN104756106B (zh) | 表征数据存储系统中的数据源 | |
CN107545422B (zh) | 一种套现检测方法及装置 | |
US10452625B2 (en) | Data lineage analysis | |
CN110399303B (zh) | 用于准备测试数据的方法、数据准备装置和电子设备 | |
US8429574B2 (en) | Dual-pattern coloring technique for mask design | |
CN108536752A (zh) | 一种数据同步方法、装置和设备 | |
CN107908733A (zh) | 一种全球贸易数据的查询方法,装置及系统 | |
CN106056287A (zh) | 基于上下文对数据集进行数据质量评估的设备及方法 | |
Li et al. | Quantitative analysis of placebo response and factors associated with menopausal hot flashes | |
CN109241165A (zh) | 一种数据库同步延时的确定方法、装置和设备 | |
CN110515927A (zh) | 数据处理方法及其系统、电子设备和介质 | |
CN109933507A (zh) | 一种程序性能检测方法、系统、设备及存储介质 | |
CN112308727A (zh) | 保险理赔业务处理方法及装置 | |
CN107783890A (zh) | 软件缺陷数据处理方法和装置 | |
CN106156260B (zh) | 一种数据缺失修补的方法和装置 | |
CN106959872A (zh) | 应用上线方法和装置 | |
Maria et al. | Applying scrum in an interdisciplinary project using big data, internet of things, and credit cards | |
CN110659308B (zh) | 一种数据清算处理方法及装置 | |
CN110287114B (zh) | 一种数据库脚本性能测试的方法及装置 | |
CN109919626A (zh) | 一种高风险银行卡的识别方法及装置 | |
CN107908697A (zh) | 主机批处理作业结果的自动采集方法及装置 | |
CN115037663A (zh) | 一种应用系统更新测试方法及装置 | |
CN113127459B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |