CN112632174A - 一种数据检验的方法、装置和系统 - Google Patents

一种数据检验的方法、装置和系统 Download PDF

Info

Publication number
CN112632174A
CN112632174A CN202011625467.7A CN202011625467A CN112632174A CN 112632174 A CN112632174 A CN 112632174A CN 202011625467 A CN202011625467 A CN 202011625467A CN 112632174 A CN112632174 A CN 112632174A
Authority
CN
China
Prior art keywords
data
task
inspection
target
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011625467.7A
Other languages
English (en)
Inventor
曹海洋
王振振
孙迁
郭文凭
徐伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Suning Cloud Computing Co ltd
Original Assignee
Jiangsu Suning Cloud Computing Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiangsu Suning Cloud Computing Co ltd filed Critical Jiangsu Suning Cloud Computing Co ltd
Priority to CN202011625467.7A priority Critical patent/CN112632174A/zh
Publication of CN112632174A publication Critical patent/CN112632174A/zh
Priority to CA3144122A priority patent/CA3144122A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据检验的方法、装置和系统,属于大数据处理技术领域。方法包括:基于离线数据任务构建数据检验任务,离线数据任务包括:从源数据库抽取目标数据写入目标数据库中;确定数据检验任务相对于离线数据任务的执行顺序;按照执行顺序执行数据检验任务;执行中根据异常判断条件判断数据目标数据是否异常,若检验到异常,则中断数据检验任务,生成检验信息,当接收到用户根据检验信息提供的数据修改信息后,继续执行数据检验任务。本发明预先配置或基于自动获取并解析脚本生成的默认配置即可实现执行顺序设置,并基于离线数据任务可以自动判断执行顺序,提高了数据检验操作的灵活性和定位问题数据的准确性,提高了检验效率。

Description

一种数据检验的方法、装置和系统
技术领域
本发明涉及大数据处理技术领域,特别涉及一种数据检验的方法、装置和系统。
背景技术
数据仓库存储技术(ETL)是一种将业务系统的数据经过抽取、清洗转换之后加载到数据仓库进行存储管理,为后续联机分析处理、数据挖掘提供基础数据的技术。为了保证入库数据的质量,从数据源抽取出来的数据在进入数据仓库之前需要进行数据检验。数据检验主要是对数据进行数据类型、取值范围、无效、重复等坏点数据的检测,以及唯一性、关联性、一致性、准确性、单字段,记录行统计型等校验。现有技术中,由于不同数据的质量评价标准不同,每天的数据检验均要引入新的检验方法,但是随着入库数据量的增加,数据检验的压力也越来越大,因此需要考虑一种快速实现数据检验的技术方案。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据检验的方法、装置和系统。所述技术方案如下:
第一方面,提供了一种数据检验方法,所述方法包括:
基于离线数据任务构建数据检验任务,所述离线数据任务包括:从源数据库抽取目标数据写入目标数据库中;
确定所述数据检验任务相对于所述离线数据任务的执行顺序;
按照所述执行顺序执行所述数据检验任务;
执行中根据异常判断条件判断所述目标数据是否异常,若检验到异常,则中断所述数据检验任务,生成检验信息,当接收到用户根据所述检验信息提供的数据修改信息后,继续执行所述数据检验任务。
进一步地,所述按照所述执行顺序执行所述数据检验任务,包括:
若所述数据检验任务为执行中任务,则将所述目标数据从所述源数据库中抽取写入到临时数据库中,对所述临时数据库中的所述目标数据执行同步数据检验;
若所述目标数据通过检验,则将所述临时数据库中的所述目标数据同步写入到所述目标数据库中,待从所述源数据库抽取出的所述目标数据全部通过检验并写入到所述目标数据库后删除所述临时数据库,
若所述目标数据未通过检验,则将所述临时数据库删除。
进一步地,所述按照所述执行顺序执行所述数据检验任务,包括:
若所述数据检验任务为前置任务,则在所述目标数据抽取之前在所述源数据库中执行所述数据检验任务;若所述目标数据通过检验,则将其从所述源数据库中抽取出并写入所述目标数据库中。
进一步地,所述按照所述执行顺序执行所述数据检验任务,包括:
若所述数据检验任务为后置任务,则在所述目标数据从所述源数据库抽取写入到所述目标数据库后,在所述目标数据库中执行所述数据检验任务。
进一步地,所述基于离线数据任务构建数据检验任务,包括:
获取所述离线数据任务;
判断所述离线数据任务是否有对应的数据检验规则,若有,则为所述离线数据任务配置数据检验规则,并获取资源元数据以及检验参数表;
根据所述数据检验规则、所述资源元数据和所述检验参数表构建所述数据检验任务,所述数据检验规则包括:所述异常判断条件、所述执行顺序。
进一步地,所述判断所述离线数据任务是否有对应的数据检验规则,包括:
读取检验规则表及所述离线数据任务的任务编号,所述检验规则表中包含各所述任务编号对应的所述数据检验规则;
将所述任务编号与所述检验规则表匹配,确定所述离线数据任务对应的数据检验规则。
进一步地,所述检验参数表的生成包括:
获取所述离线数据任务对应的所述源数据库和所述目标数据库包含的表和/或字段;
根据用户对表和/或字段配置的检验参数,生成与所述离线数据任务对应的检验参数表。
进一步地,所述获取离线数据任务对应的所述源数据库和所述目标数据库包含的表和/或字段,包括:
自动获取并解析所述离线数据任务的任务脚本,若解析成功,则得到所述源数据库和所述目标数据包含的表和/或字段,若解析失败,则接收用户输入的表和/或字段。
第二方面,提供了一种数据检验装置,所述装置包括:
数据检验任务获取模块,用于基于离线数据任务获取数据检验任务,所述离线数据任务包括:从源数据库抽取目标数据写入目标数据库中;
执行顺序判断模块,用于确定所述数据检验任务相对于所述离线数据任务的执行顺序;
检验模块,用于按照所述执行顺序执行所述数据检验任务,执行中根据异常判断条件判断目标数据是否异常,若检验到异常,则中断所述数据检验任务,生成检验信息,待接收到用户根据所述检验信息提供的数据修改信息后,继续执行所述数据检验任务。
进一步地,检验模块,具体用于:
当判断数据检验任务为执行中任务时,将目标数据从源数据库中抽取写入到临时数据库中,对临时数据库中的目标数据执行同步数据检验;
若目标数据通过检验,则将临时数据库中的目标数据同步写入到目标数据库中,待从源数据库抽取出的目标数据全部通过检验并写入到目标数据库后删除临时数据库,
若目标数据未通过检验,则将临时数据库删除。
进一步地,检验模块,具体用于:
当判断数据检验任务为前置任务时,在目标数据抽取之前在源数据库中执行数据检验任务;
若目标数据通过检验,则将其从源数据库中抽取出并写入目标数据库中。
进一步地,检验模块,具体用于:
当判断数据检验任务是否为后置任务时,在目标数据从源数据库抽取写入到目标数据库后,在目标数据库中执行数据检验任务。
进一步地,数据检验任务获取模块,包括:
离线数据任务获取模块,用于获取离线数据任务;
数据检验任务构建模块,用于判断离线数据任务是否有对应的数据检验规则,若有,则为离线数据任务配置数据检验规则,并获取资源元数据以及检验参数表,根据数据检验规则、资源元数据和检验参数表构建数据检验任务,数据检验规则包括:异常判断条件和执行顺序。
进一步地,数据检验任务构建模块,包括:
检验规则表确定模块,用于:
读取检验规则表及离线数据任务的任务编号,检验规则表中包含各任务编号对应的数据检验规则;
将任务编号与检验规则表匹配,确定离线数据任务对应的数据检验规则。
进一步地,数据检验任务构建模块,还包括:
检验参数表确定模块,用于:
获取离线数据任务对应的源数据库和目标数据库包含的表和字段;
根据用户对表和/或字段配置的检验参数,生成与离线数据任务对应的检验参数表。
进一步地,数据检验任务构建模块,还包括:
解析模块,用于自动获取并解析离线数据任务的任务脚本,若解析成功,则得到源数据库和目标数据库包含的表和/或字段,若解析失败,则接收用户输入的表和/或字段。
第三方面,提供了一种计算机系统,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行上述第一方面任一项所述的方法。
本发明实施例提供的技术方案带来的有益效果是:
1、本发明公开的技术方案提供了多种数据检验相对于离线数据任务执行顺序的可能性,通过用户预先配置或者基于自动获取并解析脚本生成的默认配置即可实现执行顺序设置,并基于离线数据任务可以自动判断执行顺序,提高了数据检验操作的灵活性,提高了检验效率;
2、本发明公开的技术方案提供了当数据发生异常时中断检验任务生成检验信息,待用户做出修改后继续执行数据检验任务的技术方案,继续执行时可调起上下游任务,不需要逐个通知或者逐个去操作下游任务,也无需来回梳理、评估、排查,更好地规避数据检验的生产事故;
3、本发明公开的技术方案还包含执行中任务,即在离线数据任务执行的同时执行数据检验任务,通过临时数据库作为缓冲,减轻了数据检验的压力。
4、本发明公开的技术方案节约生产机器资源,避免异常数据任务的执行,浪费CPU/内存、磁盘空间,将进一步降低机器成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据检验方法流程图;
图2是本发明实施例提供的数据检验装置结构示意图;
图3是本发明实施例提供的计算机系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术所述,在数据仓库存储技术中,将数据从源数据库写入目标数据库中的过程中需要对数据进行检验,以保证入库数据的有效性。本发明公开的技术方案的主要目的在于提出一种数据检验方法,能够提高数据检验的灵活性和执行效率,具体技术方案如下:
S1、基于离线数据任务构建数据检验任务,离线数据任务包括:从源数据库抽取目标数据写入目标数据库中。
上述,离线数据任务主要是指数据仓库存储技术(ETL)中的离线数据任务,除了从源数据库抽取数据写入目标数据库中以外,还可以包括对数据的分析处理。具体地,离线数据任务可以是Sqoop,Datax,Spark,PySpark,SparkSql,Hive,MR等。因此上述步骤S1中还包括判断离线任务是否为预设的离线数据任务类型。
以SparkSql任务为例,Job Schedule Service从T_WAIT_FOR_TAKE表领取任务,判断任务类型是否为SparkSql任务,具体地,每个离线数据任务类型均有一个任务编号,因此可以根据任务编号判断任务类型。
在一个实施例中,步骤S1包括:
S11、获取离线数据任务;
S12、判断离线数据任务是否有对应的数据检验规则,若有,则为离线数据任务配置数据检验规则,并获取资源元数据以及检验参数表,根据数据检验规则、资源元数据和检验参数表构建数据检验任务,数据检验规则包括:异常判断条件和执行顺序。
上述,数据检验规则、资源元数据、检验参数表均是预先配置的。异常判断条件为判断数据是否有效的条件,具体可以是:数据是否为空;数据的取值范围;数据取值的枚举范围等。执行顺序是数据检验规则相对于离线数据任务的执行顺序,包括:前置任务、执行中任务、后置任务,其中前置任务是指在数据抽取之前执行数据检验任务,执行中任务是数据抽取及导入的过程中执行数据检验任务,后置任务是数据导入之后执行数据检验任务。资源元数据文件是执行数据检验任务需要的数据资源,具体为任务配置或依赖jar包资源,检验参数表是执行数据检验任务所需的任务参数,例如时间参数、频率等。
同样以SparkSql任务为例,数据检验规则存储在T_JOB_DATA_QUALITY RULE表中。检验参数表具体为T_JOB_PRAMAS表中。资源元数据通过读取T_SYSTEM_CONFIG表中key为dataquality.file.id的配置值作为查询T_FILE_RESOURCE表的id读取资源元数据,将读取到的资源元数据添加到T_FILE_RESOURCE列表等待下载。具体的构建过程为:
在资源元数据的resource name中写入key为DATE_QUALITY_JARNAME的环境变量;
根据T_JOB_DATA_QUALITY RULE写入数据检验规则;
读取T_JOB_PRAMAS表获取检验参数;
读取T_FILE_RESOURCE表获取资源元数据,等待资源元数据下载完成,数据检验任务构建完成。
在一个实施例中,步骤S12中判断离线数据任务是否有对应的数据检验规则,包括:
读取检验规则表及离线数据任务的任务编号,检验规则表中包含各任务编号对应的数据检验规则。
将任务编号与检验规则表匹配,确定离线数据任务对应的数据检验规则。
在一个实施例中,检验参数表的生成,包括:
获取离线数据任务对应的源数据库和目标数据库包含的表和/或字段;
根据用户对表和/或字段配置的检验参数,生成与离线数据任务对应的检验参数表。
上述,具体地,以SparkSql任务为例,通过T_JOB_PRAMAS表配置检验参数。
作为优选地,先通过离线数据任务的任务编号在检验规则表中匹配到离线数据任务对应的数据检验规则,包括:前置、执行中、后置,然后根据执行顺序配置检验参数。
在一个实施例中,上述实施例中获取离线数据任务对应的源数据库和目标数据库包含的表和/或字段,包括:
自动获取并解析离线数据任务的任务脚本,若解析成功,则得到源数据库和目标数据库包含的表和/或字段,若解析失败,则接收用户输入的表和/或字段。
上述,具体地,用户在前台页面开发Sqoop,Datax,SparkSql,Hive,MR等离线数据任务,前台实时检测读写脚本信息。对于SparkSql等jar包类型的任务,通过外置脚本参数的方式,捕获脚本。通过自动化实时sql脚本血缘解析模块,解析离线数据任务包含的源数据库和目标数据库的表和字段的信息。基于自动化解析,配置用户关心的表或字段的数据检验规则及检验参数。
S2、判断数据检验任务相对于离线数据任务的执行顺序。
S3、按照执行顺序执行数据检验任务。
如前所述数据检验任务相对于离线数据任务的执行顺序包括:前置、执行中、后置。因此按照执行顺序执行数据检验任务具体可包括如下实施例中的一种或多种情况:
在一个实施例中,步骤S3按照执行顺序执行数据检验任务,包括:
若数据检验任务为执行中任务,则将目标数据从源数据库中抽取写入到临时数据库中,对临时数据库中的目标数据执行同步数据检验;
若目标数据通过检验,则将临时数据库中的目标数据同步写入到目标数据库中,待从源数据库抽取出的目标数据全部写入到目标数据库后删除临时数据库,
若目标数据未通过检验,则将临时数据库删除。
上述,临时数据库包括临时数据表,具体写入时写入临时数据表中。
在一个实施例中,步骤S3按照执行顺序执行数据检验任务,包括:
若数据检验任务为前置任务,则在目标数据抽取之前在源数据库中执行数据检验任务;
若目标数据通过检验,则将抽取到的源数据库中的目标数据写入目标数据库中。
在一个实施例中,步骤S3按照执行顺序执行数据检验任务,包括:
若数据检验任务为后置任务,则在目标数据从源数据库抽取写入到目标数据库后,在目标数据库中执行数据检验任务。
上述三个不同执行顺序的数据检验任务执行过程中,优选地,前置、后置的执行顺序均是数据检验任务默认的执行顺序,执行中的执行顺序务需要用户进行开启后才配置到数据检验任务中。
具体执行时,步骤S2可以顺序判断数据检验任务是否为前置任务、是否为后置任务、是否为执行中任务,以SparkSql任务中的数据检验任务为例:
判断数据检验任务中的环境变量是否存在PER CHECK变量(前置);
若存在PER CHECK变量,则提交前置数据检测任务,待前置任务执行成功,继续执行SparkSql任务;
若不存在PER CHECK变量,则直接执行SparkSql任务,待SparkSql任务执行完毕后判断环境变量是否存在POST CHECK变量(后置);
若存在,则提交后置数据检测任务,执行数据检验任务,若不存在,则任务执行完毕。
判断数据检验任务中的环境变量是否存在RUNING CHECK变量(执行中);
若存在,则升级任务为Spark执行引擎,执行Spark任务,将数据从源数据库中导入临时数据库中,在临时数据中执行数据检验任务,检验成功后,将数据写入目标数据库中;
若不存在,则直接执行SparkSql任务。
另一种情况地,步骤S2顺序判断数据检验任务是否为前置任务、是否为执行中任务、是否为后置任务,以SparkSql任务中的数据检验任务为例:
判断数据检验任务中的环境变量是否存在PER CHECK变量(前置);
若存在PER CHECK变量,则提交前置数据检测任务,待前置任务执行成功,继续执行SparkSql任务;
若不存在PER CHECK变量,则直接执行SparkSql任务,待SparkSql任务执行完毕后判断环境变量是否存在RUNING CHECK变量(执行中);
若存在,则升级任务为Spark执行引擎,执行Spark任务,将数据从源数据库中导入临时数据库中,在临时数据中执行数据检验任务,检验成功后,将数据写入目标数据库中;
若不存在,则判断环境变量是否存在POST CHECK变量(后置);
若存在,则提交后置数据检测任务,执行数据检验任务,若不存在,则任务执行完毕。
S4、执行中根据异常判断条件判断目标数据是否异常,若检验到数据异常,则中断数据检验任务,生成检验信息,待接收到用户根据检验信息提供的数据修改信息后,继续执行数据检验任务。
上述,检验信息主要指质量报告。本发明实施例公开的数据检验任务当判断数据出现异常后,可以通过中断检验任务,待用户处理异常数据后再继续执行数据检验任务,继续执行时自动调起上下游任务,不需要逐个通知或者逐个操作下游任务。数据检验任务执行完毕后,通知用户及时查看结果。通过查看质量报告分析数据质量情况,启动离线质量报告分析模块,自动采集存储在hdfs上的质量报告,根据用户维度分析,可对用户分析出具体的库表字段的异常详情,根据关键字归类,汇总异常指标类型,出具数据质量常见异常报告,反馈于各个数据使用方。以SparkSql任务中的数据检验任务为例:数据检验任务执行完成后,SparkSql离线任务执行引擎通过hdfs-api接口,将质量报告存储到hdfs指定路径,以备SparkSql离线任务进行分析。用户可依据数据质量报告,精确定位数据问题,修复问题数据之后,通过重启前置、中置、后置质量规则的数据检验任务,拉起任务从而确保下游任务正常执行,对数据精确治理提供了可依据的保证。
如图2所示,基于上述数据检验方法,本发明实施例还提供一种数据检验的装置,包括:
数据检验任务获取模块201,用于基于离线数居任务获取数据检验任务,离线数据任务包括:从源数据库抽取目标数据写入目标数据库中。
上述,离线数据任务主要指数据仓库存储技术(ETL)中的离线数据任务,除了从源数据库抽取数据写入目标数据库中以外,还可以包括对数据的分析处理。具体地,离线数据任务可以是Sqoop,Datax,Spark,PysSpark,SparkSql,Hive,MR等。因此数据检验任务获取模块还用于判断离线任务是否为预设的离线数据任务类型,优选地,用于根据任务编号判断离线数据任务的类型。
在一个实施例中,数据检验任务获取模块201,包括:
离线数据任务获取模块,用于获取离线数据任务;
数据检验任务构建模块,用于判断离线数据任务是否有对应的数据检验规则,若有,则为离线数据任务配置数据检验规则,并获取资源元数据以及检验参数表,根据数据检验规则、资源元数据和检验参数表构建数据检验任务,数据检验规则包括:异常判断条件和执行顺序。
上述,数据检验规则、资源元数据、检验参数表均是预先配置的。异常判断条件为判断数据是否有效的条件,具体可以是:数据是否为空;数据的取值范围;数据取值的枚举范围等。执行顺序是数据检验规则相对于离线数据任务的执行顺序,包括:前置任务、执行中任务、后置任务。资源元数据文件是执行数据检验任务需要的数据资源,检验参数表是执行数据检验任务所需的任务参数。
在一个实施例中,数据检验任务构建模块,包括:
检验规则表确定模块,用于:
读取检验规则表及离线数据任务的任务编号,检验规则表中包含各任务编号对应的检验规则;
将任务编号与检验规则表匹配,确定离线数据任务对应的数据检验规则。
在一个实施例中,数据检验任务构建模块,还包括:
检验参数表确定模块,用于:
获取离线数据任务对应的源数据库和目标数据库包含的表和/或字段;
根据用户对表和/或字段配置的检验参数,生成与离线数据任务对应的检验参数表。
在一个实施例中,数据检验任务构建模块,还包括:
解析模块,用于:
自动获取并解析离线数据任务的任务脚本,若解析成功,则得到源数据库和目标数据库包含的表和/或字段,若解析失败,则接收用户输入的表和/或字段。
执行顺序判断模块202,用于确定数据检验任务相对于离线数据任务的执行顺序。
上述,执行顺序判断模块主要通过数据检验任务中的环境变量判断数据检验任务相对离线数据任务的执行顺序。
上述,所述数据检验任务相对于离线数据任务的执行顺序包括:前置、执行中、后置。三个不同执行顺序的数据检验任务执行过程中,优选地,前置、后置的执行顺序均是数据检验任务默认的执行顺序,执行中的执行顺序务需要用户进行开启后才配置到数据检验任务中。
具体执行时,可以顺序判断数据检验任务是否为前置任务、是否为后置任务、是否为执行中任务,或者,顺序判断数据检验任务是否为前置任务、是否为执行中任务、是否为后置任务。
检验模块203,用于按照执行顺序执行数据检验任务,执行中根据异常判断条件判断目标数据是否异常,若检验到数据异常,则中断检验任务,生成检验信息,带接收到用户根据检验信息提供的数据修改信息后,继续执行数据检验任务。
在一个实施例中,检验模块203,具体用于:
当判断数据检验任务为执行中任务时,将目标数据从源数据库中抽取写入到临时数据库中,对临时数据库中的数据执行同步数据检验;
若目标数据通过检验,则将临时数据库中的目标数据同步写入到目标数据库中,待从源数据库抽取出的目标数据全部写入到目标数据库后删除临时数据库,
若目标数据未通过检验,则将临时数据库删除。
在一个实施例中,检验模块203,具体用于:
当判断数据检验任务为前置任务时,在目标数据抽取之前在源数据库中执行数据检验任务;
若目标数据通过检验,则将抽取到的源数据库中的数据写入目标数据库中。
在一个实施例中,检验模块203,具体用于:
当判断数据检验任务是否为后置任务时,在目标数据从源数据库抽取写入到目标数据库后,在目标数据库中执行数据检验任务。
基于上述数据检验方法,本发明还提供一种计算机系统,包括:
一个或多个处理器;以及
与一个或多个处理器关联的存储器,存储器用于存储程序指令,程序指令在被一个或多个处理器读取执行时,执行上述数据检验方法。
其中,图3示例性的展示出了计算机系统的架构,具体可以包括处理器310,视频显示适配器311,磁盘驱动器312,输入/输出接口313,网络接口314,以及存储器320。上述处理器310、视频显示适配器311、磁盘驱动器312、输入/输出接口313、网络接口314,与存储器320之间可以通过通信总线330进行通信连接。
其中,处理器310可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器320可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器320可以存储用于控制电子设备300运行的操作系统321,用于控制电子设备300的低级别操作的基本输入输出系统322(BIOS)。另外,还可以存储网页浏览器323,数据存储管理系统324,以及设备标识信息处理系统325等等。上述设备标识信息处理系统325就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器320中,并由处理器310来调用执行。
输入/输出接口313用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口314用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线330包括一通路,在设备的各个组件(例如处理器310、视频显示适配器311、磁盘驱动器312、输入/输出接口313、网络接口314,与存储器320)之间传输信息。
另外,该电子设备300还可以从虚拟资源对象领取条件信息数据库中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器310、视频显示适配器311、磁盘驱动器312、输入/输出接口313、网络接口314,存储器320,总线330等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例提供的技术方案带来的有益效果是:
1、本发明公开的技术方案提供了多种数据检验相对于离线数据任务执行顺序的可能性,通过预先配置或者基于自动获取并解析脚本生成默认配置,即可实现执行顺序设置,并基于离线数据任务可以自动判断执行顺序,提高了数据检验操作的灵活性,提高了检验效率;
2、本发明公开的技术方案提供了当数据发生异常时中断检验任务生成检验信息,待用户做出修改后继续执行数据检验任务的技术方案,继续执行时可调起上下游任务,不需要逐个通知或者逐个去操作下游任务,也无需来回梳理、评估、排查,更好地规避数据检验的生产事故;
3、本发明公开的技术方案还包含执行中任务,即在离线数据任务执行的同时执行数据检验任务,通过临时数据库作为缓冲,减轻了数据检验的压力。
4、本发明公开的技术方案节约生产机器资源,避免异常数据任务的执行,浪费CPU/内存、磁盘空间,将进一步降低机器成本。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据检验的方法,其特征在于,包括:
基于离线数据任务构建数据检验任务,所述离线数据任务包括:从源数据库抽取目标数据写入目标数据库中;
确定所述数据检验任务相对于所述离线数据任务的执行顺序;
按照所述执行顺序执行所述数据检验任务;
执行中根据异常判断条件判断所述目标数据是否异常,若检验到异常,则中断所述数据检验任务,生成检验信息,当接收到用户根据所述检验信息提供的数据修改信息后,继续执行所述数据检验任务。
2.如权利要求1所述的方法,其特征在于,所述按照所述执行顺序执行所述数据检验任务,包括:
若所述数据检验任务为执行中任务,则将所述目标数据从所述源数据库中抽取写入到临时数据库中,对所述临时数据库中的所述目标数据执行同步数据检验;
若所述目标数据通过检验,则将所述临时数据库中的所述目标数据同步写入到所述目标数据库中,待从所述源数据库抽取出的所述目标数据全部通过检验并写入到所述目标数据库后删除所述临时数据库,
若所述目标数据未通过检验,则将所述临时数据库删除。
3.如权利要求1所述的方法,其特征在于,所述按照所述执行顺序执行所述数据检验任务,包括:
若所述数据检验任务为前置任务,则在所述目标数据抽取之前在所述源数据库中执行所述数据检验任务;若所述目标数据通过检验,则将其从所述源数据库中抽取出并写入所述目标数据库中。
4.如权利要求1所述的方法,其特征在于,所述按照所述执行顺序执行所述数据检验任务,包括:
若所述数据检验任务为后置任务,则在所述目标数据从所述源数据库抽取写入到所述目标数据库后,在所述目标数据库中执行所述数据检验任务。
5.如权利要求1~4任一项所述的方法,其特征在于,所述基于离线数据任务构建数据检验任务,包括:
获取所述离线数据任务;
判断所述离线数据任务是否有对应的数据检验规则,若有,则为所述离线数据任务配置数据检验规则,并获取资源元数据以及检验参数表;
根据所述数据检验规则、所述资源元数据和所述检验参数表构建所述数据检验任务,所述数据检验规则包括:所述异常判断条件、所述执行顺序。
6.如权利要求5所述的方法,其特征在于,所述判断所述离线数据任务是否有对应的数据检验规则,包括:
读取检验规则表及所述离线数据任务的任务编号,所述检验规则表中包含各所述任务编号对应的所述数据检验规则;
将所述任务编号与所述检验规则表匹配,确定所述离线数据任务对应的数据检验规则。
7.如权利要求5所述的方法,其特征在于,所述检验参数表的生成包括:
获取所述离线数据任务对应的所述源数据库和所述目标数据库包含的表和/或字段;
根据用户对表和/或字段配置的检验参数,生成与所述离线数据任务对应的检验参数表。
8.如权利要求7所述的方法,其特征在于,所述获取离线数据任务对应的所述源数据库和所述目标数据库包含的表和/或字段,包括:自动获取并解析所述离线数据任务的任务脚本,若解析成功,则得到所述源数据库和所述目标数据包含的表和/或字段,若解析失败,则接收用户输入的表和/或字段。
9.一种数据检验的装置,其特征在于,包括:
数据检验任务获取模块,用于基于离线数据任务获取数据检验任务,所述离线数据任务包括:从源数据库抽取目标数据写入目标数据库中;
执行顺序判断模块,用于确定所述数据检验任务相对于所述离线数据任务的执行顺序;
检验模块,用于按照所述执行顺序执行所述数据检验任务,执行中根据异常判断条件判断所述目标数据是否异常,若检验到异常,则中断所述数据检验任务,生成检验信息,待接收到用户根据所述检验信息提供的数据修改信息后,继续执行所述数据检验任务。
10.一种计算机系统,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行上述权利要求1~8任一项所述的方法。
CN202011625467.7A 2020-12-31 2020-12-31 一种数据检验的方法、装置和系统 Pending CN112632174A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011625467.7A CN112632174A (zh) 2020-12-31 2020-12-31 一种数据检验的方法、装置和系统
CA3144122A CA3144122A1 (en) 2020-12-31 2021-12-29 Data verifying method, device and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011625467.7A CN112632174A (zh) 2020-12-31 2020-12-31 一种数据检验的方法、装置和系统

Publications (1)

Publication Number Publication Date
CN112632174A true CN112632174A (zh) 2021-04-09

Family

ID=75290345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011625467.7A Pending CN112632174A (zh) 2020-12-31 2020-12-31 一种数据检验的方法、装置和系统

Country Status (2)

Country Link
CN (1) CN112632174A (zh)
CA (1) CA3144122A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641739A (zh) * 2021-07-05 2021-11-12 南京联创信息科技有限公司 一种基于Spark的智能数据转换方法
CN114168582A (zh) * 2021-12-13 2022-03-11 平安养老保险股份有限公司 基于数据质量规则的数据校验方法、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918403A (zh) * 2019-02-02 2019-06-21 中国银行股份有限公司 数据校验方法、装置、计算机设备和存储介质
CN110457371A (zh) * 2019-08-13 2019-11-15 杭州有赞科技有限公司 数据管理方法、装置、存储介质及系统
CN110851539A (zh) * 2019-10-25 2020-02-28 东软集团股份有限公司 元数据校验方法、装置、可读存储介质和电子设备
CN111367886A (zh) * 2020-03-02 2020-07-03 中国邮政储蓄银行股份有限公司 数据库中数据迁移的方法及装置
CN112148788A (zh) * 2020-08-25 2020-12-29 珠海市卓轩科技有限公司 异构数据源的数据同步方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918403A (zh) * 2019-02-02 2019-06-21 中国银行股份有限公司 数据校验方法、装置、计算机设备和存储介质
CN110457371A (zh) * 2019-08-13 2019-11-15 杭州有赞科技有限公司 数据管理方法、装置、存储介质及系统
CN110851539A (zh) * 2019-10-25 2020-02-28 东软集团股份有限公司 元数据校验方法、装置、可读存储介质和电子设备
CN111367886A (zh) * 2020-03-02 2020-07-03 中国邮政储蓄银行股份有限公司 数据库中数据迁移的方法及装置
CN112148788A (zh) * 2020-08-25 2020-12-29 珠海市卓轩科技有限公司 异构数据源的数据同步方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641739A (zh) * 2021-07-05 2021-11-12 南京联创信息科技有限公司 一种基于Spark的智能数据转换方法
CN114168582A (zh) * 2021-12-13 2022-03-11 平安养老保险股份有限公司 基于数据质量规则的数据校验方法、系统、设备及介质

Also Published As

Publication number Publication date
CA3144122A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
CN110287052B (zh) 一种异常任务的根因任务确定方法及装置
CN110704304B (zh) 一种应用程序测试方法、装置、存储介质和服务器
CN108628748B (zh) 自动化测试管理方法和自动化测试管理系统
CN108509344B (zh) 日切跑批测试方法、设备及可读存储介质
US20120254662A1 (en) Automated test system and automated test method
CN113254294B (zh) 设备重启检测方法及装置
CN111190551B (zh) 一种redis数据的迁移系统、迁移方法、装置及终端
CN112632174A (zh) 一种数据检验的方法、装置和系统
CN109871368B (zh) 数据库检测方法、装置、计算机装置及存储介质
CN112527655A (zh) 软件版本质量异常检测方法、装置、电子设备及存储介质
CN113254350A (zh) 一种Flink作业测试方法、装置、设备及存储介质
CN111159028B (zh) 网页测试方法及装置
CN112181853A (zh) 程序调试方法、装置及系统
CN116737535A (zh) 接口测试方法、装置、计算机设备和存储介质
CN115048307A (zh) 应用软件的弱网测试方法、装置、设备及存储介质
CN114693116A (zh) 代码评审有效性的检测方法及装置、电子设备
CN113419738A (zh) 接口文档的生成方法、装置及接口管理设备
CN116414610B (zh) 异常日志片段的获取方法、装置、设备及存储介质
CN113342600A (zh) 一种程序依赖插件的监测方法及装置
CN112650679B (zh) 一种测试校验方法、装置及计算机系统
CN112035425B (zh) 一种日志的存储方法、装置及计算机系统
CN114860549B (zh) 埋点数据校验方法、装置、设备和存储介质
CN112115046B (zh) 一种软件故障定位方法、装置及终端
CN114253593A (zh) 应用程序的信息反馈方法、装置、终端设备及存储介质
CN115454800A (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