CN110362569A - 数据表的校验方法及装置、电子设备、存储介质 - Google Patents
数据表的校验方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN110362569A CN110362569A CN201910492352.6A CN201910492352A CN110362569A CN 110362569 A CN110362569 A CN 110362569A CN 201910492352 A CN201910492352 A CN 201910492352A CN 110362569 A CN110362569 A CN 110362569A
- Authority
- CN
- China
- Prior art keywords
- tables
- data
- data table
- incidence relation
- storage result
- 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
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书一个或多个实施例提供一种数据表的校验方法及装置、电子设备、存储介质;该方法应用于校验服务器中,可以包括:获取待校验的数据表集合的主体数据表,所述主体数据表与所述数据表集合中区别于所述主体数据表的其他数据表之间均存在关联关系;根据所述主体数据表和所述关联关系,确定所述数据表集合中包含的所述其他数据表;获取预定义的针对所述数据表集合中各数据表的预期存储结果,以及获取所述数据表集合中各数据表的实际存储结果;当所述实际存储结果与所述预期存储结果一致时,判定所述数据表集合通过校验。
Description
技术领域
本说明书一个或多个实施例涉及数据库技术领域,尤其涉及一种数据表的校验方法及装置、电子设备、存储介质。
背景技术
在推出某项业务时,为了保证业务的顺利实施,需要校验与该业务相关的数据表的正确性。具体而言,在将数据表存储至节点设备时,需保证最终的存储结果与预期保持一致。
在相关技术中,通过人工识别来查找出所有相关的数据表(即待校验数据表),再获取实际存储结果与预期存储结果进行比较,以校验数据表的正确性。然而,在实际情况中,所需校验的数据表数量较多,人工识别待校验数据表的过程容易出错,且效率低下。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种数据表的校验方法及装置、电子设备、存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种数据表的校验方法,应用于校验服务器中;所述方法包括:
获取待校验的数据表集合的主体数据表,所述主体数据表与所述数据表集合中区别于所述主体数据表的其他数据表之间均存在关联关系;
根据所述主体数据表和所述关联关系,确定所述数据表集合中包含的所述其他数据表;
获取预定义的针对所述数据表集合中各数据表的预期存储结果,以及获取所述数据表集合中各数据表的实际存储结果;
当所述实际存储结果与所述预期存储结果一致时,判定所述数据表集合通过校验。
可选的,所述校验服务器预先配置有关联关系记录表,所述关联关系记录表针对任一业务场景类型,记录有相应的数据表集合,以及该数据表集合中主体数据表与其他数据表之间的关联关系;通过以下方式确定出任一数据表集合中主体数据表与其他数据表之间的关联关系:
确定对应于该任一数据表集合的业务场景类型;
根据所述关联关系记录表查询与确定出的业务场景类型对应的关联关系。
可选的,通过以下方式确定出任一数据表集合的主体数据表:
识别该任一数据表集合中任意两数据表之间的关联外键;
基于识别出的关联外键构建用于表示各数据表之间关联关系的树状结构;
将与所述树状结构的根节点对应的数据表作为该任一数据表集合的主体数据表。
可选的,所述校验服务器中配置有动态脚本,所述动态脚本中记录有所述主体数据表的主体标识;所述获取预定义的针对所述数据表集合中各数据表的预期存储结果,包括:
调用执行所述动态脚本,以使所述动态脚本根据所述主体标识查询出对应于所述主体数据表的预期存储结果;以及,
根据所述主体数据表和所述关联关系查询出对应于所述其他数据表的预期存储结果。
可选的,还包括:
当所述数据表集合的主体数据表被更换时,将所述动态脚本中记录的主体标识更新为更换后主体数据表的标识。
可选的,所述获取所述数据表集合中各数据表的实际存储结果,包括:
向存储所述数据表集合中各数据表的节点设备发送查询请求,并接收所述节点设备返回的实际存储结果。
可选的,所述主体数据表在所述数据表集合中各数据表被存储至节点设备之前确定,所述预期存储结果在所述数据表集合中各数据表被存储至节点设备之前定义。
根据本说明书一个或多个实施例的第二方面,提出了一种数据表的校验装置,应用于校验服务器中;所述装置包括:
数据表获取单元,获取待校验的数据表集合的主体数据表,所述主体数据表与所述数据表集合中区别于所述主体数据表的其他数据表之间均存在关联关系;
确定单元,根据所述主体数据表和所述关联关系,确定所述数据表集合中包含的所述其他数据表;
存储结果获取单元,获取预定义的针对所述数据表集合中各数据表的预期存储结果,以及获取所述数据表集合中各数据表的实际存储结果;
判定单元,当所述实际存储结果与所述预期存储结果一致时,判定所述数据表集合通过校验。
可选的,所述校验服务器预先配置有关联关系记录表,所述关联关系记录表针对任一业务场景类型,记录有相应的数据表集合,以及该数据表集合中主体数据表与其他数据表之间的关联关系;通过以下方式确定出任一数据表集合中主体数据表与其他数据表之间的关联关系:
确定对应于该任一数据表集合的业务场景类型;
根据所述关联关系记录表查询与确定出的业务场景类型对应的关联关系。
可选的,通过以下方式确定出任一数据表集合的主体数据表:
识别该任一数据表集合中任意两数据表之间的关联外键;
基于识别出的关联外键构建用于表示各数据表之间关联关系的树状结构;
将与所述树状结构的根节点对应的数据表作为该任一数据表集合的主体数据表。
可选的,所述校验服务器中配置有动态脚本,所述动态脚本中记录有所述主体数据表的主体标识;所述存储结果获取单元具体用于:
调用执行所述动态脚本,以使所述动态脚本根据所述主体标识查询出对应于所述主体数据表的预期存储结果;以及,
根据所述主体数据表和所述关联关系查询出对应于所述其他数据表的预期存储结果。
可选的,还包括:
更新单元,当所述数据表集合的主体数据表被更换时,将所述动态脚本中记录的主体标识更新为更换后主体数据表的标识。
可选的,所述存储结果获取单元具体用于:
向存储所述数据表集合中各数据表的节点设备发送查询请求,并接收所述节点设备返回的实际存储结果。
可选的,所述主体数据表在所述数据表集合中各数据表被存储至节点设备之前确定,所述预期存储结果在所述数据表集合中各数据表被存储至节点设备之前定义。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一实施例中所述的数据表的校验方法。
根据本说明书一个或多个实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述实施例中任一所述数据表的校验方法的步骤。
本申请利用数据表集合的主体数据表与该数据表集合中其他所有数据表之间均存在关联关系的特点,通过获取待校验的数据表集合的主体数据表,便可根据主体数据表与集合中其他数据表之间的关联关系来确定出待校验的数据表集合中包含的所有其他数据表。可见,基于关联关系可快速查询出待校验的数据表集合中包含哪些数据表,无需由校验人员根据经验人工识别查询,提高了查询待校验的数据表集合中所包含数据表的效率和准确率,进而提高了后续校验数据表集合的效率和准确率。
附图说明
图1是一示例性实施例提供的一种数据表的校验方法的流程图。
图2是一示例性实施例提供的另一种数据表的校验方法的流程图。
图3是一示例性实施例提供的数据表集合的示意图。
图4A-4B是一示例性实施例提供的构建树状结构的示意图。
图5是一示例性实施例提供的获取实际存储结果的交互图。
图6是一示例性实施例提供的一种电子设备的结构示意图。
图7是一示例性实施例提供的一种数据表的校验装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
请参见图1,图1是一示例性实施例提供的一种数据表的校验方法的流程图。如图1所示,该方法应用于校验服务器中,可以包括以下步骤:
步骤102,获取待校验的数据表集合中的主体数据表,所述主体数据表与所述数据表集合中区别于所述主体数据表的其他数据表之间均存在关联关系。
步骤104,根据所述主体数据表和所述关联关系,确定所述数据表集合中包含的所述其他数据表。
在本实施例中,在推出某一项业务时,需将与该业务对应的数据表集合存储至节点设备中,以用于响应于与该业务相关的各种请求。而为了保证业务顺利实施,在存储数据表集合时,需保证在节点设备中实际存储的结果与预期存储的结果一致(即保证所存储数据表的内容未出错)。例如,与业务相关的数据表集合包含数据表1-3,以数据表1为例,假定数据表1的内容如表1所示:
表1
那么,针对数据表1的预期存储结果为上述表1中的内容,而在将数据表1存储至相应的节点设备后,需校验在该节点设备中的实际存储结果是否与表1一致。例如,可向该节点设备发送针对数据表1的查询请求,以使得节点设备返回本地存储的关于数据表1的内容(即实际存储结果)。其中,数据表2-3的校验过程与上述类似,在此不再赘述。
基于上述应用场景,针对数据表集合中的各个数据表,可选取出一主体数据表,该主体数据表与数据表集合中的其他数据表之间均存在关联关系。那么,在校验该数据表集合时,可先确定出该数据表集合的主体数据表,从而进一步根据主体数据表与其他数据表之间的关联关系,快速查询出该数据表集合中还包括其他那些数据表,进而提高了查询待校验的数据表集合中各个数据表的效率和准确率。
在本实施例中,基于在同一种业务场景类型下的数据表集合中所包含数据表的种类较为固定,那么相应选取出的主体数据表也随之较为固定,所选取出的主体数据表与其他数据表之间的关联关系也随之较为固定。因此,针对同一种业务场景类型,主体数据表与其他数据表之间的关联关系可复用。
进一步的,可在校验服务器中预先配置关联关系记录表,该关联关系记录表针对任一业务场景类型,记录有相应的数据表集合,以及该数据表集合中主体数据表与其他数据表之间的关联关系。基于上述配置,可通过以下方式确定出任一数据表集合中主体数据表与其他数据表之间的关联关系,可先确定对应于该任一数据表集合的业务场景类型,再根据关联关系记录表查询与确定出的业务场景类型对应的关联关系,而确定出的关联关系则可用于表示该任一数据表集合中主体数据表与其他数据表之间的关联关系。
在本实施例中,可在将数据表集合中各个数据表存储至节点设备之前,确定出该数据表集合的主体数据表,以及主体数据表与其他数据表之间的关联关系。那么,后续在对该数据表集合进行校验时,便可直接获取到之前确定出的主体数据表和关联关系。
在本实施例中,在确定数据表集合的主体数据表时,可基于数据表集合中各个数据表之间的关联关系,选取出具有“一对多”关联关系的主体数据表。
比如,可通过以下方式确定出任一数据表集合的主体数据表:先识别该任一数据表集合中任意两数据表之间的关联外键,并基于识别出的关联外键构建用于表示各数据表之间关联关系的树状结构,那么可将与树状结构的根节点对应的数据表作为该任一数据表集合的主体数据表。可见,基于树状结构中父节点与子节点之间“一对多”的对应关系,通过将与所构建树状结构的根节点对应的数据表作为主体数据表,可从根节点(即主体数据表)开始按照树状结构的阶度(level)依次确定出其他所有的节点(即其他所有的数据表),即根据主体数据表可以查询出唯一的一组数据表集合,从而提高了根据主体数据表查询其他数据表的效率。
步骤106,获取预定义的针对所述数据表集合中各数据表的预期存储结果,以及获取所述数据表集合中各数据表的实际存储结果。
在本实施例中,在将数据表集合中各数据表存储至节点设备(可能是一台节点设备,也可能是多台节点设备)之前,可对预期存储结果进行定义。针对定义好的预期存储结果,同样可按照上述主体数据表与其他数据表之间的关联关系来进行存储,即在定义预期存储结果的阶段选取出主体数据表并构建主体数据表与其他数据表之间的关联关系,那么后续在校验阶段需获取该预期存储结果时,同样可根据主体数据表与关联关系,快速查询出待校验的数据表集合的所有数据表。例如,在存储各个数据表之前,通过上述方式构建出与数据表集合对应的树状结构,并按照该树状结构定义和存储预期存储结果,那么后续可直接通过该树状结构快速读取(从根节点开始按照树状结构的阶度依次往下读取)出预期存储结果。
进一步的,可在校验服务器中配置动态脚本来执行上述读取预期存储结果的操作。作为一示例性实施例,可在动态脚本中部署根据主体数据表的主体标识来获取预期存储结果的代码逻辑,并相应在该动态脚本中写入主体标识(与待校验的数据表集合的主体数据表对应)。基于上述配置,校验服务器可调用执行该动态脚本,以使该动态脚本根据主体标识查询出对应于主体数据表的预期存储结果;以及,根据主体数据表和关联关系查询出对应于该其他数据表的预期存储结果。
需要说明的是,动态脚本中仅需要部署根据主体标识读取预期存储结果的代码逻辑,以及记录待校验数据表集合的主体数据表的主体标识即可,而预期存储结果可无需记录于动态脚本中;例如,可存储于数据库中,由动态脚本根据主体标识去读取。因此,当待校验的数据表集合的主体数据表被更换(比如,预期存储结果发生变化,导致随之建立的关联关系也发生变化,选取出的主体数据表与变化前不同)时,基于上述主体数据表与其他数据表之间关联关系的建立,根据主体标识读取预期存储结果的代码逻辑可通用,那么仅仅将动态脚本中记录的主体标识更新为更换后主体数据表的标识即可,校验人员维护简单,有效提高了在预期存储结果发生变化的情况下读取变化后预期存储结果的效率。
在本实施例中,针对获取实际存储结果的过程,校验服务器中可向存储该待校验的数据表集合中各数据表的节点设备发送查询请求,并接收节点设备返回的实际存储结果。
步骤108,当所述实际存储结果与所述预期存储结果一致时,判定所述数据表集合通过校验。
本申请利用数据表集合的主体数据表与该数据表集合中其他所有数据表之间均存在关联关系的特点,通过获取待校验的数据表集合的主体数据表,便可根据主体数据表与集合中其他数据表之间的关联关系来确定出待校验的数据表集合中包含的所有其他数据表。可见,基于关联关系可快速查询出待校验的数据表集合中包含哪些数据表,无需由校验人员根据经验人工识别查询,提高了查询待校验的数据表集合中所包含数据表的效率和准确率,进而提高了后续校验数据表集合的效率和准确率。
为了便于理解,下面结合示意图与举例对本申请的数据表的校验方案进行详细说明。
请参见图2,图2是一示例性实施例提供的另一种数据表的校验方法的流程图。如图2所示,该方法应用于校验服务器中,可以包括以下步骤:
步骤202,获取待校验数据表集合的主体数据表的主体id。
在本实施例中,可在将数据表集合中各个数据表存储至节点设备之前,选取出主体数据表并通过关联外键来构建用于表示关联关系的树状结构。
举例而言,如图3所示,假定业务场景为推出一项赠送奖品的活动,相应的数据表集合A包含活动表、奖品表、库存表。其中,活动表和奖品表(包括奖品表1和奖品表2)之间的关联外键为奖品id,活动表和奖品表是“一对多”关系,从而通过活动id能够关联查询出相关的所有奖品表;类似的,奖品表和库存表(包括库存表1-4)之间的关联外键为库存id,奖品表和库存表是“一对多”关系,从而通过奖品id能够关联查询出相关的所有库存表。
如图4A所示,根据识别出的任意两数据表之间的关联外键,可得出该任意两数据表之间存在关联关系,进而构建出用于表示数据表集合A中各数据表之间关联关系的树状结构10。进一步的,可将树状结构10的根节点表示的数据表作为数据表集合A的主体数据表,即活动表1。可见,基于树状结构10中父节点与子节点之间“一对多”的对应关系,通过将根节点表示的活动表1作为主体数据表,从根节点开始按照树状结构的阶度(level)往下,可依次查询出数据表集合A还包含奖品表1-2、库存表1-4。
在本实施例中,在同一种业务场景类型下的数据表集合中所包含数据表的种类较为固定,那么相应选取出的主体数据表也随之较为固定,所选取出的主体数据表与其他数据表之间的关联关系也随之较为固定。因此,针对同一种业务场景类型,可复用主体数据表与其他数据表之间的关联关系,从而提高校验数据表集合时查询数据表的效率。
举例而言,活动A和活动B均为赠送奖品的活动,图4A示出了活动A的数据表集合A的树状结构,图4B示出了活动B的数据表集合B的树状结构。可见,由于活动A和活动B属于相同的业务场景类型,两者的数据表集合中的关联关系相同,仅仅是数据表的数量可能存在差异。例如,第一阶度的节点均表示活动表,第二阶度的节点均表示奖品表,第三阶度的节点均表示库存表;又如,均可以将活动表作为主体数据表。
因此,可在校验服务器中预先配置关联关系记录表,该关联关系记录表针对任一业务场景类型记录有相应的数据表集合(记录所包含数据表的种类即可,例如包含活动表、奖品表、库存表,而各种类的数据表的数量不必限制),以及该数据表集合中主体数据表与其他数据表之间的关联关系(比如采用上述树状结构的方式记录)。基于上述关联关系记录表的配置,每当需存储某一数据表集合时,可根据对应于该数据表集合的业务场景类型,在关联关系记录表中查询相匹配的树状结构,从而将查询到的树状结构作为模板套用即可,而无需重新构建用于表示该数据表集合中各数据表关联关系的树状结构,从而提高了选取主体数据表和构建关联关系的效率。其中,关联关系记录表中记录的各个树状结构,可由上述利用关联外键的方式构建;当关联关系记录表中未记录与当前待存储数据表集合对应的业务场景类型时,也可由上述利用关联外键的方式构建出与该待存储数据表集合对应的树状结构。
基于上述在存储数据表集合之前构建相应树状结构的过程,在后续校验该数据表集合存储的正确性时(已将数据表集合存储至节点设备),便可直接从构建好的树状结构中获取到该数据表集合的主体数据表。其中,树状结构中各数据表可由相应的数据表id来表示。
步骤204,根据主体id查询出关联的数据表。
在本实施例中,基于预先构建有对应于待校验数据表集合的树状结构(用于表示待校验数据表集合中各数据表之间的关联关系),在获取到主体id后,便可从该树状结构的根节点开始按照树状结构的阶度往下,依次查询出待校验数据表集合中除主体数据表以外的其他所有数据表。其中,由于构建的树状结构中父节点与子节点之间为“一对多”的对应关系,通过上述按照阶度依次查询的方式可覆盖到所有的数据表,从而提高了查询数据表的效率和准确率。
步骤206,获取预期存储结果。
在本实施例中,鉴于构建用于表示待校验数据表集合中各数据表之间关联关系的树状结构,可提高查询数据表的效率,那么在定义并存储待校验数据表集合的预期存储结果时,同样可以利用该树状结构,以提高获取预期存储结果的效率。
具体而言,在将待校验数据表集合中各数据表存储至节点设备(可能是一台节点设备,也可能是多台节点设备)之前,可对预期存储结果进行定义。针对定义好的预期存储结果,同样可按照上述构建好的树状结构来进行存储。那么,在校验阶段需获取该预期存储结果时,同样可根据该树状结构表示的关联关系,由主体id来快速查询出待校验的数据表集合的所有数据表。
进一步的,可在校验服务器中配置动态脚本来执行上述读取预期存储结果的操作。作为一示例性实施例,可在动态脚本中部署根据主体id和对应于待校验的数据表集合的树状结构来读取各个数据表的预期存储结果的代码逻辑,并相应在该动态脚本中写入主体id。基于上述配置,校验服务器可调用执行该动态脚本,以使该动态脚本根据主体id查询出对应于主体数据表的预期存储结果;以及,根据主体id和树状结构快速查询(类似的,从根节点开始按照树状结构的阶度依次往下查询)出待校验的数据表集合中的其他数据表,进而读取出该其他数据表的预期存储结果。
需要说明的是,动态脚本中仅需要部署根据主体id读取预期存储结果的代码逻辑,以及记录主体id即可,而预期存储结果可无需记录于动态脚本中。例如,可存储于数据库中,由动态脚本根据主体id去读取。因此,当待校验的数据表集合的主体数据表被更换(比如,预期存储结果发生变化,导致随之建立的关联关系也发生变化,选取出的主体数据表与变化前不同)时,基于上述主体数据表与其他数据表之间关联关系的建立,根据主体id读取预期存储结果的代码逻辑可通用,那么仅仅将动态脚本中记录的主体id更新为更换后主体数据表的数据表id即可,校验人员维护简单,有效提高了在预期存储结果发生变化的情况下读取变化后预期存储结果的效率。
步骤208,获取实际存储结果。
在本实施例中,待校验数据表集合存储于节点设备中,实际存储结果需由校验服务器向节点设备发送查询请求来获取。下面结合图5进行详细说明。请参见图5,图5是一示例性实施例提供的获取实际存储结果的交互图。如图5所示,该交互过程可以包括以下步骤:
在步骤502中,校验服务器构建针对数据表的查询请求。
在本实施例中,假定待校验数据表集合包含数据表1-2,数据表1存储于节点设备1中,数据表2存储于节点设备2中。校验服务器分别向节点设备1-2发送相应的查询请求,以使得节点设备1-2分别读取本地存储的数据表,并向校验服务器返回读取到的数据表,而该返回的数据表则是实际存储结果。
在步骤504A中,校验服务器向节点设备1发送查询请求1。
在步骤504B中,校验服务器向节点设备2发送查询请求2。
在步骤506A中,节点设备1读取数据表1。
在步骤506B中,节点设备2读取数据表2。
在步骤508A中,节点设备1向校验服务器返回数据表1。
在步骤508B中,节点设备2向校验服务器返回数据表2。
步骤210,若预期存储结果与实际存储结果一致,则转入步骤212;否则,转入步骤214。
步骤212,判定校验通过。
步骤214,判定校验未通过。
承接于上述数据表集合A的举例,假定预期存储结果如表2-3所示:
表2
表3
实际存储结果如表4-5所示:
表4
表5
通过比较预期存储结果与实际存储结果可得:活动表的预期存储结果和实际存储结果一致;奖品表第一行Prize_1对应的预期存储结果和实际存储结果一致;奖品表第二行Prize_2对应的存储结果中,预期存储结果中奖品信息为“奖品2”,而实际存储结果中奖品信息为“奖品2_add”,也即预期存储结果与实际存储结果不一致。因此,可判定校验未通过。
本申请利用数据表集合的主体数据表与该数据表集合中其他所有数据表之间均存在关联关系的特点,通过获取待校验的数据表集合的主体数据表,便可根据主体数据表与集合中其他数据表之间的关联关系来确定出待校验的数据表集合中包含的所有其他数据表。可见,基于关联关系可快速查询出待校验的数据表集合中包含哪些数据表,无需由校验人员根据经验人工识别查询,提高了查询待校验的数据表集合中所包含数据表的效率和准确率,进而提高了后续校验数据表集合的效率和准确率。
图6是一示例性实施例提供的一种电子设备的结构示意图。请参考图6,在硬件层面,该设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。处理器602从非易失性存储器610中读取对应的计算机程序到内存608中然后运行,在逻辑层面上形成数据表的校验装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图7,在软件实施方式中,该数据表的校验装置应用于校验服务器中,可以包括:
数据表获取单元71,获取待校验的数据表集合中的主体数据表,所述主体数据表与所述数据表集合中区别于所述主体数据表的其他数据表之间均存在关联关系;
确定单元72,根据所述主体数据表和所述关联关系,确定所述数据表集合中包含的所述其他数据表;
存储结果获取单元73,获取预定义的针对所述数据表集合中各数据表的预期存储结果,以及获取所述数据表集合中各数据表的实际存储结果;
判定单元74,当所述实际存储结果与所述预期存储结果一致时,判定所述数据表集合通过校验。
可选的,所述校验服务器预先配置有关联关系记录表,所述关联关系记录表针对任一业务场景类型,记录有相应的数据表集合,以及该数据表集合中主体数据表与其他数据表之间的关联关系;通过以下方式确定出任一数据表集合中主体数据表与其他数据表之间的关联关系:
确定对应于该任一数据表集合的业务场景类型;
根据所述关联关系记录表查询与确定出的业务场景类型对应的关联关系。
可选的,通过以下方式确定出任一数据表集合的主体数据表:
识别该任一数据表集合中任意两数据表之间的关联外键;
基于识别出的关联外键构建用于表示各数据表之间关联关系的树状结构;
将与所述树状结构的根节点对应的数据表作为该任一数据表集合的主体数据表。
可选的,所述校验服务器中配置有动态脚本,所述动态脚本中记录有所述主体数据表的主体标识;所述存储结果获取单元73具体用于:
调用执行所述动态脚本,以使所述动态脚本根据所述主体标识查询出对应于所述主体数据表的预期存储结果;以及,
根据所述主体数据表和所述关联关系查询出对应于所述其他数据表的预期存储结果。
可选的,还包括:
更新单元75,当所述数据表集合的主体数据表被更换时,将所述动态脚本中记录的主体标识更新为更换后主体数据表的标识。
可选的,所述存储结果获取单元73具体用于:
向存储所述数据表集合中各数据表的节点设备发送查询请求,并接收所述节点设备返回的实际存储结果。
可选的,所述主体数据表在所述数据表集合中各数据表被存储至节点设备之前确定,所述预期存储结果在所述数据表集合中各数据表被存储至节点设备之前定义。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种数据表的校验方法,其特征在于,应用于校验服务器中;所述方法包括:
获取待校验的数据表集合的主体数据表,所述主体数据表与所述数据表集合中区别于所述主体数据表的其他数据表之间均存在关联关系;
根据所述主体数据表和所述关联关系,确定所述数据表集合中包含的所述其他数据表;
获取预定义的针对所述数据表集合中各数据表的预期存储结果,以及获取所述数据表集合中各数据表的实际存储结果;
当所述实际存储结果与所述预期存储结果一致时,判定所述数据表集合通过校验。
2.根据权利要求1所述的方法,其特征在于,所述校验服务器预先配置有关联关系记录表,所述关联关系记录表针对任一业务场景类型,记录有相应的数据表集合,以及该数据表集合中主体数据表与其他数据表之间的关联关系;通过以下方式确定出任一数据表集合中主体数据表与其他数据表之间的关联关系:
确定对应于该任一数据表集合的业务场景类型;
根据所述关联关系记录表查询与确定出的业务场景类型对应的关联关系。
3.根据权利要求1所述的方法,其特征在于,通过以下方式确定出任一数据表集合的主体数据表:
识别该任一数据表集合中任意两数据表之间的关联外键;
基于识别出的关联外键构建用于表示各数据表之间关联关系的树状结构;
将与所述树状结构的根节点对应的数据表作为该任一数据表集合的主体数据表。
4.根据权利要求1所述的方法,其特征在于,所述校验服务器中配置有动态脚本,所述动态脚本中记录有所述主体数据表的主体标识;所述获取预定义的针对所述数据表集合中各数据表的预期存储结果,包括:
调用执行所述动态脚本,以使所述动态脚本根据所述主体标识查询出对应于所述主体数据表的预期存储结果;以及,
根据所述主体数据表和所述关联关系查询出对应于所述其他数据表的预期存储结果。
5.根据权利要求4所述的方法,其特征在于,还包括:
当所述数据表集合的主体数据表被更换时,将所述动态脚本中记录的主体标识更新为更换后主体数据表的标识。
6.一种数据表的校验装置,其特征在于,应用于校验服务器中;所述装置包括:
数据表获取单元,获取待校验的数据表集合的主体数据表,所述主体数据表与所述数据表集合中区别于所述主体数据表的其他数据表之间均存在关联关系;
确定单元,根据所述主体数据表和所述关联关系,确定所述数据表集合中包含的所述其他数据表;
存储结果获取单元,获取预定义的针对所述数据表集合中各数据表的预期存储结果,以及获取所述数据表集合中各数据表的实际存储结果;
判定单元,当所述实际存储结果与所述预期存储结果一致时,判定所述数据表集合通过校验。
7.根据权利要求6所述的装置,其特征在于,通过以下方式确定出任一数据表集合的主体数据表:
识别该任一数据表集合中任意两数据表之间的关联外键;
基于识别出的关联外键构建用于表示各数据表之间关联关系的树状结构;
将与所述树状结构的根节点对应的数据表作为该任一数据表集合的主体数据表。
8.根据权利要求6所述的装置,其特征在于,所述校验服务器中配置有动态脚本,所述动态脚本中记录有所述主体数据表的主体标识;所述存储结果获取单元具体用于:
调用执行所述动态脚本,以使所述动态脚本根据所述主体标识查询出对应于所述主体数据表的预期存储结果;以及,
根据所述主体数据表和所述关联关系查询出对应于所述其他数据表的预期存储结果。
9.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-5中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910492352.6A CN110362569A (zh) | 2019-06-06 | 2019-06-06 | 数据表的校验方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910492352.6A CN110362569A (zh) | 2019-06-06 | 2019-06-06 | 数据表的校验方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110362569A true CN110362569A (zh) | 2019-10-22 |
Family
ID=68215889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910492352.6A Pending CN110362569A (zh) | 2019-06-06 | 2019-06-06 | 数据表的校验方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362569A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837507A (zh) * | 2019-11-08 | 2020-02-25 | 深圳市彬讯科技有限公司 | 一种数据表的动态处理方法、设备及存储介质 |
CN111339117A (zh) * | 2020-03-19 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 数据处理方法、装置及设备 |
CN113505077A (zh) * | 2021-07-26 | 2021-10-15 | 平安信托有限责任公司 | 数据表的测试方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448276A (zh) * | 2008-10-23 | 2009-06-03 | 中国移动通信集团山东有限公司 | 更新局数据表、对局数据表进行验证的方法及设备 |
CN102646111A (zh) * | 2012-02-16 | 2012-08-22 | 中国测绘科学研究院 | 一种基于知识库的通用关联信息查询树的快速构建方法 |
CN109254969A (zh) * | 2018-08-31 | 2019-01-22 | 平安科技(深圳)有限公司 | 数据表处理方法、装置、设备及存储介质 |
RU2684575C1 (ru) * | 2018-05-14 | 2019-04-09 | Федеральное государственное казенное военное образовательное учреждение высшего образования Академия Федеральной службы охраны Российской Федерации | Способ управления потоками данных распределенной информационной системы при ddos атаках |
-
2019
- 2019-06-06 CN CN201910492352.6A patent/CN110362569A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448276A (zh) * | 2008-10-23 | 2009-06-03 | 中国移动通信集团山东有限公司 | 更新局数据表、对局数据表进行验证的方法及设备 |
CN102646111A (zh) * | 2012-02-16 | 2012-08-22 | 中国测绘科学研究院 | 一种基于知识库的通用关联信息查询树的快速构建方法 |
RU2684575C1 (ru) * | 2018-05-14 | 2019-04-09 | Федеральное государственное казенное военное образовательное учреждение высшего образования Академия Федеральной службы охраны Российской Федерации | Способ управления потоками данных распределенной информационной системы при ddos атаках |
CN109254969A (zh) * | 2018-08-31 | 2019-01-22 | 平安科技(深圳)有限公司 | 数据表处理方法、装置、设备及存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837507A (zh) * | 2019-11-08 | 2020-02-25 | 深圳市彬讯科技有限公司 | 一种数据表的动态处理方法、设备及存储介质 |
CN110837507B (zh) * | 2019-11-08 | 2022-10-14 | 土巴兔集团股份有限公司 | 一种数据表的动态处理方法、设备及存储介质 |
CN111339117A (zh) * | 2020-03-19 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 数据处理方法、装置及设备 |
CN111339117B (zh) * | 2020-03-19 | 2023-09-01 | 支付宝(杭州)信息技术有限公司 | 数据处理方法、装置及设备 |
CN113505077A (zh) * | 2021-07-26 | 2021-10-15 | 平安信托有限责任公司 | 数据表的测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | A performance comparison of SQL and NoSQL databases | |
US10949118B2 (en) | Data storage method, apparatus, and device for multi-layer blockchain-type ledger | |
KR102074026B1 (ko) | 위치 정보를 가진 데이터 프로파일링 | |
CN107957957A (zh) | 测试用例的获取方法和装置 | |
US8719788B2 (en) | Techniques for dynamically determining test platforms | |
CN106557486A (zh) | 一种数据的存储方法和装置 | |
CN110032598B (zh) | 字段更新方法及装置、电子设备 | |
CN110362569A (zh) | 数据表的校验方法及装置、电子设备、存储介质 | |
CN107644286A (zh) | 工作流处理方法及装置 | |
CN106202548A (zh) | 数据存储方法、查找方法及装置 | |
CN106033510B (zh) | 一种用户设备识别方法及系统 | |
CN110347744B (zh) | 多层块链式账本的数据存储方法、装置及设备 | |
CN108875061A (zh) | 一种分布式文件系统的一致性测试方法及相关装置 | |
CN110008743A (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN109934712A (zh) | 应用于分布式系统的对账方法、对账装置和电子设备 | |
CN112560114A (zh) | 调用智能合约的方法及装置 | |
CN111046052B (zh) | 一种数据库中的操作记录存储方法、装置及设备 | |
US9811563B2 (en) | System and method for recursively iterating over a loosely associated data structure | |
CN108694664A (zh) | 业务系统的核对方法及装置、电子设备 | |
CN111506580A (zh) | 一种基于中心化块链式账本的交易存储方法 | |
CN110209582A (zh) | 代码覆盖率的统计方法及装置、电子设备、存储介质 | |
CN107133163A (zh) | 一种验证描述类api的方法与设备 | |
CN109948038A (zh) | 问题推送方法及装置 | |
CN105867886A (zh) | 一种写表格的方法及装置 | |
CN115203746A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191022 |