CN117093578A - 确定数据质量方法和装置 - Google Patents
确定数据质量方法和装置 Download PDFInfo
- Publication number
- CN117093578A CN117093578A CN202210518841.6A CN202210518841A CN117093578A CN 117093578 A CN117093578 A CN 117093578A CN 202210518841 A CN202210518841 A CN 202210518841A CN 117093578 A CN117093578 A CN 117093578A
- Authority
- CN
- China
- Prior art keywords
- field name
- data
- null
- determining
- radix
- 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
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 13
- 238000007781 pre-processing Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011157 data evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/248—Presentation of query results
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种确定数据质量方法和装置。所述方法包括:接收数据表中目标字段名对应的空值率查询请求,查询请求携带有数据表的标识以及目标字段名;根据标识查找数据表中主键字段名对应的第一基数对象和目标字段名对应的第二基数对象,其中,基数对象是预先基于数据表中各字段名对应的空值数据计算得到的;根据第一基数对象和第二基数对象,计算目标字段名对应的空值率;根据空值率,确定目标字段名对应数据的质量。本申请可以缩短查询空值率的时间。
Description
技术领域
本申请涉及数据评价技术领域,特别是涉及一种确定数据质量方法和装置。
背景技术
随着社会经济的发展,我国逐步进入了大数据时代,分析数据库中的数据质量变的越发重要。而在实际中,往往通过空值率,来评价数据质量的好坏。其中,空值率为存在空值的数据量与数据表的总数据量的比值。
在现有技术中,当需要评价数据质量时,一般可以通过获取数据对应的空值率,进而通过空值率来评价数据质量。其中,获取数据空值率的方法为:先在HBase数据库中查找到待计算空值率的数据表,再将该数据表读取到运行内存中,进而使用HBase数据库中的count命令,对该数据表统计计算,得到该数据表对应的空值率。
在上述过程中,HBase数据库中数据量越大,在HBase数据库中查找数据表的查找时间越长,进而导致用户等待查询结果的时间越长。同时,在HBase数据库中查找到数据表之后,还需要将其读取到运行内存中,而由于数据表的数据量较大,读取的过程也会花费一定的时间,降低了计算效率,进一步导致用户等待查询结果的时间过长。
发明内容
有鉴于此,本申请提供一种确定数据质量方法和装置,可以缩短用户的等待查询结果的时长。
为达到上述目的,本申请主要提供如下技术方案:
第一方面,本申请提供了一种确定数据质量方法,该方法包括:
接收数据表中目标字段名对应的空值率查询请求,所述查询请求携带有所述数据表的标识以及所述目标字段名;
根据所述标识查找所述数据表中主键字段名对应的第一基数对象和所述目标字段名对应的第二基数对象,其中,基数对象是预先基于所述数据表中各字段名对应的空值数据计算得到的;
根据所述第一基数对象和所述第二基数对象,计算所述目标字段名对应的空值率;
根据所述空值率,确定所述目标字段名对应数据的质量。
第二方面,本申请提供了一种确定数据质量装置,该装置包括:
接收单元,用于接收数据表中目标字段名对应的空值率查询请求,所述查询请求携带有所述数据表的标识以及所述目标字段名;
查找单元,用于根据所述接收单元接收到的标识查找所述数据表中主键字段名对应的第一基数对象和所述目标字段名对应的第二基数对象,其中,基数对象是预先基于所述数据表中各字段名对应的空值数据计算得到的;
计算单元,用于根据所述查找单元查找到的第一基数对象和所述第二基数对象,计算所述目标字段名对应的空值率;
确定单元,用于根据所述计算单元计算到的空值率,确定所述目标字段名对应数据的质量。
第三方面,本申请提供了一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行该第一方面所述的确定数据质量方法。
第四方面,本申请提供了一种存储介质,该存储介质用于存储计算机程序,其中,该计算机程序运行时控制该存储介质所在设备执行该第一方面所述的确定数据质量方法。
借由上述技术方案,本申请提供了一种确定数据质量方法和装置,在接收到数据表中目标字段名对应的空值率查询请求后,根据数据表的标识,直接确定数据表中主键字段名对应的第一基数对象和目标字段名对应的第二基数对象。基于第一基数对象和第二基数对象,计算出空值率,进而根据空值率,确定目标字段名对应数据的质量。在上述过程中,预先计算出各个字段名对应的基数对象,并在这些基数对象中直接查找到主键字段名对应的第一基数对象和目标字段名对应的第二基数对象,进而直接进行空值率计算,不需要在HBase数据库中查找到该数据表,并将其读取到运行内存中,提高了计算效率,缩短了用户查询的时长。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开的一种确定数据质量方法的流程示意图;
图2为本申请公开的一种确定数据质量方法的流程示意图;
图3为本申请公开的一种确定数据质量装置的结构示意图;
图4为本申请公开的一种确定数据质量装置的结构示意图;
图5为本申请公开的一种设备的框图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
随着社会经济的发展,我国逐步进入了大数据时代,分析数据库中的数据质量变的越发重要。而在实际中,往往通过空值率,来评价数据质量的好坏。其中,空值率为存在空值的数据量与数据表的总数据量的比值。
在现有技术中,当需要评价数据质量时,一般可以通过获取数据对应的空值率,进而通过空值率来评价数据质量。其中,获取数据空值率的方法为:先在HBase数据库中查找到待计算空值率的数据表,再将该数据表读取到运行内存中,进而使用HBase数据库中的count命令,对该数据表统计计算,得到该数据表对应的空值率。
在上述过程中,HBase数据库中数据量越大,在HBase数据库中查找数据表的查找时间越长,进而导致用户等待查询结果的时间越长。同时,在HBase数据库中查找到数据表之后,还需要将其读取到运行内存中,而由于数据表的数据量较大,读取的过程也会花费一定的时间,降低了计算效率,进一步导致用户等待查询结果的时间过长。
为了解决上述问题,本申请实施例提供了一种确定数据质量方法,该方法的执行主体可以为服务器,也可以为其他电子设备,此处并不限定。其具体执行步骤如图1所示,包括:
步骤101,接收数据表中目标字段名对应的空值率查询请求。
其中,查询请求携带有数据表的标识以及目标字段名。数据表的标识用于唯一指示数据表的标识,该标识可以为数据表的名称,也可以为其他用于唯一标识数据表的数据。数据表中包括主键字段名和非主键字段名,目标字段名为非主键字段名中的一个或者多个。将主键字段名对应的行/列数据作为主键数据,每个主键数据用于标识数据表中的唯一一条记录。例如,表1中的张三、李四和王五都标识数据表中唯一条记录,因此张三、李四和王五为主键数据,其对应的字段名“姓名”为主键字段名。这样,除“姓名”之外的其他字段名为“性别”和“年龄”,这些字段名为非主键字段名。其中,单元格中的“-”表示空值。
表1
姓名 | 性别 | 年龄 |
张三 | - | 25 |
李四 | 女 | 30 |
王五 | 男 | - |
在本步骤的具体实施方式中,用户终端上显示数据表,当用户在该数据表中选中目标字段名时,该终端上显示该目标字段名对应的指令集合,该指令集合包括空值率查询指令。当用户点击指令集合中的空值率查询指令之后,终端接收到数据表中目标字段名对应的空值率查询指令,并基于数据表的标识和目标字段名生成空值率查询请求,进而将该请求发送给服务器,以使服务器接收到数据表中目标字段名对应的空值率查询请求。或者,终端上显示有空值率搜索框,用户可以在搜索框内填入数据表标识以及目标字段名,并点击查询按钮。这样终端响应用户的点击指令,并根据获取到的数据表标识以及目标字段名,生成空值率查询请求,并将该查询请求发送给服务器,以使服务器接收到数据表中目标字段名对应的空值率查询请求。
步骤102,根据标识查找数据表中主键字段名对应的第一基数对象和目标字段名对应的第二基数对象。
其中,基数对象是预先基于数据表中各字段名对应的空值数据计算得到的。具体的,将数据表中各字段名对应的数据输入hll算法,得到各字段名对应的基数对象,其中,上述数据包括空值数据和非空值数据。同时,由于计算空值率的方法不同,本申请实施例涉及到的基数对象可以包括基数、m个桶对应的序列、准确率等数据,也可以只包括基数。基数对象中的m个桶对应的序列用于确定基数,准确率为计算出基数的准确率。例如,如果计算空值率的方法是基于目标字段名对应的空值数据数目和目标字段名对应的所有数据数目计算得到,则基数对象可以只包括基数。如果计算空值率的方法是基于存在空值数据的行/列数与总行/列数计算出的,则基数对象包括m个桶对应的序列,还可以包括基数。同时,不同字段名对应的基数含义不同,例如,主键字段名对应的基数为主键字段名对应的总行/列数。目标字段名对应的基数为目标字段名对应的数据中存在空值数据的数目。
在本步骤的具体实施方式中,当服务器接收到空值率查询请求时,获取到查询请求中的数据表的标识以及目标字段名,根据预先存储有数据表的标识和基数对象集合的对应关系,在PG库中确定该数据表的标识对应的基数对象集合,并在该基数对象集合中,找到主键字段名对应的第一基数对象和目标字段名对应的第二基数对象。
步骤103,根据第一基数对象和第二基数对象,计算目标字段名对应的空值率。
在本步骤的具体实施方式中,根据预先设置的空值率计算规则、第一基数对象和第二基数对象,确定目标字段名对应的空值率。空值率计算规则可以为技术人员预先设置,也可以为用户指定的。
本申请实施例提供了两种空值率计算规则,第一种为计算目标字段名对应的空值数据数目与目标字段名对应的数据总数目之间的比值,将该比值确定为空值率。具体过程为:先确定至少一个第二基数对象所包括的基数的和,以及确定第一基数对象所包括的基数与第二基数对象的数目的乘积,并将该和与该乘积的比值,确定为目标字段名对应的空值率。
例如,如果将表1中的“性别”和“年龄”设置为目标字段名,则根据表1可知,“性别”对应的空值数据数目为1,“年龄”对应的空值数据数目为1,这样目标字段名对应的空值数据数目为2。同时,根据表1可知,目标字段名对应的数据总数目为6。这样,目标字段名对应的空值数据数目与目标字段名对应的数据总数目之间的比值为三分之一,即目标字段名对应的空值率为三分之一。
第二种方法为目标字段名对应的存在空值数据的行/列数与主键数据对应的总行/列数的比值,将该比值确定为目标字段名对应的空值率。具体过程为:先根据第二基数对象,来确定目标字段名对应的存在空值数据的行/列数。再确定目标字段名对应的存在空值数据的行/列数与第一基数对象中的基数的比值,将该比值确定为目标字段对应的空值率。
例如,如果将表1中的“性别”和“年龄”设置为目标字段名,则根据表1可知,存在空值数据的行为第二行和第四行,这样存在空值数据的行数为2。同时,根据表1可知,主键数据对应的总行数为3。因此,目标字段名对应的存在空值数据的行数与主键数据对应的总行数的比值为三分之二,即目标字段对应的空值率为三分之二。
步骤104,根据空值率,确定目标字段名对应数据的质量。
在本步骤的具体实施方式中,空值率越高,目标字段名对应的数据的质量越好,空值率越低,目标字段名对应的数据的质量越低。这样,便可以根据目标字段名对应的空值率,确定目标字段名对应数据的质量。
在接收到数据表中目标字段名对应的空值率查询请求后,根据数据表的标识,直接确定数据表中主键字段名对应的第一基数对象和目标字段名对应的第二基数对象。基于第一基数对象和第二基数对象,计算出空值率,进而根据空值率,确定目标字段名对应数据的质量。在上述过程中,预先计算出各个字段名对应的基数对象,并在这些基数对象中直接查找到主键字段名对应的第一基数对象和目标字段名对应的第二基数对象,进而直接进行空值率计算,不需要在HBase数据库中查找到该数据表,并将其读取到运行内存中,提高了计算效率,缩短了用户查询的时长。
进一步的,本申请实施例对步骤103中的第二种计算空值率的方法进行具体介绍,具体步骤如图2所示,包括:
步骤201,根据第一基数对象,确定主键字段名对应的总行或列数。
在本步骤的具体实施方式中,为了缩短用户查询空值率的时长,可以直接获取第一基数对象中的基数,并将其确定为主键字段名对应的数据数目。当然,也可以根据第一基数对象中多个桶对应的序列,来重新计算该基数,进而得到数据表的总行/列数。
步骤202,根据第二基数对象,确定目标字段名对应的存在空值数据的行或列数。
本步骤可以将本步骤分为两种情况,第一种情况为目标字段名是一个,其对应的第二基数对象也是一个。这样,服务器接收到查询请求,先检测查询请求中目标字段名的数目,当检测到目标字段名为一个时,为了缩短用户查询空值率的时长,可以直接根据第二基数对象中的基数,来确定目标字段名对应的存在空值数据的行/列数。
第二种情况是目标字段名为多个,进而确定出的第二基数对象也是多个。这样,服务器接收到查询请求,先检测查询请求中目标字段名的数目,当检测到目标字段名为多个时,先根据多个第二基数对象,确定第三基数对象。根据第三基数对象,确定存在空值数据的行/列数。
其中,第二基数对象包括m个桶对应的序列,m为正整数。
进一步的,本步骤提供了一种根据第二基数对象,确定第三基数对象的方法,该方法具体为:确定将不同第二基数对象中的第m个桶对应的序列输入预设的合并算法中,输出所述第三基数对象中第m个桶对应的序列,得到第三基数对象。
其中,上述桶对应的序列是由0和/或1组成的序列值。合并算法可以为异或计算,也可以为其他计算方法,此处对此并不限定。
同时,本申请还提供了一种根据第三基数对象中的m个桶对应的序列,计算出存在空值数据的行/列数的方法,具体步骤为:根据第三基数对象中的第m个桶对应的序列,确定第m个桶对应的数据量;根据m个桶对应的数据量之和以及第一预设公式,确定存在空值数据的行/列数。
其中,第一预设公式为E=m2*a,E为存在空值数据的行/列数,m为桶数,a为m个桶对应的数据量之和。
上述过程中,计算第m个桶对应的数据量的具体过程为:确定第m个桶对应的序列中第一个预设数值出现的位置;根据所述位置以及第二预设公式,确定第m个桶对应的数据量;其中,第二预设公式为Cm=2M,Cm为第m个桶对应的数据量,M为上述位置。
具体的,确定第m个桶对应的序列中第一个1出现的位置,并将该位置带入第二预设公式中,得到第m个桶对应的数据量。
步骤203,将存在空值数据的行或列数与总行或列数的比值,确定为目标字段名对应的空值率。
在本步骤的具体实施方式中,计算存在空值数据的行/列数与总行/列数的比值,例如,如果目标字段名对应的是行数据,则计算存在空值数据的行数与总行数的比值。如果目标字段名对应的是列数据,则计算存在空值数据的列数与总列数的比值。将计算出的比值确定为目标字段名对应的空值率。
在本申请实施例中,需要预先计算出各个数据表中各个字段名对应的基数对象,并将各字段名以及对应的基数对象对应存储在PG库中,得到各个数据表对应的基数对象集合。这样,在接收到空值率查询请求时,可以直接在基数对象集合中,查找到待计算空值率的基数对象。因此,为了需要预先计算出各个数据表中各个字段名对应的基数对象,本申请实施例提供了确定各个数据表对应的基数对象集合的方法,具体步骤如下所示:
当接收到其它设备发送的预设请求之后,确定携带的数据表中第一字段名对应的数据,将第一字段名对应的数据输入预设的hll算法,得到第一字段名对应的基数对象,并将第一字段名以及对应的基数对象对应存储。
其中,预设请求用于指示将携带的数据表放入HBase数据库中。第一字段名对应的数据包括空值数据和非空值数据。
在本步骤的具体实施方式中,当接收到其他设备发送的预设请求之后,对该预设请求进行解析处理,得到预设请求中携带的数据表,并在该数据表中确定出待计算空值率的字段名,这些字段名可以为数据表中的所有字段名,也可以为数据表中的部分字段名,此处并不限定。这样,在确定出第一字段名之后,可以将这些字段名作为第一字段名。在数据表中,确定第一字段名对应的数据,并将每个第一字段名对应的数据输入预设的hllHyperLogLog算法,得到第一字段名对应的基数对象,并将第一字段名以及对应的基数对象对应存储到数据表对应的基数对象集合中。
上述步骤通过HLL算法进行基数估计来得到基数对象。HLL算法即为hyperLogLog算法,Loglog是一种估算基数的方法,其以基数统计精度为牺牲,换来很少的内存消耗,在实际操作中,1亿条数据仅需1K内存,相比于B数、bitmap等其他基数计数方法,极大节省了存储空间,同时能够适用于数据量较大不需要精确计数、不追求绝对准确的基数计数场景,在节省存储空间的同时将误差控制在一定范围内。
具体的,HLL算法的基本思想是利用集合中数字的比特串第一个1出现位置的最大值来预估整体基数,但是这种预估方法存在较大误差,为了改善误差情况,HLL中引入分桶平均的概念。示例性地,将统计数据划分为m个桶,每个桶分别统计各自的Kmax并能得到各自的基数预估值最终对这些求平均得到整体的基数估计值。分桶数组是为了消减因偶然性带来的误差,提高预估的准确性。在LLC中使用几何平均数预估整体的基数值,但是当统计数据量较小时误差较大,因此HLL算法在LLC基础上做了改进,采用调和平均数,调和平均数的优点是可以过滤掉不健康的统计值。
本步骤提供了一种计算分桶数的方法,具体为:确定HLL算法待计算的数据量,当该数据量小于预设数值时,根据计算出桶数,其中,m为桶数,x为数据量,e为常数。当该数据量大于预设数值时,将桶数设置为16834。
需要说明的是,在上述步骤中,预设请求用于指示将携带的数据表放入HBase数据库中,因此,在使用数据表之后,需要将预设请求携带的数据表放入HBase数据库中。
更进一步的,如果将数据表中部分字段名作为第一字段名,可以根据每个字段名对应的查询频率,确定第一字段名。具体方法包括:在除主键字段名之外,确定数据表中对应查询频率大于预设数值的第二字段名,并对第二字段名对应的数据进行预处理,得到第二字段名对应的预处理数据;将主键字段名和第二字段名确定为第一字段名,将主键字段名对应的数据和第二字段名对应的预处理数据确定为第一字段名对应的数据。
在本步骤的具体实施方式中,预设请求还包括各个字段名对应的查询频率,这些查询频率可以是技术人员根据各个字段名的查询情况设置的。这样,在除主键字段名之外的其他字段名中,将每个其他字段名对应的查询频率与预设数值进行比较,进而确定对应查询频率大于预设数值的第二字段名。对每个第二字段名对应的数据进行预处理,得到第二字段名对应的预处理数据。这样将主键字段名和第二字段名确定为第一字段名,将主键字段名对应的数据和第二字段名对应的预处理数据确定为第一字段名对应的数据。
上述步骤涉及到的预处理步骤包括,将不符合预设条件的数据丢弃。例如,数据表包括多个员工对应的工号,工号所在的数值范围为[1,100]。如果检测到某个员工对应的工号不在该数值范围内,则认为该员工对应的工号是错误的,将该员工对应的工号丢弃。
上述预处理步骤还包括:将同一字段名对应的数据转换成相同数据类型的数据,将不能转换的数据丢弃。在本步骤中,将同一字段名对应的数据转换成相同数据类型的数据包括两种方式,第一种方式为根据预先存储的字段名和数据类型的对应关系,确定字段名对应的目标数据类型,将该字段名对应的所有数据转换成该目标数据类型的数据。例如,预先设置入职时间、生日等字段名对应的数据类型为日期类型,这样,当检测到入职时间、生日等字段名时,将这些字段名对应的数据转换为日期类型的数据。预先设置工号,学号,物件编号等字段名对应的数据类型为long类型,当检测到工号,学号,物件编号等字段名时,将这些字段名对应的数据转换成long类型对应的数据。
第二种方式为,统计同一字段名对应的每个数据的数据类型,确定每种数据类型对应的数据数目,将对应数目最大的数据类型作为目标数据类型,进而将该字段名对应其他数据类型的数据,转换目标数据类型的数据,进而实现将同一字段名对应的数据转换成相同数据类型的数据。
在本申请实施例中,还可以将数据表的来源数据分为增量和全量两种来源方式,增量与全量的划分是由数据治理中数据收集规则配置的。在本申请实施例中,增量是数据分批次到达,这样便需要分批次进行处理,全量是数据整体到达直接进行处理。HBase数据库中对增量类型的数据会按照增量字段进行分区建表和存储,比如:按时间字段进行增量的数据,每个月进行一次增量,则HBase中真实的物理表则是按每个月都建立一张物理表,表模型一致,此处的表模型则是表的元数据,即此表在HBase中有多少列族,每个列族下有多少列,每个列中有多少字段,字段以什么格式进行加载等等信息。
对于来源方式为全量的数据表,可以直接按照上述方式建立基数对象集合。但对于来源方式为增量的数据表,虽然服务器会接收到多张数据表,但是这些数据表实质上是将一批数据分为多批而形成的数据表,即多个数据表有共同的字段名。这样在建立同一批数据对应的基数对象集合时,该基数对象集合中存储有该批数据包括的每个数据表对应的多个基数对象以及对应的接收数据表的时间点。也就是说,基数对象集合存储有同一字段名对应的多个基数对象,每个基数对象对应不同的时间点。这样当用户查询某批数据中目标字段名对应的空值率时,可以先确定该批数据对应的基数对象集合,并在该基数对象集合中,确定出生命周期内的基数对象,进而基于生命周期内的基数对象,确定出目标字段名对应的空值率。
对于上述情况,在计算空值率时,会确定出的同一字段名对应的多个基数对象,即主键字段名对应的多个基数对象和目标字段名对应的多个基数对象。如果使用步骤103中的第一种方法计算空值率,则可以采用将同一字段名对应的基数相加的方式,来合并每个字段名对应的基数。如果使用步骤103中的第二种方法计算空值率,则可以将主键字段名对应的基数直接相加,确定出主键字段名对应的总行/列数。而对于目标字段名对应的多个基数对象,可以先根据相同时间点的基数对象,确定出该时间点对应的存在空值数据的行/列数,然后将每个时间点对应的存在空值数据的行/列数进行相加,得到存在空值数据的总行/列数。
进一步的,作为对上述图1-2所示方法实施例的实现,本申请实施例提供了一种确定数据质量装置,该装置可以缩短用户查询空值率的时长。该装置的实施例与前述方法实施例对应,为便于阅读,本实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。具体如图3所示,该装置包括:
接收单元301,用于接收数据表中目标字段名对应的空值率查询请求,所述查询请求携带有所述数据表的标识以及所述目标字段名;
查找单元302,用于根据所述接收单元301接收到的标识查找所述数据表中主键字段名对应的第一基数对象和所述目标字段名对应的第二基数对象,其中,基数对象是预先基于所述目标数据表中各字段名对应的空值数据计算得到的;
计算单元303,用于根据所述查找单元302查找到的第一基数对象和所述第二基数对象,计算所述目标字段名对应的空值率;
确定单元304,用于根据所述计算单元303计算到的空值率,确定所述目标字段名对应数据的质量。
进一步的,如图4所示,当所述第二基数对象为一个时,所述计算单元303,包括:
第一确定模块3031,用于根据所述第一基数对象,确定所述主键字段名对应的总行/列数;
第二确定模块3032,用于根据所述第二基数对象,确定所述目标字段名对应的存在空值数据的行/列数;
第三确定模块3033,用于将所述第二确定模块3032确定出的存在空值数据的行/列数与所述第一确定模块3031确定出的总行/列数的比值,确定为所述目标字段名对应的空值率。
进一步的,如图4所示,当所述第二基数对象为多个时,所述第二确定模块3032,还用于:
根据多个第二基数对象,确定第三基数对象;
根据所述第三基数对象,确定所述目标字段名对应的存在空值数据的行/列数。
进一步的,如图4所示,所述第二基数对象包括m个桶对应的序列,m为正整数;
所述第二确定模块3032,还用于将不同第二基数对象中的第m个桶对应的序列输入预设的合并算法中,输出所述第三基数对象中第m个桶对应的序列,得到第三基数对象。
进一步的,如图4所示,所述第二确定模块3032,还用于确定第m个桶对应的序列中第一个预设数值出现的位置;根据所述位置以及第二预设公式,确定第m个桶对应的数据量;其中,第二预设公式为Cm=2M,Cm为第m个桶对应的数据量,M为所述位置;根据m个桶对应的数据量之和以及第一预设公式,确定存在空值数据的行/列数;其中,所述第一预设公式为E=m2*a,E为存在空值数据的行/列数,m为桶数,a为m个桶对应的数据量之和。
进一步的,如图4所示,所述装置还包括存储单元305;
所述存储单元,用于当接收到其它设备发送的预设请求之后,确定携带的数据表中第一字段名对应的数据,将所述第一字段名对应的数据输入预设的hll算法,得到第一字段名对应的基数对象,并将第一字段名以及对应的基数对象对应存储,所述预设请求用于指示将携带的数据表放入HBase数据库中,所述第一字段名对应的数据包括空值数据和非空值数据。
进一步的,所述装置还包括预处理单元306;
所述预处理单元306,用于在除所述主键字段名之外的其他字段名中,确定所述对应查询频率大于预设数值的第二字段名,并对所述第二字段名对应的数据进行预处理,得到所述第二字段名对应的预处理数据;将所述主键字段名和所述第二字段名确定为所述第一字段名,将所述主键字段名对应的数据和所述第二字段名对应的数据确定为所述第一字段名对应的数据。
进一步的,本申请实施例还提供一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述图1-2中所述的确定数据质量方法。
进一步的,本申请实施例还提供一种存储介质,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行上述图1-2中所述的确定数据质量方法。
图5是本申请实施例示出的一种设备50的框图。该设备30包括至少一个处理器501、以及与处理器501连接的至少一个存储器502、总线503;其中,处理器501、存储器502通过总线503完成相互间的通信。处理器501用于调用存储器502中的程序指令,以执行上述的数据共享方法。本文中的设备可以是服务器(例如:本地服务器或者云端服务器)、智能手机、平板电脑、PDA、便携计算机,也可以是台式计算机等固定终端等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再一一赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种确定数据质量方法,其特征在于,所述方法包括:
接收数据表中目标字段名对应的空值率查询请求,所述查询请求携带有所述数据表的标识以及所述目标字段名;
根据所述标识查找所述数据表中主键字段名对应的第一基数对象和所述目标字段名对应的第二基数对象,其中,基数对象是预先基于所述数据表中各字段名对应的空值数据计算得到的;
根据所述第一基数对象和所述第二基数对象,计算所述目标字段名对应的空值率;
根据所述空值率,确定所述目标字段名对应数据的质量。
2.根据权利要求1所述的方法,其特征在于,当所述第二基数对象为一个时,所述根据所述第一基数对象和所述第二基数对象,计算所述目标字段名对应的空值率,包括:
根据所述第一基数对象,确定所述主键字段名对应的总行/列数;
根据所述第二基数对象,确定所述目标字段名对应的存在空值数据的行/列数;
将所述存在空值数据的行/列数与所述总行/列数的比值,确定为所述目标字段名对应的空值率。
3.根据权利要求2所述的方法,其特征在于,当所述第二基数对象为多个时,所述根据所述第二基数对象,确定所述目标字段名对应的存在空值数据的行/列数,包括:
根据多个第二基数对象,确定第三基数对象;
根据所述第三基数对象,确定所述目标字段名对应的存在空值数据的行/列数。
4.根据权利要求3所述的方法,其特征在于,所述第二基数对象包括m个桶对应的序列,m为正整数;
所述根据多个第二基数对象,确定第三基数对象,包括:
将不同第二基数对象中的第m个桶对应的序列输入预设的合并算法中,输出所述第三基数对象中第m个桶对应的序列,得到第三基数对象。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第三基数对象,确定所述目标字段名对应的存在空值数据的行/列数,包括:
确定第m个桶对应的序列中第一个预设数值出现的位置;
根据所述位置以及第二预设公式,确定第m个桶对应的数据量,其中,第二预设公式为Cm=2M,Cm为第m个桶对应的数据量,M为所述位置;
根据m个桶对应的数据量之和以及第一预设公式,确定存在空值数据的行/列数;
其中,所述第一预设公式为E=m2*a,E为存在空值数据的行/列数,m为桶数,a为m个桶对应的数据量之和。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到其它设备发送的预设请求之后,确定携带的数据表中第一字段名对应的数据,将所述第一字段名对应的数据输入预设的hll算法,得到第一字段名对应的基数对象,并将第一字段名以及对应的基数对象对应存储,所述预设请求用于指示将携带的数据表放入HBase数据库中,所述第一字段名对应的数据包括空值数据和非空值数据。
7.根据权利要求6所述的方法,其特征在于,所述确定携带的数据表中第一字段名对应的数据之前,所述方法还包括:
在除所述主键字段名之外的其他字段名中,确定所述对应查询频率大于预设数值的第二字段名,并对所述第二字段名对应的数据进行预处理,得到所述第二字段名对应的预处理数据;
将所述主键字段名和所述第二字段名确定为所述第一字段名,将所述主键字段名对应的数据和所述第二字段名对应的数据确定为所述第一字段名对应的数据。
8.一种确定数据质量装置,其特征在于,所述装置包括:
接收单元,用于接收数据表中目标字段名对应的空值率查询请求,所述查询请求携带有所述数据表的标识以及所述目标字段名;
查找单元,用于根据所述接收单元接收到的标识查找所述数据表中主键字段名对应的第一基数对象和所述目标字段名对应的第二基数对象,其中,基数对象是预先基于所述数据表中各字段名对应的空值数据计算得到的;
计算单元,用于根据所述查找单元查找到的第一基数对象和所述第二基数对象,计算所述目标字段名对应的空值率;
确定单元,用于根据所述计算单元计算到的空值率,确定所述目标字段名对应数据的质量。
9.一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;
其中,处理器、存储器通过总线完成相互间的通信;
处理器用于调用存储器中的程序指令,以执行权利要求1-7中任意一项所述的确定数据质量方法。
10.一种存储介质,其特征在于,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行权利要求1-7中任意一项所述的确定数据质量方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210518841.6A CN117093578A (zh) | 2022-05-13 | 2022-05-13 | 确定数据质量方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210518841.6A CN117093578A (zh) | 2022-05-13 | 2022-05-13 | 确定数据质量方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117093578A true CN117093578A (zh) | 2023-11-21 |
Family
ID=88768630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210518841.6A Pending CN117093578A (zh) | 2022-05-13 | 2022-05-13 | 确定数据质量方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093578A (zh) |
-
2022
- 2022-05-13 CN CN202210518841.6A patent/CN117093578A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462583B (zh) | 用于快速数据分析的系统和方法 | |
US6507669B1 (en) | Method of selecting clusters of items using a fuzzy histogram analysis | |
CN109117440B (zh) | 一种元数据信息获取方法、系统和计算机可读存储介质 | |
CN107168977A (zh) | 一种数据查询的优化方法及装置 | |
CN106598999A (zh) | 一种计算文本主题归属度的方法及装置 | |
CN114037219A (zh) | 一种数据评估方法、装置及电子设备 | |
CN107291719A (zh) | 一种数据检索方法和装置、一种数据存储方法和装置 | |
CN111966707A (zh) | 查询语句生成方法、装置、电子设备和计算机可读介质 | |
CN112365070A (zh) | 一种电力负荷预测方法、装置、设备及可读存储介质 | |
CN111414410A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN114461644A (zh) | 一种数据采集方法、装置、电子设备及存储介质 | |
CN112100400A (zh) | 基于知识图谱的节点推荐方法及装置 | |
CN110321348B (zh) | 一种数据处理方法、装置及计算机设备 | |
JPWO2017158802A1 (ja) | データ変換システム及びデータ変換方法 | |
CN113792084A (zh) | 数据热度的分析方法、装置、设备及存储介质 | |
CN110399396B (zh) | 高效的数据处理 | |
CN117093578A (zh) | 确定数据质量方法和装置 | |
CN111949644B (zh) | 一种面向电力行业业务系统的数据质量评价方法和设备 | |
CN116401212A (zh) | 一种基于数据分析的人事文书档案快速查找系统 | |
CN113656437B (zh) | 用于预测参照执行代价稳定度的模型构建方法 | |
CN115220404A (zh) | 加工设备的智能诊断方法、装置、设备及存储介质 | |
CN111897803A (zh) | 一种面向电力行业业务系统的数据库完整性评价方法 | |
CN110866003B (zh) | 索引值数目的估算方法和装置以及电子设备 | |
CN113496365A (zh) | 一种仓库合并方案确定方法、装置、设备及介质 | |
CN110019771B (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 |