一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据稽核方法、服务器及存储介质与流程

2022-05-18 06:41:52 来源:中国专利 TAG:

1.本技术实施例涉及数据库
技术领域
,具体涉及一种数据稽核方法、服务器及存储介质。
背景技术
:2.在对数据库进行升级换代时,通常会存在目标数据库替换源数据库的情况。由于数据的重要性,在目标数据库替换源数据库的期间,需要对目标数据库和源数据库进行数据稽核;如果目标、源数据库的数据稽核结果一致,则正式将源数据库替换为目标数据库;如果目标、源数据库的数据稽核结果不一致,则需要进一步寻找导致数据稽核结果不一致的原因。3.在上述过程中,如何在目标、源数据库的数据稽核结果不一致时,准确、高效的寻找导致数据稽核结果不一致的原因,成为了本领域技术人员亟需解决的技术问题。技术实现要素:4.有鉴于此,本技术实施例提供一种数据稽核方法、服务器及存储介质,以实现目标、源数据库的数据稽核,并在目标、源数据库的数据稽核结果不一致时,准确、高效的寻找导致数据稽核结果不一致的原因。5.为实现上述目的,本技术实施例提供如下技术方案。6.第一方面,本技术实施例提供一种数据稽核方法,包括:7.生成目标稽核任务,所述目标稽核任务用于对目标数据库和源数据库在目标存储对象的数据进行数据稽核;8.分别在目标数据库和源数据库执行所述目标稽核任务,并将目标数据库和源数据库在目标存储对象的数据稽核结果进行比对;9.若目标数据库和源数据库在目标存储对象的数据稽核结果不一致,根据目标存储对象的血缘关系,从目标存储对象的上游存储对象中,追溯数据稽核结果一致的目标上游存储对象;所述目标存储对象的血缘关系表达目标存储对象的数据来源关系;10.根据所述目标上游存储对象,确定导致目标存储对象的数据稽核结果不一致的原因。11.第二方面,本技术实施例提供一种服务器,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如上述第一方面所述的数据稽核方法。12.第三方面,本技术实施例提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时实现如上述第一方面所述的数据稽核方法。13.第四方面,本技术实施例提供一种计算机程序,所述计算机程序被执行时实现如上述第一方面所述的数据稽核方法。14.本技术实施例提供的数据稽核方法,在使用目标稽核任务对目标数据库和源数据库进行数据稽核时,如果目标数据库和源数据库在目标稽核任务针对的目标存储对象的数据稽核结果不一致,则可根据目标存储对象的血缘关系,在目标存储对象的上游存储对象中,追溯到数据稽核结果一致的目标上游存储对象;从而根据所述目标上游存储对象,确定导致目标存储对象的数据稽核结果不一致的原因。可见,本技术实施例可以在目标存储对象的数据稽核结果不一致时,基于目标存储对象的血缘关系,自动、高效的追溯到导致数据稽核结果不一致的原因,实现在存储对象的数据稽核结果不一致时,精准高效的原因定位。因此本技术实施例能够确定数据稽核结果,并准确、高效的寻找导致数据稽核结果不一致的原因。附图说明15.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。16.图1为本技术实施例提供的数据稽核系统的框图。17.图2为本技术实施例提供的数据稽核方法的流程图。18.图3为多个存储对象的血缘关系示例图。19.图4为表的血缘关系示例图。20.图5为本技术实施例提供的数据稽核方法的另一流程图。21.图6为本技术实施例提供的数据稽核装置的框图。22.图7为服务器的框图。具体实施方式23.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。24.数据稽核是指检查数据的完整性和一致性,是提升数据质量的一种手段。在对目标、源数据库进行数据稽核时,用户可自定义进行数据稽核的稽核任务;从而目标、源数据库在分别执行稽核任务后,可以将目标数据库和源数据库在稽核任务对应的数据稽核结果进行比对(例如,比对目标数据库和源数据库在稽核任务对应的数据稽核结果是否一致、完整等);如果数据稽核结果一致,则完成目标、源数据库的数据稽核,生成数据稽核通过的稽核报告;如果数据稽核结果不一致,则需要寻找导致数据稽核结果不一致的原因。25.上述数据稽核过程是基于用户自定义的稽核任务实现,目标、源数据库的数据稽核过程被划分为针对单独任务的数据稽核,这导致目标、源数据库在稽核任务的数据稽核结果不一致时,无法自动、高效的寻找导致数据稽核结果不一致的原因,存在寻找原因的效率较低的问题。26.基于此,本技术实施例提供新型的数据稽核方案,能够在目标、源数据库的数据稽核过程中,自动、高效的寻找到导致稽核任务的数据稽核结果不一致的原因。27.作为可选实现,图1示例性的示出了本技术实施例提供的数据稽核系统的可选框图。如图1所示,该数据稽核系统可以包括:源数据库110、目标数据库120、用户130和服务器140。28.在进行数据库升级换代时,可以使用目标数据库120替换源数据库110。例如源数据库110为旧数据库,目标数据库120为新数据库。29.在一些实施例中,源数据库110和目标数据库120可以为异构数据库,异构数据库是指数据库品牌和架构不同的数据库。例如,目标数据库120为mysql数据库,源数据库110为与mysql数据库的品牌和架构不同的数据库。30.需要说明的是,数据库的异构可以是多个方面的,比如异构数据库在sql(structuredquerylanguage,结构化查询语言)语法和数据存储结构上存在不同。在一个示例中,两个数据库在sql语法上不同,为异构数据库;mysql数据库是集中式数据库,而greenplum数据库是mpp(massivelyparallelprocessing,大规模并行处理)分布式数据库,因此mysql数据库和greenplum数据库在数据存储结构上不同,为异构数据库。31.在目标数据库120替换源数据库110时,为保障数据在目标数据库120和源数据库110的完整性和一致性,用户130可以使用服务器140对目标数据库120和源数据库110进行数据稽核。在数据稽核过程中,为保障稽核任务的数据稽核结果不一致时,能够自动、高效的寻找到导致数据稽核结果不一致的原因,服务器140可以基于本技术实施例提供的数据稽核方案进行目标数据库120和源数据库110的数据稽核。32.需要进一步说明的是,用户130在与服务器140进行交互时,用户130可以通过其使用的终端设备与服务器140实现交互。服务器140可以是任意的具有数据服务能力的服务器设备,在一些实施例中,服务器140可以是基于云计算的云服务器。33.作为可选实现,图2示例性的示出了本技术实施例提供的数据稽核方法的可选流程图。该方法流程可由服务器执行实现。如图2所示,该方法流程可以包括如下步骤。34.在步骤s210中,生成目标稽核任务,所述目标稽核任务用于对目标数据库和源数据库在目标存储对象的数据进行数据稽核。35.目标稽核任务为目标数据库和源数据库在进行数据稽核时需执行的稽核任务。在一些实施例中,稽核任务可以是数据查询任务,用于对数据库的存储对象进行数据查询并输出数据查询结果,该数据查询结果可以视为是数据稽核结果。例如,目标数据库和源数据库在分别执行稽核任务后,可以通过比对目标数据库和源数据库分别执行稽核任务所输出的数据稽核结果,实现基于稽核任务对目标数据库和源数据库进行数据稽核。36.在本技术实施例中,目标稽核任务针对目标存储对象。例如,目标数据库和源数据库在分别执行目标稽核任务之后,目标数据库和源数据库可分别输出目标存储对象的数据稽核结果,从而通过比对目标数据库和源数据库在目标存储对象的数据稽核结果,可对目标数据库和源数据库进行数据稽核。37.需要说明的是,存储对象为数据库中用于存储数据的对象,是有结构的数据的集合。在一个示例中,存储对象例如数据库的表(table),表是数据库中用于存储数据的工具,可以定义为列的集合。作为可选实现,目标稽核任务针对的目标存储对象可能为一个或多个,例如,目标稽核任务针对目标数据库和源数据库的一个或多个表进行数据稽核。38.在一些实施例中,目标稽核任务可以是用户定义的第一稽核任务,第一稽核任务用于对目标数据库和源数据库在第一存储对象的数据进行数据稽核。第一存储对象的数量可能为一个或多个。作为可选实现,在需对目标数据库和源数据库进行数据稽核时,用户可基于稽核需求定义第一查询语句(第一查询语句例如sql语句的形式),该第一查询语句可以用于查询第一存储对象的数据,用户可将第一查询语句输入服务器;从而服务器可基于第一查询语句所查询的第一存储对象,生成针对第一存储对象的第一稽核任务。39.在进一步的可选实现中,该第一查询语句可与表达用户稽核需求的指标相对应,例如,用户可根据稽核需求定义稽核的指标,并基于指标构建第一查询语句,第一查询语句所查询的第一存储对象可以是与指标相关联的一个或多个存储对象。在一个示例中,用户需要稽核某年某月的交易额,则指标可以是交易日期以及交易额,用户定义查询具体交易日期的交易额这一指标所对应的第一查询语句,从而在目标数据库与源数据库中查询与交易日期以及交易额相关联的表。40.在另一些实施例中,目标稽核任务除基于用户定义的第一稽核任务生成外,还可基于第一存储对象的血缘关系生成。存储对象之间的血缘关系可以表达存储对象之间的数据来源关系。作为可选实现,多个存储对象基于血缘关系可以划分出一个或多个上游存储对象,以及各个上游存储对象的下游存储对象,其中,一个上游存储对象的数据用于生成该上游存储对象的下游存储对象,也就是说,一个下游存储对象的数据来源于该下游存储对象的上游存储对象。41.为便于说明,图3示例性的示出了多个存储对象的血缘关系示例图。如图3所示,数据库在运行数据任务时分为3个环节:环节1、环节2和环节3。环节1为初始环节,利用到源存储对象311、312、313和314;环节2为中间环节,生成中间存储对象321和322;环节3为最终环节,生成最终存储对象331。其中,环节1的存储对象311和312的数据,用于生成环节2的存储对象321(即存储对象321的数据来源于存储对象311和312),则存储对象311和312作为存储对象321的上游存储对象,相应的,存储对象321为存储对象311和312的下游存储对象;环节1的存储对象313和314的数据,用于生成环节2的存储对象322(即存储对象322的数据来源于存储对象313和314),则存储对象313和314作为存储对象322的上游存储对象,相应的,存储对象322为存储对象313和314的下游存储对象;环节2的存储对象321和322的数据,用于生成环节3的存储对象331(即存储对象331的数据来源于存储对象321和322),则存储对象321和322作为存储对象331的上游存储对象,相应的,存储对象331为存储对象321和322的下游存储对象。42.可以看出,针对某一存储对象,该存储对象可能存在多级的上游存储对象。在某一存储对象的多级上游存储对象中,该存储对象的数据直接来源于第一级的上游存储对象,间接来源于第一级以上的上游存储对象;例如图3示例中,存储对象331存在两级的上游存储对象,存储对象331的数据直接来源于第一级的上游存储对象321和322,间接来源于第二级的上游存储对象311、312、313和314。基于存储对象之间的血缘关系,本技术实施例可确定出各个存储对象的数据来源关系,以便在某个存储对象的数据出现问题时,能够在存储对象之间进行数据追溯。43.作为可选实现,本技术实施例可根据数据库的元数据,识别第一存储对象的血缘关系。例如,结合数据库的存储对象的血缘关系管理、数据中台中的存储对象的血缘关系,识别存储对象的血缘关系。在进一步的一些实施例中,如果第一存储对象没有定义血缘关系,则服务器可提示用户完善第一存储对象的血缘关系。例如,第一存储对象的数量为多个时,本技术实施例需保障各个第一存储对象均定义有血缘关系,如果某一第一存储对象没有定义血缘关系,则本技术实施例可提示用户完善该第一存储对象的血缘关系。44.作为可选实现,服务器在基于用户输入的第一查询语句,确定第一查询语句所查询的第一存储对象后,除生成针对第一存储对象的第一稽核任务,还可根据第一存储对象的血缘关系,确定第一存储对象的上游存储对象,第一存储对象的数据直接或间接来源于上游存储对象。结合图3示例,假设第一存储对象为存储对象331,则基于存储对象331的血缘关系,本技术实施例可确定存储对象311、312、313、314、321和322为第一存储对象的上游存储对象,其中,存储对象321和322为第一存储对象的第一级上游存储对象,存储对象311、312、313和314为第一存储对象的第二级上游存储对象。45.服务器基于第一存储对象的上游存储对象,可向用户提示第一存储对象的各级上游存储对象对应的各级稽核任务,以便用户从提示的各级稽核任务中选择生成的第二稽核任务。进而,基于用户在提示的各级稽核任务中选择生成的第二稽核任务,以及用户定义的第一稽核任务,本技术实施例可生成目标稽核任务。结合图3示例,如果第一存储对象的上游存储对象为311、312、313、314、321和322,则存储对象321和322作为第一存储对象331的第一级上游存储对象,存储对象311、312、313和314作为第一存储对象331的第二级上游存储对象,本技术实施例可向用户提示第一级上游存储对象321和322对应的第一级稽核任务、第二级存储对象311、312、313和314对应的第二级稽核任务,以便用户从第一级稽核任务和第二级稽核任务中选择生成的第二稽核任务。46.需要说明的是,用户是否选择生成第二稽核任务,可由用户决定,本技术实施例在向用户提示第一存储对象的各级上游存储对象对应的各级稽核任务后,并不设限用户是否进一步从中选择了第二稽核任务。47.可以看出,如果用户未选择第二稽核任务,则目标稽核任务可以仅包括用户定义的第一稽核任务,相应的,目标存储对象可以是第一存储对象。例如,结合图3示例所示,第一存储对象为存储对象331,用户未从上游存储对象311、312、313、314、321和322的各级稽核任务中选择第二稽核任务,则目标稽核任务可以是对目标数据库和源数据库在存储对象331的数据进行数据稽核。48.如果用户选择了第二稽核任务,则目标稽核任务可以包括用户定义的第一稽核任务以及选择的第二稽核任务,相应的,目标存储对象可以包括第一存储对象以及用户选择的第二稽核任务针对的第二存储对象。为便于说明,本技术实施例将第二稽核任务针对的存储对象,称为第二存储对象。例如,结合图3示例所示,第一存储对象为存储对象331,用户选择第一级上游存储对象321和322的稽核任务作为第二稽核任务,则存储对象321和322作为第二稽核任务针对的第二存储对象,目标稽核任务可以是对目标数据库和源数据库在存储对象321、322和331的数据进行数据稽核。49.在进一步的可选实现中,目标稽核任务的数量可以为多个,一个目标稽核任务可以对一级的存储对象进行数据稽核,例如第一稽核任务对存储对象331进行数据稽核,第二稽核任务对存储对象321和322进行数据稽核。在多个目标稽核任务的情况下,目标稽核任务可以是任务列表的形式,本技术实施例可由用户定义各个目标稽核任务的执行优先级。例如,定义目标稽核任务中先执行的稽核任务以及后执行的稽核任务。在一个示例中,以存储对象为表为例,在目标稽核任务包括针对表的多个稽核任务时,本技术实施例可定义核心表的稽核任务的优先级,定义核心表的下游表的稽核任务的优先级,且核心表的稽核任务的优先级高于下游表的稽核任务的优先级。50.在步骤s211中,分别在目标数据库和源数据库执行所述目标稽核任务,并将目标数据库和源数据库在目标存储对象的数据稽核结果进行比对。51.在生成目标数据库和源数据库的目标稽核任务之后,本技术实施例可使目标数据库和源数据库分别执行目标稽核任务,并获得目标数据库和源数据库在目标存储对象的数据稽核结果(例如目标数据库和源数据库在目标存储对象的数据查询结果),将目标数据库和源数据库在目标存储对象的数据稽核结果进行比对。52.在一些实施例中,服务器可分别向目标数据库和源数据库传输执行目标稽核任务的查询语句,该查询语句可以是sql语句的形式,以使得目标数据库和源数据库分别执行目标稽核任务。作为可选实现,目标数据库和源数据库的sql语法可能不同,因此针对目标稽核任务,本技术实施例可分别生成适应于目标数据库和源数据库的sql语法的查询语句;从而将适应于目标数据库的sql语法的查询语句输入目标数据库,以及,将适应于源数据库的sql语法的查询语句输入源数据库,以使得目标数据库和源数据库分别执行目标稽核任务。也就是说,针对目标稽核任务,分别构建适应于目标数据库和源数据库的sql语法的查询语句。53.作为可选实现,以目标稽核任务包括用户定义的第一稽核任务为例,用户输入的与第一稽核任务对应的第一查询语句可以是基于源数据库的sql语法构建,本技术实施例可将第一查询语句转换为适应于目标数据库的sql语法的查询语句,从而将第一查询语句传输给源数据库,将第一查询语句转换的查询语句传输给目标数据库,以分别在目标数据库和源数据库执行第一稽核任务。相应的,在将目标数据库和源数据库在目标存储对象的数据稽核结果进行比对时,本技术实施例可比对目标数据库和源数据库在第一存储对象的数据稽核结果。54.作为进一步的可选实现,以目标稽核任务还包括用户选择的第二稽核任务为例,由于用户未对第二稽核任务定义查询语句,因此本技术实施例可基于用户选择的第二稽核任务,分别构建适应于目标数据库和源数据库的sql语法的查询语句,以便在目标数据库和源数据库执行用户选择的第二稽核任务。相应的,在将目标数据库和源数据库在目标存储对象的数据稽核结果进行比对时,本技术实施例可比对目标数据库和源数据库在第二稽核任务针对的第二存储对象的数据稽核结果。55.在步骤s212中,若目标数据库和源数据库在目标存储对象的数据稽核结果不一致,根据目标存储对象的血缘关系,从目标存储对象的上游存储对象中,追溯数据稽核结果一致的目标上游存储对象。56.当目标数据库和源数据库在目标存储对象的数据稽核结果不一致时,本技术实施例可利用目标存储对象的血缘关系,从目标存储对象的上游存储对象中寻找数据稽核结果一致的目标上游存储对象,从而定位目标存储对象的数据稽核结果不一致的原因。目标存储对象的血缘关系可以表达目标存储对象的数据来源关系,例如指示目标存储对象的上游存储对象,目标存储对象的数据直接或间接来源于目标存储对象的上游存储对象。例如,目标存储对象的数据直接来源于第一级的上游存储对象,间接来源于第一级以上的上游存储对象。57.在一些实施例中,本技术实施例可根据目标存储对象的血缘关系,按照目标存储对象的上游存储对象的层级,逐级的对目标存储对象的上游存储对象进行数据稽核,直至寻找到数据稽核结果一致的目标上游存储对象。例如,本技术实施例可根据目标存储对象的血缘关系,按照目标存储对象的上游存储对象的层级,逐级的对目标存储对象的上游存储对象进行数据稽核,并逐级的比对目标数据库和源数据库在上游存储对象的数据稽核结果,直至从目标存储对象的上游存储对象中,首先寻找到数据稽核结果一致的目标上游存储对象。58.作为可选实现,目标存储对象的上游存储对象可能具有多级,本技术实施例可先对目标存储对象的第一级上游存储对象进行数据稽核(目标存储对象的数据直接来源于目标存储对象的第一级上游存储对象),如果数据稽核结果不一致,则继续对目标存储对象的第二级上游存储对象进行数据稽核,以此类推,直至寻找到数据稽核结果一致的目标上游存储对象。59.在一些实施例中,目标存储对象可以是用户定义的第一稽核任务针对的第一存储对象,也可能是用户选择的第二稽核任务针对的第二存储对象。结合图3示例所示,假设目标稽核任务为对存储对象331的数据进行数据稽核,则当目标数据库与源数据库在存储对象331的数据稽核结果不一致时,本技术实施例可对存储对象331的第一级上游存储对象321和322进行数据稽核,如果目标数据库与源数据库在存储对象321和322的数据稽核结果不一致,则继续对存储对象331的第二级上游存储对象311、312、313和314进行数据稽核,以此类推,从而按照存储对象331的血缘关系,逐级的对存储对象331的上游存储对象进行数据稽核,直至寻找到数据稽核结果一致的目标上游存储对象。60.在进一步的一些实施例中,若目标存储对象为原始数据所在的源存储对象(例如源表),由于源存储对象为产生数据的源头,因此目标存储对象不存在上游存储对象,本技术实施例可在目标存储对象为源存储对象时,取消执行步骤s212。61.在进一步的一些实施例中,如果目标数据库和源数据库在目标存储对象的数据稽核结果一致,则本技术实施例可完成目标数据库和源数据库的数据稽核,输出数据稽核通过的稽核报告。62.在步骤s213中,根据所述目标上游存储对象,确定导致目标存储对象的数据稽核结果不一致的原因。63.在从目标存储对象的上游存储对象中,确定出数据稽核结果一致的目标上游存储对象之后,本技术实施例可根据所述目标上游存储对象,确定导致目标存储对象的数据稽核结果不一致的原因。在一些实施例中,可能是任务错误导致目标存储对象的数据稽核结果不一致,也可能是原始数据载入错误导致目标存储对象的数据稽核结果不一致。本技术实施例可基于目标上游存储对象是否为原始数据(载入的数据)所在的源存储对象,实现数据稽核结果不一致的具体原因定位。作为可选实现,若所述目标上游存储对象不为原始数据所在的源存储对象,则可确定目标上游存储对象至目标存储对象的任务错误,是导致目标存储对象的数据稽核结果不一致的原因;若所述目标上游存储对象为原始数据所在的源存储对象,则可确定原始数据错误为导致目标存储对象的数据稽核结果不一致的原因,即是由于原始数据的载入错误,导致目标存储对象的数据稽核结果不一致。64.在进一步的一些实施例中,基于步骤s213确定的原因,本技术实施例可输出稽核报告,结束目标数据库和源数据库的数据稽核。65.在进一步的一些实施例中,本技术实施例在确定出导致目标存储对象的数据稽核结果不一致的原因后,可通知依赖目标上游存储对象以及目标上游存储对象的下游存储对象的任务(该任务可能是目标稽核任务的下游任务),暂停运行,以避免浪费数据库的计算资源。66.本技术实施例提供的数据稽核方法,在使用目标稽核任务对目标数据库和源数据库进行数据稽核时,如果目标数据库和源数据库在目标稽核任务针对的目标存储对象的数据稽核结果不一致,则可根据目标存储对象的血缘关系,在目标存储对象的上游存储对象中,追溯到数据稽核结果一致的目标上游存储对象;从而根据所述目标上游存储对象,确定导致目标存储对象的数据稽核结果不一致的原因。可见,本技术实施例可以在目标存储对象的数据稽核结果不一致时,基于目标存储对象的血缘关系,自动、高效的追溯到导致数据稽核结果不一致的原因,实现在存储对象的数据稽核结果不一致时,精准高效的原因定位。因此本技术实施例能够确定数据稽核结果,并准确、高效的寻找导致数据稽核结果不一致的原因。67.下面以存储对象为表为例,对本技术实施例提供的数据稽核方法进行说明。本技术实施例可基于etl(extract-transform-load、抽取、转换和加载)任务实现,对目标数据库和源数据库进行数据稽核。etl是将数据经过抽取、清洗、转换之后加载到数据库的过程。etl任务包含多个环节,每个环节会使用一个或多个表,且下一环节的表的数据来源于上一环节的表。图4示例性的示出了表的血缘关系示例图。如图4所示,以etl任务包含三个环节的任务为例,其中,抽取环节为初始环节,转换环节为中间环节,加载环节为最终环节。表411、412、413和414为抽取环节使用的表(例如原始数据所在的源表),表421和422为转换环节计算的中间表,表431为加载环节最终生成的表。由图4可以看出,表421的数据来源于表411和412,表422的数据来源于表413和414,表431的数据来源于表421和422,因此表411和412为表421的上游表,表413和414为表422的上游表,表421和422为表431的上游表。基于多个表的血缘关系,本技术实施例可确定出表的数据来源关系,从而便于在某个表的数据存在问题时,在多个表之间进行数据追溯。68.作为可选实现,图5示例的示出了本技术实施例提供的数据稽核方法的另一可选流程图。该方法流程可由服务器执行实现。如图5所示,该方法流程可以包括如下步骤。69.在步骤s510中,获取第一查询语句。70.在一些实施例中,第一查询语句可基于用户定义的指标构建,例如用户需要按照地区分别查询当天的总消费额度,则指标可以是地区、日期以及总消费额,本技术实施例可构建与该指标对应的第一查询语句,以便分别在源数据库和目标数据库中进行查询。71.在一些实施例中,第一查询语句可以适应于源数据库或者目标数据库的sql语法,以目标数据库为mysql数据库,源数据库为mysql数据库的异构数据库为例,用户可基于指标定义适应于源数据库的第一查询语句。例如,针对上述按照地区分别查询当天的总消费额度的需求,用户可定义适应于源数据库的语法格式的第一查询语句(第一查询语句为sql语句的形式):72.selectsum(fee),regionfromt_user_feewherefee_date》trunc(sysdate-1,'dd')andfee_date《trunc(sysdate,'dd')groupbyregion。73.后续为使得mysql数据库能够执行第一查询语句对应的第一稽核任务,本技术实施例可将适应于源数据库的语法格式的第一查询语句转换为mysql数据库的sql语法,例如,上述示例的第一查询语句可以转换为:74.mysql:selectsum(fee),regionfromt_user_feewherefee_date》date_format(date_add(now(),interval-1day),'%y-%d-%m')andfee_date《date_format(now(),'%y-%d-%m')groupbyregion。75.在其他可能的示例中,用户也可定义适应于mysql格式的第一查询语句。用户可基于源数据库和目标数据库的sql语法,选择其中一项sql语法构建第一查询语句,后续可由服务器基于源数据库和目标数据库的sql语法转换关系,自动完成第一查询语句在另一数据库的语法转换。76.当然,用户定义的第一查询语句也可能均不适应于源数据库和目标数据库的sql语法,本技术实施例也可支持后续在执行第一稽核任务时,将第一查询语句自动转换为适应于源数据库和目标数据库的sql语法。77.在步骤s511中,确定第一查询语句所查询的第一表。78.第一表可以是第一查询语句所查询的表,可以视为是第一查询语句用于数据稽核时数据稽核所涉及的表。第一表的数量为一个或多个。在第一表的数量为多个时,第一表可以是表清单的形式。在一些实施例中,第一表可以视为是上述所述的第一存储对象的一种示例。79.在步骤s512中,判断第一表是否存在血缘关系,若否,执行步骤s513,若是,执行步骤s514。80.在一些实施例中,本技术实施例可基于数据库(例如源数据库)的表血缘关系管理,识别第一表的血缘关系。如果第一表存在血缘关系,则本技术实施例可执行步骤s514中,如果第一表不存在血缘关系,则本技术实施例需提示用户完善第一表的血缘关系。作为可选实现,如果第一表为多个表的表清单,则本技术实施例需保障表清单中的各个表均具有血缘关系,如果表清单中存在不具有血缘关系的表,则需要提示用户完善该表的血缘关系。81.第一表的血缘关系可以表达第一表的上游表,第一表的上游表可能是多级的上游表,第一表的数据直接或间接来源于第一表的上游表。例如,第一表的数据直接来源于第一表的第一级上游表,间接来源于第一表的第一级以上的上游表。82.在步骤s513中,提示用户完善第一表的血缘关系。83.在步骤s514中,生成稽核第一表的第一稽核任务,以及基于第一表的血缘关系,向用户提示第一表的各级上游表对应的各级稽核任务。84.第一稽核任务为第一查询语句对应的稽核任务,基于第一查询语句由用户定义,第一稽核任务可以认为是用户定义的稽核任务。除用户定义的第一稽核任务外,基于第一稽核任务所稽核的第一表,本技术实施例可利用第一表的血缘关系,确定第一表的各级上游表,并向用户提示能够生成第一表的各级上游表对应的各级稽核任务,以便用户从提示的各级稽核任务中选择生成的第二稽核任务。85.在一个示例中,结合图4示例所示,假设第一查询语句所查询的第一表为加载环节的表431,则本技术实施例可生成稽核表431的第一稽核任务;同时,基于表431的血缘关系,本技术实施例可确定表431的第一级上游表为转换环节的表421和422,第二级上游表为抽取环节的表411、412、413和414,从而向用户提示能够生成针对转换环节的表421和422进行稽核的第一级稽核任务,针对抽取环节的表411、412、413和414进行稽核的第二级稽核任务,以便用户从该两级稽核任务中选择生成的第二稽核任务。86.在步骤s515中,确定用户从所述各级稽核任务选择生成的第二稽核任务,第二稽核任务用于稽核第二表;根据第一稽核任务和第二稽核任务,形成目标稽核任务。87.在用户从第一表的各级上游表对应的各级稽核任务中,选择生成的第二稽核任务后,本技术实施例可生成第二稽核任务,并将用户定义的第一稽核任务以及用户选择生成的第二稽核任务,作为目标数据库和源数据库需执行的目标稽核任务。目标稽核任务可以是任务列表的形式,包括多个稽核任务(例如第一稽核任务以及一个或多个第二稽核任务)。在进一步的一些实施例中,本技术实施例可将目标稽核任务的任务列表提供给用户,以便用户定义任务列表中各目标稽核任务的执行优先级,例如用户可定义任务列表中的核心表的稽核任务的优先级,高于核心表的下游表的稽核任务。88.在步骤s516中,将目标稽核任务的查询语句分别输入源数据库和目标数据库,以在源数据库和目标数据库中分别执行目标稽核任务。89.在一些实施例中,当按照各目标稽核任务的优先级,逐一的对各目标稽核任务进行执行时,针对具体的目标稽核任务,本技术实施例可生成适应于源数据库和目标数据库的sql语法的查询语句,并分别输入到源数据库和目标数据库中,以使得源数据库和目标数据库分别执行目标稽核任务。作为可选实现,如果具体执行的目标稽核任务是第一稽核任务,则本技术实施例可借住用户定义的第一查询语句,以及第一查询语句基于源数据库或目标数据库的sql语法转换后的查询语句,分别在源数据库和目标数据库执行第一稽核任务。90.在一些实施例中,查询语句的sql语法转换可由服务器的子进程实现,例如服务器的子进程使用sqltransformer组件,分析用户输入的第一查询语句的数据库类型和语法特征,结合稽核使用的源数据库和目标数据库的数据库类型,进行sql语法的自动转换。在其他可能的实现中,本技术实施例也可使用其他组件(例如antlr4组件等),完成sql语法的自动转换,而不限于使用sqltransformer组件。91.在步骤s517中,判断目标数据库和源数据库在目标稽核任务针对的目标表的数据稽核结果是否一致,若是,执行步骤s518,若否,执行步骤s519。92.目标稽核任务可以是针对目标表进行数据稽核,目标表例如第一稽核任务针对的第一表,第二稽核任务针对的第二表等。目标表可以认为是上述所述的目标存储对象的一种示例,第二表可以认为是上述所述的第二存储对象的一种示例。在目标数据库和源数据库执行目标稽核任务后,本技术实施例可判断目标数据库和源数据库在目标表的数据稽核结果是否一致(例如目标数据库和源数据库在目标表的数据查询结果是否一致),以实现通过目标表对目标数据库和源数据库的数据完整性、一致性进行检查。93.在步骤s518中,生成数据稽核通过的稽核报告,结束流程。94.如果目标数据库和源数据库在目标表的数据稽核结果一致,则本技术实施例可完成目标数据库和源数据库的稽核,生成数据稽核通过的稽核报告,并结束流程。需要说明的是,在目标稽核任务的任务数量为多个时,本技术实施例需在目标数据库和源数据库在各个目标稽核任务对应的数据稽核结果均一致时,完成目标数据库和源数据库的稽核,并生成数据稽核通过的稽核报告。95.在步骤s519中,根据目标表的血缘关系,在目标数据库和源数据库中逐级的对目标表的上游表进行数据稽核,直至确定出数据稽核结果一致的目标上游表。96.如果目标数据库和源数据库在目标表的数据稽核结果不一致,则本技术实施例可根据目标表的血缘关系,按照目标表的上游表的层级,逐级的对目标表的上游表进行数据稽核,并逐级的比对目标数据库和源数据库在上游表的数据稽核结果,直至从目标表的上游表中首先寻找到数据稽核结果一致的目标上游表。目标上游表可以视为是上述所述的目标上游存储对象的一种示例。97.在一些实施例中,如果目标数据库和源数据库在目标表的数据稽核结果不一致,则根据目标表的血缘关系,本技术实施例可追溯到目标表的第一级上游表(目标表的父表),比对目标数据库和源数据库在该第一级上游表的数据是否一致;如果目标数据库和源数据库在该第一级上游表的数据一致,则提示用户该第一级上游表到目标表的任务错误(例如etl任务错误),为导致目标表的数据稽核结果不一致的原因;如果目标数据库和源数据库在该第一级上游表的数据不一致,则再追溯到目标表的第二级上游表(目标表的祖父表),比对目标数据库和源数据库在该第二级上游表的数据是否一致,以此方式递归追溯到源表,直至从目标表的上游表中寻找到首先出现数据稽核结果一致的目标上游表。98.在一些实施例中,如果目标稽核任务的数量为多个,则该多个目标稽核任务按照优先级执行的过程中,当目标数据库和源数据库在当前执行的目标稽核任务对应的数据稽核结果不一致时,本技术实施例可对该当前执行的目标稽核任务针对的目标表,进行基于表血缘关系的追溯稽核,从而从该当前执行的目标稽核任务针对的目标表的上游表中,寻找到目标上游表。99.在进一步的一些实施例中,目标数据库和源数据库在执行目标稽核任务时,可以是连接(join)多个目标存储对象实现查询数据稽核结果,而不限于是对单个目标存储对象实现查询数据稽核结果。例如,本技术实施例可以支持join多个目标表来实现查询目标表的数据稽核结果。在一个示例中,以目标稽核任务为第一稽核任务为例,本技术实施例可支持用户自定义支持join多个表的第一查询语句,例如第一查询语句对应的指标需要join多个表来查询,从而后续目标数据库和源数据库在执行第一稽核任务时,可通过join多个第一表,来实现查询第一表的数据稽核结果。100.在步骤s520中,若目标上游表不为源表,确定目标上游表至目标表的任务错误,是导致目标表的数据稽核结果不一致的原因;若目标上游表为源表,确定源表的数据错误,是导致目标表的数据稽核结果不一致的原因;基于原因输出稽核报告。101.在确定目标上游表后,本技术实施例可基于目标上游表是否为原始数据所在的源表,确定导致目标表的数据稽核结果不一致的具体原因。如果目标上游表不为源表,则确定目标上游表至目标表的任务错误,是导致目标表的数据稽核结果不一致的原因;如果目标上游表为源表,则确定源表的数据错误,是导致目标表的数据稽核结果不一致的原因。从而基于确定的原因,本技术实施例可输出稽核报告,以便通过稽核报告说明数据稽核结果不一致的问题原因。102.在进一步的一些实施例中,本技术实施例在确定上述原因后,目标上游表至目标表的数据可以确定为是问题数据,本技术实施例可通知依赖目标上游表以及目标上游表的下游表的任务,暂停执行(例如依赖目标上游表至目标表的任务,暂停etl),从而避免源数据库和目标数据库进一步的浪费计算资源。作为可选实现,服务器可利用子进程通知依赖目标上游表以及目标上游表的下游表的任务,暂停执行。103.本技术实施例提供的数据稽核方案,能够基于存储对象的血缘关系,为用户推荐针对全链路存储对象的稽核任务,并在某一稽核任务的数据稽核结果不一致时,对该稽核任务的上游存储对象进行追溯稽核,实现了目标数据库和源数据库的全链路数据稽核。进一步的,本技术实施例可基于用户需求确定稽核任务,又能够在稽核任务的数据稽核结果不一致时,具备上游存储对象的追溯稽核能力,实现了数据稽核过程中全链路的保证数据准确性。进一步的,通过寻找到的问题数据,通知依赖问题数据的任务暂停执行,可以及时节约数据库的计算资源和存储空间,节省数据集成时间。104.下面对本技术实施例提供的数据稽核装置进行介绍,下文描述的数据稽核装置可以认为是服务器为实现本技术实施例提供的数据稽核方法,所需设置的功能模块。下文描述的数据稽核装置的内容,可与上文描述的数据稽核方法的内容相互对应参照。105.作为可选实现,图6示出了本技术实施例提供的数据稽核装置的可选框图。如图6所示,该数据稽核装置可以包括:106.目标稽核任务生成模块610,用于生成目标稽核任务,所述目标稽核任务用于对目标数据库和源数据库在目标存储对象的数据进行数据稽核;107.数据比对模块620,用于分别在目标数据库和源数据库执行所述目标稽核任务,并将目标数据库和源数据库在目标存储对象的数据稽核结果进行比对;108.追溯稽核模块630,用于若目标数据库和源数据库在目标存储对象的数据稽核结果不一致,根据目标存储对象的血缘关系,从目标存储对象的上游存储对象中,追溯数据稽核结果一致的目标上游存储对象;所述目标存储对象的血缘关系表达目标存储对象的数据来源关系;109.原因确定模块640,用于根据所述目标上游存储对象,确定导致目标存储对象的数据稽核结果不一致的原因。110.在一些实施例中,所述目标存储对象的血缘关系表达目标存储对象的数据来源关系包括:目标存储对象的数据直接或间接来源于目标存储对象的上游存储对象,其中,目标存储对象的数据直接来源于第一级的上游存储对象,间接来源于第一级以上的上游存储对象。111.在一些实施例中,追溯稽核模块630,用于根据目标存储对象的血缘关系,从目标存储对象的上游存储对象中,追溯数据稽核结果一致的目标上游存储对象包括:112.根据目标存储对象的血缘关系,按照目标存储对象的上游存储对象的层级,逐级的对目标存储对象的上游存储对象进行数据稽核,直至寻找到数据稽核结果一致的目标上游存储对象。113.在一些实施例中,原因确定模块640,用于根据所述目标上游存储对象,确定导致目标存储对象的数据稽核结果不一致的原因包括:114.若所述目标上游存储对象不为原始数据所在的源存储对象,确定目标上游存储对象至目标存储对象的任务错误,是导致目标存储对象的数据稽核结果不一致的原因;115.若所述目标上游存储对象为原始数据所在的源存储对象,确定原始数据错误为导致目标存储对象的数据稽核结果不一致的原因。116.在一些实施例中,目标稽核任务生成模块610,用于生成目标稽核任务包括:117.生成用户自定义的第一稽核任务,所述第一稽核任务针对目标数据库和源数据库中的第一存储对象进行数据稽核;118.根据第一存储对象的血缘关系,确定第一存储对象的上游存储对象;119.向用户提示第一存储对象的各级上游存储对象对应的各级稽核任务;120.基于用户从提示的各级稽核任务中选择生成的第二稽核任务,以及所述第一稽核任务,生成目标稽核任务。121.在一些实施例中,所述目标存储对象包括所述第一存储对象,和所述第二稽核任务针对的第二存储对象;本技术实施例提供的装置还可用于:定义各个目标稽核任务的执行优先级。122.在一些实施例中,目标稽核任务生成模块610,用于生成用户自定义的第一稽核任务包括:123.获取用户输入的第一查询语句,所述第一查询语句与用户需稽核的指标相对应;124.基于所述第一查询语句所查询的第一存储对象,生成第一稽核任务。125.在一些实施例中,数据比对模块620,用于分别在目标数据库和源数据库执行所述目标稽核任务包括:126.针对目标稽核任务,分别生成适应于目标数据库和源数据库的sql语法的查询语句;127.将适应于目标数据库的sql语法的查询语句输入目标数据库,以及,将适应于源数据库的sql语法的查询语句输入源数据库,以使得目标数据库和源数据库分别执行目标稽核任务。128.在一些实施例中,本技术实施例提供的装置还可用于:129.根据所述原因生成稽核报告;130.和/或,通知依赖目标上游存储对象以及目标上游存储对象的下游存储对象的任务,暂停运行;131.和/或,若目标数据库和源数据库在目标存储对象的数据稽核结果一致,生成数据稽核通过的稽核报告;132.和/或,若目标存储对象为原始数据所在的源存储对象,取消执行所述若目标数据库和源数据库在目标存储对象的数据稽核结果不一致,根据目标存储对象的血缘关系,从目标存储对象的上游存储对象中,追溯数据稽核结果一致的目标上游存储对象的步骤。133.本技术实施例还提供一种服务器,该服务器例如云服务器。该服务器可以通过设置上述所述的数据稽核装置,以实现本技术实施例提供的数据稽核方法。作为可选实现,图7示出了服务器的可选框图,如图7所示,该服务器可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4。134.在本技术实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信。135.可选的,通信接口2可以为用于进行网络通信的通信模块的接口。136.可选的,处理器1可能是cpu,gpu(graphicsprocessingunit,图形处理器),npu(嵌入式神经网络处理器),fpga(fieldprogrammablegatearray,现场可编程逻辑门阵列),tpu(张量处理单元),ai芯片,特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本技术实施例的一个或多个集成电路等。137.存储器3可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。138.其中,存储器3存储一条或多条计算机可执行指令,处理器1调用所述一条或多条计算机可执行指令,以执行本技术实施例提供的数据稽核方法。139.本技术实施例还提供一种存储介质,该存储介质可以存储一条或多条计算机可执行指令,该一条或多条计算机可执行指令被执行时实现如本技术实施例提供的数据稽核方法。140.本技术实施例还提供一种计算机程序,该计算机程序被执行时实现如本技术实施例提供的数据稽核方法。141.上文描述了本技术实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本技术实施例披露、公开的实施例方案。142.虽然本技术实施例披露如上,但本技术并非限定于此。任何本领域技术人员,在不脱离本技术的精神和范围内,均可作各种更动与修改,因此本技术的保护范围应当以权利要求所限定的范围为准。当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献