CN115905273B - 一种数仓表中的数据检测方法、电子设备及存储介质 - Google Patents
一种数仓表中的数据检测方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115905273B CN115905273B CN202211405098.XA CN202211405098A CN115905273B CN 115905273 B CN115905273 B CN 115905273B CN 202211405098 A CN202211405098 A CN 202211405098A CN 115905273 B CN115905273 B CN 115905273B
- Authority
- CN
- China
- Prior art keywords
- data
- difference
- bin table
- column
- measured
- 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.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种数仓表中的数据检测方法、电子设备及存储介质,本申请实施例获取待测数仓表的待测列及波动范围差阈值;以基准数仓表中的每一行数据作为比较基准,以所述待测数据仓表中的行作为单位,对所述待测数仓表的每一行中的数据进行对比,标记所述待测数仓表中的差异行,所述差异行中的数据与所述基准仓表中的行数据不相同;根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列;根据所述待测数仓表中的同时被标记为差异行和被标记为差异列的差异数据,获得检测结果。这样,本申请实施例提高数仓表的检测效率及检测正确率。
Description
技术领域
本申请涉及计算机数据库的处理技术领域,特别涉及一种数仓表中的数据检测方法、电子设备及存储介质。
背景技术
随着计算机网络的发展,各种类型业务的提供者可以依托计算机网络平台设置对应的业务系统,为客户提供不同类型的业务。在业务系统为客户提供业务过程中需要收集海量的数据,通过数仓来管理。数仓,即数据仓库,是一个面向主题,集成的,相对稳定的即反映历史变化的数据集合,用于支持业务系统的管理决策。在采用数仓管理某一业务系统的海量数据时,是将在提供业务过程中收集的海量数据填入到设置的各种类型数仓表中,供查询及提取使用。
业务系统涉及的数据为大数据,大数据具有规模性、高速性、和数据来源及形式上的多样性特点,所以在经过数据收集、生产及加工等的环节形成数仓表的过程中,会出现数据的诸如一致性及准确性等的质量问题。在这种情况下,需要对数仓表进行人工核对,从中检测得到有质量问题的数据。但是,人工核对数仓表在数据质效上很不理想,通过技术方式对数仓表进行检测变得尤为重要。
目前,在进行数仓表的检测时,可以设置数仓表检测策略后在业务系统中运行,该数仓表检测策略基于诸如结构化查询语言(SQL)或Python的扩展程序库(Pandas)等设置,将待测的数仓表与对应的基准数仓表进行一一比对,确定要检测的数仓表中的有质量问题的数据和检测正确的数据。但是,由于待测的数仓表的数量巨大且需要将表中的逐行数据进行一一比对,且在业务系统中运行数仓表检测策略时会占用资源,导致了检测数仓表的效率低下且检测错误率高的问题。
发明内容
有鉴于此,本申请实施例提供一种数仓表中的数据检测方法,该方法能够提高数仓表的检测效率及检测正确率。
本发明实施例还提供一种数仓表中的数据检测系统,该系统能够提高数仓表的检测效率及检测正确率。
本申请实施例是这样实现的:
本申请的一个实施例中,提供一种数仓表中的数据检测方法,所述方法包括:
获取待测数仓表的待测列及波动范围差阈值;
以基准数仓表中的每一行数据作为比较基准,以所述待测数据仓表中的行作为单位,对所述待测数仓表的每一行中的数据进行对比,标记所述待测数仓表中的差异行,所述差异行中的数据与所述基准仓表中的行数据不相同;
根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列;
根据所述待测数仓表中的同时被标记为差异行和被标记为差异列的差异数据,获得检测结果。
在上述方法中,所述获取待测数仓表的待测列及波动范围差阈值包括:
从客户端接收待测数仓表的待测列及波动范围差阈值,所述待测数仓表的待测列及波动范围差阈值为所述客户端通过设置的用户界面框架子系统,设置的。
在上述方法中,所述根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比包括:
按照所述待测数仓表的不同列,对索引得到的所述差异行中的待测列数据进行分组,得到至少一组待测列数据;
对每组待测列数据,采用设置的双层逻辑策略,与所述基准数仓表中对应的列数据进行对比,判断是否超过所述波动范围差阈值,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列;
其中,所述双层逻辑判断为:针对每一待测列数据,先判断其位数是否在设置的位数值范围内,如果是,再进行对比,判断是否超过所述波动范围差阈值。
在上述方法中,所述获得检测结果包括:
所述差异数据,或/和所述差异数据所在的修改行标记。
在上述方法中,所述获得检测结果包括:
将所述待测数仓表中的同时被标记为差异行和被标记为差异列的差异数据,进行汇总或/和分析,获得检测结果;
其中,在所述分析之前,还包括:
对所述差异数据基于设置的数据构架进行预处理。
在上述方法中,所述获得检测结果包括:
所述待测数仓表的列差值分布信息;
所述进行分析包括:
根据所述差异数据,在所设置的列差值范围内,按照所在所述待测数仓表中的列,进行列差值分布计算,得到所述待测数仓表的列差值分布信息。
在上述方法中,所述获得检测结果包括:所述待测数仓表中的数据空值率;
所述进行分析包括:
根据所述差异数据,确定具有空值的所述差异数据数量,进行所述待测数仓表的数据空值率计算,得到所述待测数仓表中的数据空值率。
在上述方法中,所述获得检测结果后,还包括:
将所述检测结果输出给客户端,以使客户端对所述检测结果进行可视化显示。
本申请的另一实施例中提供一种电子设备,其特征在于,包括:
处理器;
存储器,存储有程序,所述程序配置为在被所述处理器执行时实现上述任一项所述的数仓表中的数据检测的方法。
本申请的再一实施例中提供一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行上述任一项所述的数仓表中的数据检测的方法。
如上所见,本申请实施例获取待测数仓表的待测列及波动范围差阈值;以基准数仓表中的每一行数据作为比较基准,以所述待测数据仓表中的行作为单位,对所述待测数仓表的每一行中的数据进行对比,标记所述待测数仓表中的差异行,所述差异行中的数据与所述基准仓表中的行数据不相同;根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列;根据所述待测数仓表中的同时被标记为差异行和被标记为差异列的差异数据,获得检测结果。这样,本申请实施例在比对待测数仓表过程中,采用基于设置的待测列直接筛选的方式,对待测数仓表中的待测数据进行一次筛选,减少比对待测数据量,从而提高数仓表的检测效率及检测正确率。
附图说明
图1为将待测数仓表与基准数仓表进行逐行数据的对比过程示意图;
图2为本申请实施例提供的一种数仓表中的数据检测方法流程图;
图3为本申请实施例提供的在客户端中的数仓表检测系统结构示意图;
图4为本申请实施例提供的采用两种方式对数仓表进行检测的过程示意图;
图5为本申请实施例提供的对待测数仓表的比对结果进行分析的过程示意图;
图6为本申请实施例提供的一种数仓表中的数据检测系统结构示意图;
图7为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
下面以具体实施例对本申请的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
目前对数仓表进行检测,主要检测数仓表中的数据一致性及准确性,具体是将待测数仓表与基准数仓表进行逐行数据的对比,通过检测两张表数据量级或者数据值不相同,且存在异常波动等情况实现对待测数仓表的检测。如图1所示,图1为将待测数仓表与基准数仓表进行逐行数据的对比过程示意图。
目前对数仓表进行检测时,可以采用三种方式,以下分别说明。
第一种方式,人工比对方式,对数仓表中的数据进行抽样后,基于基准数仓表进行人工比对,这种方式存在检测效率低下,以及检测出错率高的问题;
第二种方式,采用SQL设置数仓表检测策略并运行,基于该数仓表检测策略将待测数仓表与基准数仓表对应后,进行逐行数据比对,这种方式需要重复编写SQL语句,设置数仓表检测策略,检测效率低,且当该策略中的对应条件较多时会导致检测过程的时间长,并且会导致慢查询;
第三种方式,采用诸如pandas等的数据分析工具进行数仓表的检测,pandas是一种被广泛应用于数据分析和数据挖掘的工具,提供了丰富的数据处理函数且能够支持多种类型数据结构的数据处理,采用pandas中的应用程序编程接口(API)调取待测数仓表中的数据,与基准数仓表中的对应数据进行对比。但是,采用pandas方式进行数据分析时,面临最大的问题时无法支持分布式的业务系统,对比海量数据时业务系统的内存资源占用大且运行时间长,对比的多任务并发甚至导致业务系统运行异常,使得业务系统产生性能问题。
可以看出,采用上述方式对数仓表检测时,存在各种问题,会导致检测数仓表的效率低下且检测错误率高的问题。
因此,本申请实施例为了解决上述问题,采用的数仓表检测过程包括:以基准数仓表中的每一行数据作为比较基准,以所述待测数据仓表中的行作为单位,对所述待测数仓表的每一行中的数据进行对比,标记所述待测数仓表中的差异行,所述差异行中的数据与所述基准仓表中的行数据不相同;根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列;根据所述待测数仓表中的同时被标记为差异行和被标记为差异列的差异数据,获得检测结果。
这样,本申请实施例在比对待测数仓表过程中,采用基于设置的待测列直接筛选的方式,对待测数仓表中的待测数据进行一次筛选,减少比对待测数据量。
更进一地,本申请实施例在比对待测列数据时,对所述基准数仓表中的对应列数据采用分组方式进行定位后,直接精确比对,减少待测列数据的比对时间及复杂度,从而提高数仓表的检测效率及检测正确率。
在本申请实施例中,为了在客户端实现上述数仓表的检测过程,可以在客户端实现,具体是在客户端中设置基于python、pandas及数据仓库工具(hive)的数仓表检测系统并运行,执行数仓表的检测过程。其中,数仓表检测系统中设置有用户界面框架子系统,该子系统基于python+Vue框架设置,获取通过客户端的用户前端,设置的待测数仓表的待测列及波动范围差阈值。该用户界面框架子系统还在客户端的用户前端对检测结果进行可视化显示。客户端的数仓表检测系统采用hive从业务系统的数据库中提取待测数仓表,及设置基准数仓表,用于后续的比对。客户端的数仓表检测系统在比对待测数仓表与基准数仓表时,采用pandas中已有的各功能数据处理函数进行了待测数仓表的行索引及列索引,定位得到待测数据与基准数仓表中的对应数据进行精确比对。
更进一步地,客户端的数仓表检测系统在对比得到差异数据,进行后续分析时,采用pandas中已有的各个数据处理函数,进行待测数仓表的数据空值率计算,及列差值分布计算,得到待测数仓表的数据空值率及列差值分布信息,进行后续的在客户端的用户前端的可视化展示。
这样,本申请实施例在客户端设置的数仓表检测系统可支持灵活配置数仓表数据对比策略、对对比后得到的差异数据进行分析,以及将检测结果进行可视化呈现。
图2为本申请实施例提供的一种数仓表中的数据检测方法流程图,其具体步骤包括:
步骤201、获取待测数仓表的待测列及波动范围差阈值;
步骤202、以基准数仓表中的每一行数据作为比较基准,以所述待测数据仓表中的行作为单位,对所述待测数仓表的每一行中的数据进行对比,标记所述待测数仓表中的差异行,所述差异行中的数据与所述基准仓表中的行数据不相同;
步骤203、根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列;
步骤204、根据所述待测数仓表中的被同时标记为差异行和标记为差异列的差异数据,获得检测结果。
在上述方法中,提及了待测数仓表中的差异行和差异列。其中,所述待测数据仓表中的差异行指的是:以每个基准数仓表中的每一行数据作为比较基准,以所述待测数据仓表中的行作为单位,到待测数据仓表中搜索,确定是否与其中的某一行中的数据相同,直到基准表中所有行的数据都被搜索完,而没有被搜索到具有相同行数据所在的待测数据仓表中的行,则认为是差异行。也就是说,所述差异行的数据在所述基准数仓表中没有相同的行数据存在。差异列指的是:将待测数据仓表中的待测列中的数据与在基准数仓表中的对应列中的数据进行对比(待测数据仓表的列与基准数据仓表的列之间有对应关系),确定对比结果中是否都超过设置的波动范围差阈值,如果是,则将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列。
在上述方法中,所述获取待测数仓表的待测列及波动范围差阈值包括:
从客户端接收待测数仓表的待测列及波动范围差阈值,所述待测数仓表的待测列及波动范围差阈值为所述客户端通过设置的用户界面框架子系统,设置的。
具体地说,在客户端设置有用户界面框架子系统,所述客户端运行所述用户界面框架子系统,通过所述客户端的用户前端,设置待测数仓表的待测列及波动范围差阈值。
在这里,该用户界面框架子系统是基于python+Vue框架设置的,运行后,在客户端的用户前端界面上显示需要用户设置的各个参数,比如待测列、波动范围差阈值设置、或/和检测的定时时间设置等等,所设置的待测列可以包括索引列或/和对比列等的设置,该用户界面框架子系统获取到用户设置的各个参数设置后,采用python生成对应的检测条件,基于该检测条件进行后续的检测过程。
在这里,该用户界面框架子系统作为在客户端设置的数仓表检测系统中的一个子系统,作用于客户端的用户前端。
在上述方法中,所述差异行包括了新增行或删除行等。
在上述方法中的步骤203,所述根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比包括:
按照所述待测数仓表的不同列,对索引得到的所述差异行中的待测列数据进行分组,得到至少一组待测列数据;对每组的待测列数据,采用设置的双层逻辑策略,与所述基准数仓表中对应的列数据进行对比,判断是否超过所述波动范围差阈值,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列。
在这里,上述比对过程是通过pandas中已有的各功能数据处理函数实现的,其中,
按照所述待测数仓表的不同列,对索引得到的所述差异行中的待测列数据进行分组,得到每组的待测列数据时,通过pandas中的分组(groupby())函数根据索引列对待测列数据进行分组实现;
将超过所述波动范围差阈值的差异列进行标记,通过pandas中的统计运算(agg())函数实现;
其中,所采用的双层判断逻辑策略为:针对每一待测列数据,先判断其位数是否在设置的位数值范围内,如果是,再进行对比,判断是否超过所述波动范围差阈值。
在上述方法中,检测结果可以仅仅包括所述差异数据或/和所述差异数据所在的修改行标记,用于后续待测数仓表的修改行的指示。在这种情况下,可以将检测结果在客户端的用户前端进行可视化显示。
在上述方法中,所述获得检测结果包括:
将所述待测数仓表中的同时被标记为差异行和被标记为差异列的差异数据,进行汇总或/和分析,获得检测结果。
一方面,在上述方法中,将所述待测数仓表中的同时被标记为差异行和被标记差异列的差异数据,进行分析时,得到的检测结果包括:所述待测数仓表的列差值分布信息。在这种情况下,可以将所述待测数仓表的列差值分布信息在客户端的用户前端进行可视化显示。
本申请实施例在对差异数据进行分析,得到所述待测数仓表的列差值分布信息的过程包括:
对所述差异数据基于设置的数据构架(DataFrame)进行预处理,该DataFrame是pandas对差异数据进行数据框架结构化处理的函数,通过DataFrame预处理可以对差异数据进行设置数据框架的结构化,这样,差异数据在所设置的数据构架中就可以被唯一索引,在所设置的数据构架中具有唯一的单元格存储;
根据所述差异数据,在所设置的列差值范围内,按照所在所述待测数仓表中的列,进行列差值分布计算,得到所述待测数仓表的列差值分布信息;其中,列差值范围根据需要或经验设置,通过pandas的applymap()函数及自定义函数设置在数据框架结构中的每个单元格中执行自定义函数(该自定义函数设置了列差值计算规则),然后利用DataFrame中的条件筛选和pandas的计数(count())函数对所述待测数仓表的列差值分布信息进行统计。
在得到所述待测数仓表的列差值分布信息后,在客户端的用户前端进行可视化显示显示之前,还进一步包括:在待测数仓表中设置最小索引值和索引标识、及最大索引值和索引标识,对所述待测数仓表的列差值分布信息在最大索引值到最小索引值之间,及在最大索引标识和最小索引标识之间的范围内进行定位。
另一方面,在上述方法中,将所述待测数仓表中的同时被标记为差异行和被标记为差异列的差异数据,进行分析时,得到的检测结果包括:所述待测数仓表中的数据空值率。在这种情况下,可以将所述待测数仓表中的数据空值率在客户端的用户前端进行可视化显示。
本申请实施例在进行分析,得到所述待测数仓表中的数据空值率的过程包括:
对所述差异数据基于设置的DataFrame进行预处理,该DataFrame是pandas对差异数据进行数据框架结构化处理的函数,通过DataFrame预处理可以对差异数据进行设定数据框架的结构化;
根据所述差异数据,确定具有空值的所述差异数据数量,进行所述待测数仓表的数据空值率计算,得到所述待测数仓表中的数据空值率,其中,利用DataFrame中的条件筛选和pandas的计数(count())函数对所述待测数仓表的数据空值率进行统计。
可以看出,本申请实施例可支持灵活配置数仓表数据对比策略、对对比后得到的差异数据进行分析,以及将检测结果进行可视化呈现。在客户端开发基于python、pandas及hive的数仓表检测系统,该系统利用pandas中的DataFrame实现唯一索引差异数据;利用待测数仓表的行、列索引转换和pandas中的groupby()函数实现差异行列的定位。在此基础上,在定位待测数据并进行比对时,通过双层判断逻辑策略实现,而避免采用现有技术中的unique()函数,并且引入了agg()函数进行了差异数据的统计及标记,减少现有技术采用pandas实现比对过程的时间及复杂度。更进一步地,本申请实施例为了更好支持待测数仓表中的差异数据的定位,利用Pandas的数据处理函数对差异列分布信息,及数据空值率进行统计分析。本申请实施例在待测数据对比、检测结果分析及差异数据定位的基础上,提供客户端的用户前端用于对比列、索引列及波动范围差阈值等参数的设置,方便灵活。
以下对本申请实施例进行详细说明。
图3为本申请实施例提供的在客户端中的数仓表检测系统结构示意图,如图所示,在客户端设置数仓表检测系统并运行,该数仓表检测系统包括用户界面框架子系统,从而在在客户端的用户前端界面上显示需要用户设置的各个参数,比如待测列、波动范围差阈值设置、或/和检测的定时时间设置等等,所设置的待测列可以包括索引列或/和对比列等的设置,该用户界面框架子系统响应用户设置的各个参数设置后,采用python生成对应的检测条件(可以表示为SQL),基于该检测条件进行后续的检测过程。客户端获取用户的设置,进行待测数仓表与基准数仓表的对比,得到差异数据并对差异数据进行标记。客户端基于差异数据还可以进行数据空值率分析及列差值分布信息的分析,从而获取得到待测数仓表的数据空值率及列差值分布信息。客户端的用户前端可以将得到的差异数据,分析得到的待测数仓表的数据空值率及列差值分布信息进行可视化显示,在进行可视化显示时,也可以将用户设置的各种参数进行显示,这里不限定。
图4为本申请实施例提供的采用两种方式对数仓表进行检测的过程示意图,如图所示,第一种方式为现有技术方式,其是基于pandas实现的;第二种方式为本申请实施例采用的方式,其是基于python和pandas实现的。
采用现有技术方式进行待测数仓表的检测过程:
1)对待测数仓表进行DataFrame预处理,将待测数仓表中的数据空值去除,形成可以唯一索引待测数仓表中的数据的数据架构;
2)基于步骤1)的数据架构,采用concat()函数将待测数仓表中的待测数据与基准数仓表的待测数据合并;
3)采用groupby()函数,根据设置的索引列对待测数据进行分组;
4)采用unique()函数,判断每一组的待测数据与基准数据是否相同,得出其中的差异数据;
5)基于差异数据确定其所在的差异行,并进行标记,这里的差异行为新增行或删除行;
6)采用agg()函数对差异行进行统计及标记,且采用nunique()函数对差异行的数量进行统计得到差异行的数量。
可以看出,现有技术方式合并待测数仓表及基准数仓表中的所有数据(不进行筛选),就进行后续的分组及比较,会导致比对的时间长及复杂度高,尤其是在具有海量的待测数据情况下,因此,存在性能差且配置不灵活的缺点。
采用本申请实施例提供的方法进行待测数仓表的检测过程:
1)对待测数仓表进行DataFrame预处理,将待测数仓表中的数据空值去除,形成可以唯一索引待测数仓表中的数据的数据架构;
2)基于步骤1)的数据架构,采用concat()函数将待测数仓表中的待测数据与基准数仓表的待测数据合并;
3)以基准数仓表中的每一行数据作为比较基准,以所述待测数据仓表中的行作为单位,对所述待测数仓表的每一行中的数据进行对比,标记所述待测数据仓的差异行,这里的差异行包括了删除行及新增行等,所述差异行中的数据未出现在所述基准数仓表的行数据中;
4)采用groupby()函数,根据设置的索引列对差异行中的待测数据进行分组;
5)对每组的待测列数据,采用设置的双层逻辑策略,与所述基准数仓表中对应的列数据进行对比,判断是否超过所述波动范围差阈值,并将超过所述波动范围差阈值的待测列数据所属的待测列进行标记,作为差异列;其中,将差异列进行标记,通过pandas中的agg()函数实现;所采用的双层判断逻辑策略为:针对每一待测列数据,先判断其位数是否在设置的位数值范围内,如果是,再进行对比,判断是否超过所述波动范围差阈值。
可以看出,采用本申请实施例提供的方法进行待测数仓表的检测时,是基于Python+Vue+Pandas技术,用户可在客户端的用户前端配置索引列、对比列及波动范围差阈值后,根据Python生成筛选条件,触发后由客户端的用户后端采用Pandas技术实现。在实现时,通过优先标记差异行减少比对数据的量级,采用双层逻辑判断策略替代现有技术采用的unique()函数,将检测的时间复杂度从logn倍的数量级,减少到n倍的数量级。采用了agg()函数在得到差异数据时,同时标记差异数据。因此,可以改良现有技术基于Pandas的待测数仓表的比对过程,提升执行性能,缩短运行时长。
在本申请实施例中,在对待测数仓表中的待测数据进行比对,得到差异数据之后,还可以进行分析,得到所述待测数仓表的列差值分布信息及数据空值率。如图5所示,图5为本申请实施例提供的对待测数仓表的比对结果进行分析的过程示意图。其中,
在进行分析得到所述待测数仓表的列差值分布信息时,包括:对所述差异数据基于设置的DataFrame进行预处理;根据所述差异数据,在所设置的列差值范围内,按照所在所述待测数仓表中的列,进行列差值分布计算,得到所述待测数仓表的列差值分布信息;其中,列差值范围根据需要或经验设置,通过pandas的applymap()函数及自定义函数设置在数据框架结构中的每个单元格中执行自定义函数(该自定义函数设置了列差值计算规则),然后利用DataFrame中的条件筛选和pandas的count()函数对所述待测数仓表的列差值分布信息进行统计。在这里,在待测数仓表中设置最小索引值和标识(min+idmin)、及最大索引值和标识(max+idmax),对所述待测数仓表的列差值分布信息在最大索引值到最小索引值之间,及在最大索引标识和最小索引标识之间的范围内进行定位。
在进行分析得到数据空值率时,包括:对所述差异数据基于设置的DataFrame进行预处理;根据所述差异数据,确定具有空值的所述差异数据数量,进行所述待测数仓表的数据空值率计算,得到所述待测数仓表中的数据空值率,其中,利用DataFrame中的条件筛选和pandas的count()函数对所述待测数仓表的数据空值率进行统计。
采用上述对对比结果进行分析后,就可以得到所述待测数仓表的列差值分布信息及数据空值率,帮助用户快速定位待测数仓表中的差异数据问题。
图6为本申请实施例提供的一种数仓表中的数据检测系统结构示意图,所述系统包括:获取模块、对比检测模块及分析模块,其中,
获取模块,用于获取待测数仓表的待测列及波动范围差阈值;
对比检测模块,用于以基准数仓表中的每一行数据作为比较基准,以所述待测数据仓表中的行作为单位,对所述待测数仓表的每一行中的数据进行对比,标记所述待测数仓表中的差异行,所述差异行中的数据与所述基准仓表中的行数据不相同;根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列;
分析模块,用于根据所述待测数仓表中的同时被标记为差异行和被标记为差异列的差异数据,获得检测结果。
在该系统中,所述对比检测模块,还用于根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比包括:
按照所述待测数仓表的不同列,对索引得到的所述差异行中的待测列数据进行分组,得到至少一组待测列数据;对每组待测列数据,采用设置的双层逻辑策略,与所述基准数仓表中对应的列数据进行对比,判断是否超过所述波动范围差阈值,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列。
在该系统中,所述分析模块,还用于在进行分析,获得检测结果包括所述待测数仓表的列差值分布信息时,对所述差异数据基于设置的DataFrame进行预处理;根据所述差异数据,在所设置的列差值范围内,按照所在所述待测数仓表中的列,进行列差值分布计算,得到所述待测数仓表的列差值分布信息。
在该系统中,所述分析模块,还用于在进行分析,获得检测结果包括所述待测数仓表中的数据空值率时,对所述差异数据基于设置的DataFrame进行预处理;根据所述差异数据,确定具有空值的所述差异数据数量,进行所述待测数仓表的数据空值率计算,得到所述待测数仓表中的数据空值率。
在本申请的另一个实施例中,还提供一种电子设备,包括:处理器;存储器,存储有程序,所述程序配置为在被所述处理器执行时实现如上述的一种数仓表中的数据检测方法。
在本申请的另一个实施例中,提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时引发所述处理器执行前述实施例中的数仓表中的数据检测方法。
图7为本申请的另一个实施例所提供的一种电子设备的示意图。如图7所示,本申请另一实施例还提供一种电子设备,其可以包括处理器701,其中,处理器701用于执行上述一种数仓表中的数据检测方法的步骤。从图7中还可以看出,上述实施例提供的电子设备还包括非瞬时计算机可读存储介质702,该非瞬时计算机可读存储介质702上存储有计算机程序,该计算机程序被处理器701运行时执行上述一种数仓表中的数据检测方法的步骤。
具体地,该非瞬时计算机可读存储介质302能够为通用的存储介质,如移动磁盘、硬盘、FLASH、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、或便携式紧凑磁盘只读存储器(CD-ROM)等,该非瞬时计算机可读存储介质302上的计算机程序被处理器301运行时,能够引发处理器601执行上述的一种数仓表中的数据检测方法的各个步骤。
实际应用中,所述的非瞬时计算机可读存储介质702可以是上述实施例中描述的设备/装置/系统中所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或多个程序被执行时,能够执行上述的一种数仓表中的数据检测方法中的各个步骤。
本申请的再一实施例还提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述的一种数仓表中的数据检测方法中的各个步骤。
本申请附图中的流程图和框图,示出了按照本申请公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标准的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本申请中。特别地,在不脱离本申请精神和教导的情况下,本申请的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本申请公开的范围。
本文中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思路,并不用于限制本申请。对于本领域的技术人员来说,可以依据本申请的思路、精神和原则,在具体实施方式及应用范围上进行改变,其所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (9)
1.一种数仓表中的数据检测方法,其特征在于,所述方法包括:
获取待测数仓表的待测列及波动范围差阈值;
以基准数仓表中的每一行数据作为比较基准,以所述待测数仓表中的行作为单位,对所述待测数仓表的每一行中的数据进行对比,标记所述待测数仓表中的差异行,所述差异行中的数据与所述基准数仓表中的行数据不相同;
根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列,包括:将待测数仓表中的待测列中的数据与在基准数仓表中的对应列中的数据进行对比,其中,所述待测数仓表的列与所述基准数仓表的列之间有对应关系;
根据所述待测数仓表中的同时被标记为差异行和被标记为差异列的差异数据,获得检测结果;
所述根据所述待测列对所述差异行进行索引,得到所述差异行中的待测列数据,与所述基准数仓表中的对应列数据进行对比包括:
按照所述待测数仓表的不同列,对索引得到的所述差异行中的待测列数据进行分组,得到至少一组待测列数据;
对每组待测列数据,采用设置的双层逻辑策略,与所述基准数仓表中对应的列数据进行对比,判断是否超过所述波动范围差阈值,将超过所述波动范围差阈值的待测列数据所属的待测列标记为差异列;
其中,所述双层逻辑判断为:针对每一待测列数据,先判断其位数是否在设置的位数值范围内,如果是,再进行对比,判断是否超过所述波动范围差阈值。
2.如权利要求1所述的方法,其特征在于,所述获取待测数仓表的待测列及波动范围差阈值包括:
从客户端接收待测数仓表的待测列及波动范围差阈值,所述待测数仓表的待测列及波动范围差阈值为所述客户端通过设置的用户界面框架子系统,设置的。
3.如权利要求1所述的方法,其特征在于,所述获得检测结果包括:
所述差异数据,或/和所述差异数据所在的修改行标记。
4.如权利要求1所述的方法,其特征在于,所述获得检测结果包括:
将所述待测数仓表中的同时被标记为差异行和被标记为差异列的差异数据,进行汇总或/和分析,获得检测结果;
其中,在所述分析之前,还包括:
对所述差异数据基于设置的数据构架进行预处理。
5.如权利要求4所述的方法,其特征在于,所述获得检测结果包括:
所述待测数仓表的列差值分布信息;
所述分析包括:
根据所述差异数据,在所设置的列差值范围内,按照所在所述待测数仓表中的列,进行列差值分布计算,得到所述待测数仓表的列差值分布信息。
6.如权利要求4所述的方法,其特征在于,所述获得检测结果包括:所述待测数仓表中的数据空值率;
所述分析包括:
根据所述差异数据,确定具有空值的所述差异数据数量,进行所述待测数仓表的数据空值率计算,得到所述待测数仓表中的数据空值率。
7.如权利要求1、3、5或6所述的方法,其特征在于,所述获得检测结果后,还包括:
将所述检测结果输出给客户端,以使客户端对所述检测结果进行可视化显示。
8.一种电子设备,其特征在于,包括:
处理器;
存储器,存储有程序,所述程序配置为在被所述处理器执行时实现如权利要求1至7中任一项所述的数仓表中的数据检测的方法。
9.一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,其特征在于,所述指令在由处理器执行时使得所述处理器执行如权利要求1至7中任一项所述的数仓表中的数据检测的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211405098.XA CN115905273B (zh) | 2022-11-10 | 2022-11-10 | 一种数仓表中的数据检测方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211405098.XA CN115905273B (zh) | 2022-11-10 | 2022-11-10 | 一种数仓表中的数据检测方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115905273A CN115905273A (zh) | 2023-04-04 |
CN115905273B true CN115905273B (zh) | 2023-09-26 |
Family
ID=86473792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211405098.XA Active CN115905273B (zh) | 2022-11-10 | 2022-11-10 | 一种数仓表中的数据检测方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905273B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252481A (zh) * | 2013-06-27 | 2014-12-31 | 阿里巴巴集团控股有限公司 | 主从数据库一致性的动态校验方法和装置 |
CN110069571A (zh) * | 2019-03-18 | 2019-07-30 | 平安普惠企业管理有限公司 | 一种自动化数据对比方法及装置、电子设备 |
CN113051882A (zh) * | 2021-04-23 | 2021-06-29 | 中国工商银行股份有限公司 | 数据差异对比方法、装置、介质和产品 |
CN113076310A (zh) * | 2021-04-30 | 2021-07-06 | 浙江太美医疗科技股份有限公司 | 实时数据仓库的数据校验方法、系统及计算机可读介质 |
JP2021112823A (ja) * | 2020-01-16 | 2021-08-05 | ローランドディー.ジー.株式会社 | インクジェットプリンタおよび光の強度の確認方法 |
-
2022
- 2022-11-10 CN CN202211405098.XA patent/CN115905273B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252481A (zh) * | 2013-06-27 | 2014-12-31 | 阿里巴巴集团控股有限公司 | 主从数据库一致性的动态校验方法和装置 |
CN110069571A (zh) * | 2019-03-18 | 2019-07-30 | 平安普惠企业管理有限公司 | 一种自动化数据对比方法及装置、电子设备 |
JP2021112823A (ja) * | 2020-01-16 | 2021-08-05 | ローランドディー.ジー.株式会社 | インクジェットプリンタおよび光の強度の確認方法 |
CN113051882A (zh) * | 2021-04-23 | 2021-06-29 | 中国工商银行股份有限公司 | 数据差异对比方法、装置、介质和产品 |
CN113076310A (zh) * | 2021-04-30 | 2021-07-06 | 浙江太美医疗科技股份有限公司 | 实时数据仓库的数据校验方法、系统及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115905273A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106708909B (zh) | 数据质量的检测方法和装置 | |
CN113092981B (zh) | 晶圆数据检测方法及系统、存储介质及测试参数调整方法 | |
CN115982602B (zh) | 一种光伏变压器电故障检测方法 | |
CN103886168A (zh) | 基于层次分析法的多渠道分析方法及装置 | |
CN111177134B (zh) | 适用于海量数据的数据质量分析方法、装置、终端及介质 | |
US20160299903A1 (en) | Path analysis method and apparatus | |
CN110275878B (zh) | 业务数据检测方法、装置、计算机设备及存储介质 | |
CN107688589A (zh) | 数据库系统优化的方法及装置 | |
CN109033322A (zh) | 一种多维数据的测试方法和装置 | |
CN111324781A (zh) | 一种数据分析方法、装置及设备 | |
CN117708459A (zh) | 一种水利多变量时序数据加载处理优化方法及终端 | |
CN115905273B (zh) | 一种数仓表中的数据检测方法、电子设备及存储介质 | |
US7974973B1 (en) | Application object tuning | |
CN113283768A (zh) | 食品检测项目提取方法、装置、设备及存储介质 | |
CN109815260B (zh) | 波形显示装置、波形参数统计方法、终端设备及存储介质 | |
CN112445687A (zh) | 一种计算设备的卡顿检测方法及相关装置 | |
WO2016206241A1 (zh) | 数据分析方法及装置 | |
CN113705656B (zh) | 一种异距数列等分筛选方法、系统、存储介质 | |
CN116319255A (zh) | 一种基于kpi的根因定位方法、装置、设备及存储介质 | |
CN115576831A (zh) | 一种测试案例推荐方法、装置、设备及存储介质 | |
CN114238395A (zh) | 一种数据库优化方法、装置、电子设备及存储介质 | |
CN114550865A (zh) | 一种影响学生体测的多维度数据分析方法及装置 | |
CN111027599A (zh) | 基于随机抽样的聚类可视化方法及装置 | |
CN111949644A (zh) | 一种面向电力行业业务系统的数据质量评价方法和设备 | |
CN116911959B (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 |