数据库的数据分布分析方法、装置,电子设备及存储介质与流程

文档序号:18739672发布日期:2019-09-21 01:38阅读:267来源:国知局
数据库的数据分布分析方法、装置,电子设备及存储介质与流程

本公开涉及数据统计分析,具体地,涉及一种数据库的数据分布分析方法、装置,电子设备及存储介质。



背景技术:

数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。数据库具有数据的结构化、共享性好、独立性好、存储粒度小等特点,为用户提供了友好的接口。

对于数据库的使用方而言,若想要运用数据库内的数据样本,需要对整个数据库中的数据样本的数据结构有基本的了解,以根据了解到的数据基本结构确定如何使用或处理数据库内的数据样本。传统的对数据结构的基本了解方式为:从数据库的大量的数据样本中抽取部分数据样本,然后由管理人员对抽取出的部分样本进行分析,从而大概了解数据库中的数据样本的数据分布信息。然而由于抽取的数据样本仅仅是数据库的大量的数据样本的一部分,因此,得到的数据样本的数据分布信息的可靠性不高,并且需要浪费大量的人力成本对抽取抽取部分数据样本逐个进行分析。



技术实现要素:

本公开的目的是提供一种数据库的数据分布分析方法、装置,电子设备及存储介质,以实现高效率、低成本的得到可靠性高的数据库的数据样本的数据分布信息。

为了实现上述目的,本公开实施例第一方面提供了一种数据分布分析方法,包括:

从数据库获取目标数据样本集合;

识别所述目标数据样本集合中每一数据样本中的分隔符,并根据所述分隔符将所述数据样本分隔为至少一个数据段;

根据所述分隔符、所述至少一个数据段、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构;

根据所述目标数据样本集合中所有数据样本的数据结构生成用于表征所述数据库的数据分布的分析结果信息。

可选地,在所述根据所述分隔符、所述至少一个数据段、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构之前,所述方法还包括:

逐个将每个所述数据段分别缓存于第一有序链表的不同地址中以及所述分隔符缓存于第二有序链表的不同地址中,以记录所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序。

可选地,每个所述数据段包括字符串长度信息和/或数据类型,所述根据所述分隔符、所述至少一个数据段、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构包括:

根据所述分隔符、所述字符串长度信息和/或数据类型、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构。

可选地,所述根据所述目标数据样本集合中所有数据样本的数据结构生成用于表征所述数据库的数据分布的分析结果信息包括:

根据预设的分类规则将所述数据样本分类;

对每类所述数据样本进行数量统计,确定每类所述数据样本的占比;

根据每类所述数据样本的数据结构及占比生成用于表征所述数据库的数据分布的分析结果信息。

可选地,所述从数据库获取目标数据样本集合,包括:

根据所述数据库中的元数据信息识别数据库中的非字符串;

剔除数据库中的非字符串,得到所述目标样本数据集合。

本公开实施例第二方面提供了一种数据库的数据分布分析装置,所述装置包括:

数据获取模块,被配置成从数据库获取目标数据样本集合;

数据识别模块,被配置成识别所述目标数据样本集合中每一数据样本中的分隔符,并根据所述分隔符将所述数据样本分隔为至少一个数据段;

数据结构确定模块,被配置成根据所述分隔符、所述至少一个数据段、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构;

结果生成模块,被配置成根据所述目标数据样本集合中所有数据样本的数据结构生成用于表征所述数据库的数据分布的分析结果信息。

可选地,所述装置还包括:顺序记录模块,被配置成逐个将每个所述数据段分别缓存于第一有序链表的不同地址中以及所述分隔符缓存于第二有序链表的不同地址中,以记录所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序。

可选地,所述数据结构确定模块具体被配置成根据所述分隔符、所述字符串长度信息和/或数据类型、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构。

可选地,所述结果生成模块包括:

分类子模块,被配置成根据预设的分类规则将所述数据样本分类;

占比确定子模块,被配置成对每类所述数据样本进行数量统计,确定每类所述数据样本的占比;

结果生成子模块,被配置成根据每类所述数据样本的数据结构及占比生成用于表征所述数据库的数据分布的分析结果信息。

可选地,所述数据获取模块包括:

字符识别子模块,被配置成根据所述数据库中的元数据信息识别数据库中的非字符串;

字符剔除子模块,被配置成剔除数据库中的非字符串,得到所述目标样本数据集合。

本公开实施例第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。

本公开实施例第四方面提供了一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面所述方法的步骤。

采用本公开提供的技术方案,至少能够达到如下技术效果:

本公开提供的数据库的数据分布分析方法、装置,电子设备及存储介质,通过识别目标数据样本集合中每一数据样本中的分隔符,并根据分隔符将数据样本分隔为至少一个数据段;然后根据分隔符、至少一个数据段、分隔符与至少一个数据段在数据样本中的排列顺序,确定数据样本的数据结构;最后根据目标数据样本集合中所有数据样本的数据结构生成用于表征数据库的数据分布的分析结果信息;通过上述的方式,由于是对所有的数据样本进行分析,因此得到的数据样本的数据分布信息更加可靠;并且无需人工介入,提高了对数据分布信息分析的效率,减少了人工成本。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开实施例提供的数据库的数据分布分析方法的应用环境的交互示意图;

图2是本公开实施例提供的一种实施方式的数据库的数据分布分析方法的流程图;

图3是本公开实施例提供的另一种实施方式的数据库的数据分布分析方法的流程图;

图4是本公开实施例提供的另一种实施方式的数据库的数据分布分析方法的流程图;

图5是本公开实施例提供的另一种实施方式的数据库的数据分布分析方法的流程图;

图6是本公开实施例提供的一种实施方式的数据库的数据分布分析装置的结构示意图;

图7是本公开实施例提供的另一种实施方式的数据库的数据分布分析装置的结构示意图;

图8是本公开实施例提供的另一种实施方式的数据库的数据分布分析装置的结构示意图;

图9是本公开实施例提供的另一种实施方式的数据库的数据分布分析装置的结构示意图;

图10是本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

首先值得说明的是,本公开实施例中的术语“第一”、“第二”等是用于区别类似的对象,不必理解为特定的顺序或先后次序。

本公开实施例所提供的数据分布分析方法、装置,电子设备及存储介质可应用于如图1所示的应用环境中。如图1所示,客户端100、电子设备(图1中电子设备采用服务器200,当然地,电子设备不限于采用服务器200)位于网络300中,通过该网络300,客户端100与服务器200进行数据交互。于本公开实施例中,客户端100中安装有至少一个应用程序(Application,APP),与服务器200相对应,为用户提供服务。该服务器200可以是,但不限于,网络服务器、数据库服务器、云端服务器等等。该客户端100可以是,但不限于智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digital assistant,PDA)、移动上网设备(mobile Internet device,MID)等。所述客户端100的操作系统可以是,但不限于,安卓(Android)系统、IOS(iPhone operating system)系统、Windows phone系统、Windows系统等。

本公开实施例提供了一种数据库的数据分布分析方法,应用于电子设备。可以理解地,在执行本公开实施例提供的方法之前,用户可以在客户端的应用程序的操作界面设置数据样本的获取条件,例如,设置获取数据样本的数量、数据样本的维度信息;其中,数据的维度信息可以包括时间、地区、科目等等;当用户设置好数据获取条件以后点击“分析”按钮,然后客户端即发送携带有数据获取条件的分析指令至电子设备。如图2所示,该数据库的数据分布分析方法包括:

S21:从数据库获取目标数据样本集合。

电子设备可以在响应到客户端发送的分析指令后,依据分析指令从数据库获取目标数据样本集合。例如,若分析指令中携带的数据样本的数量为一万条,则电子设备利用随机抽样算法从数据库中获取一万条数据样本;再例如,若分析指令中携带的数据维度信息为北京一季度,则电子设备从数据库中取出北京一季度的所有数据样本;当然地,上述的数据样本的数量及数据维度信息仅仅是举例说明,在此不做限定。本公开实施例中,数据库中的数据样本可以为客户关系管理系统中的客户信息数据,例如,每条客户信息数据包括:客户名称、客户电话、客户邮箱、客户身份证号等等,在此仅是举例说明。

S22:识别所述目标数据样本集合中每一数据样本中的分隔符,并根据所述分隔符将所述数据样本分隔为至少一个数据段。

具体地,识别分隔符的过程可以为:将每一数据样本的字符与预设的分隔符集合中的分隔符进行匹配,若分隔符集合中包含有该字符,则将该字符确定为分隔符。其中,分隔符可以为但不限于“-”、“@”、“&”、“+”,“*”、“_”、“&”、“|”、“.”、“,”等字符。另外,用户可以通过客户端对预设的分隔符集合进行修改更新,例如,添加“、”、“;”进入分隔符集合中。例如,对于字符串“fxsxd@163.com”,则可以识别出“@”、“.”为分隔符,且将字符串“fxsxd@163.com”分隔为三个数据段,三个数据段分别为“fxsxd”、“163”、“com”。

S23:根据所述分隔符、所述至少一个数据段、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构。

可选地,可以根据所述分隔符、数据段的字符串长度信息和/或数据类型、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构。

例如,在字符串“fxsxd@163.com”中,当考虑字符串长度信息和数据类型时,数据段与分隔符的排序顺序为“fxsxd”(字符串长度为5,数据类型为字母,可以记为X)、“@”、“163”(字符串长度为3,数据类型为数字,可以记为Y)、“.”、“com”(字符串长度为3,数据类型为字母,可以按照上述的方式记为X),确定的数据结构可以为“X(5)@Y(3).X(3)”;再例如,在字符串“fxsxd@163.com”中,当仅考虑数据段的字符串长度信息,数据段与分隔符的排序顺序为“fxsxd”(字符串长度为5)、“@”、“163”(字符串长度为3)、“.”、“com”(字符串长度为3),确定的数据结构可以为“X(5)@X(3).X(3)”;再例如,在字符串“fxsxd@163.com”中,当考虑数据段的字符串长度信息和数据类型,数据段与分隔符的排序顺序为“fxsxd”(数据类型为字母,可以记为X)、“@”、“163”(数据类型为数字,可以记为Y)、“.”、“com”(数据类型为字母,可以按照上述的方式记为X),则确定的数据结构可以为“X@Y.X”,当然地,确定数据结构不仅仅限于上述的方式,在此仅仅是举例说明。

S24:根据所述目标数据样本集合中所有数据样本的数据结构生成用于表征所述数据库的数据分布的分析结果信息。

例如,可以将所有数据样本的数据结构进行统计,然后生成数据分布的分析结果信息。可选地,可以将数据分布的分析结果信息反馈至客户端显示,以用户可以直接通过数据分布的分析结果信息快速了解数据库中的数据情况。

采用上述方法步骤,通过识别目标数据样本集合中每一数据样本中的分隔符,并根据分隔符将数据样本分隔为至少一个数据段;然后根据分隔符、至少一个数据段、分隔符与至少一个数据段在数据样本中的排列顺序,确定数据样本的数据结构;最后根据目标数据样本集合中所有数据样本的数据结构生成用于表征数据库的数据分布的分析结果信息;通过上述的方式,由于是对所有的数据样本进行分析,因此,得到的数据样本的数据分布信息更加可靠;并且无需人工介入,提高了对数据分布信息分析的效率,减少了人工成本。

可选地,在S23之前,如图3所示,所述方法还包括:

S31:逐个将每个所述数据段分别缓存于第一有序链表的不同地址中以及所述分隔符缓存于第二有序链表的不同地址中,以记录所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序。

其中,有序链表是指从头结点开始到链表结尾,节点中数据有序排列的链表,每个一个节点即可表征数据的缓存地址。步骤31的具体实施方式可以为:根据数据段的被识别到的先后顺序,从第一有序链表的头节点开始,将识别到的数据段逐一的缓存到不同的节点中;根据分隔符的被识别到的先后顺序,从第二有序链表的头节点开始,将识别到的分隔符逐一的缓存到不同的节点中。通过每个数据段在第一有序链表中的所处位置、每个分隔符在第二有序链表中的所处位置,即可记录每个数据段和分隔符的顺序。例如,对于字符串“fxsxd@163.com”,从第一有序链表的头节点开始,每个结点缓存的数据段依次为“fxsxd”、“163”、“com”;从第二有序链表的头节点开始,每个结点缓存的数据段依次为“@”、“.”。

当需要确定字符串“fxsxd@163.com”的数据结构时,则先从第一有序链表中第一个结点取出“fxsxd”进行识别生成该数据段的数据结构、然后从第二有序链表中的第一个结点取出“@”,然后再从第一有序链表中的第二个结点取出“163”进行识别生成该数据段的数据结构,如此循环,直到该字符串的最后一个数据段,最后按照取出的先后顺序生成该字符串的数据结构。

另外,可选地,如图4所示,上述的S21可以通过以下方式实施:

S211:根据所述数据库中的元数据信息识别数据库中的非字符串。

在数据库中,数据样本通常以表格的形式存储,每个表格的每一行或每一列均标记有元数据信息。例如,对于数据库中的“王建国、13256238792、fxsxd@163.com、北京市海淀区、2019年5月1日”的一条客户数据样本;该客户数据样本的每段数据对应的元数据信息分别为姓名、电话、邮箱、居住地以及日期。因此,基于元数据信息就可以确定数据库中的非字符串,其中,非字符串包括日期、时间戳以及大字段等数据。

S212:剔除数据库中的非字符串,得到所述目标样本数据集合。

例如,针对S211中的举例,对于元数据信息为日期的一行或一列数据,不属于字符串,导致不能识别出数据结构,为了避免对最终生成的表征所述数据库的数据分布的分析结果信息产生干扰,因此,需要对元数据信息为日期的一行或一列数据进行删除,从而得到目标样本数据集合。

可选地,如图5所示,S24可以通过以下方式具体实施:

S241:根据预设的分类规则将所述数据样本分类。

预设的分类规则可以为将数据结构完全相同的数据样本归为一类,例如,对于数据样本“fxsxd@163.com”、“yueli@163.com”、“hongqi@163.com”;前面两者的数据结构均可以被确定为“X(5)@X(3).X(3)”,则可以将数据样本“fxsxd@163.com”和“yueli@163.com”归为一类;后者的数据结构被确定为“X(6)@X(3).X(3)”,则将“hongqi@163.com”归为一类;另外,该预设的分类规则还可以为将包含相同分隔符且分隔符之间的排列顺序相同的数据样本归为一类,例如,对于数据样本“fxsxd@163.com”、“hongqi@163.com”、“010-82785120-6098”;前面两者的分隔符为“@”、“.”且两种分隔符在样本中的排列顺序也相同,则可以将“fxsxd@163.com”、“hongqi@163.com”归为一类;后者的分隔符被确定为“-”,“-”,则将“010-82785120-6098”归为一类。

S242:对每类所述数据样本进行数量统计,确定每类所述数据样本的占比。

例如,对于S241中的数据样本,可以确定数据结构为X(5)@X(3).X(3)一类的数据样本的占比为66.7%;数据结构为“X(6)@X(3).X(3)”一类的数据样本的占比为33.3%。

S243:根据每类所述数据样本的数据结构及占比生成用于表征所述数据库的数据分布的分析结果信息。

例如,对于S242中的数据样本生成的数据分布的分析结果信息为“X(5)@X(3).X(3)66.7%”;“X(6)@X(3).X(3)33.3%”,明显地,用户可以通过数据分布的分析结果信息快速、准确地了解到数据库中的数据的情况,例如,通过分析结果信息可以得知上述的字符串为邮箱地址。在一种情形下,当用户发现分析结果信息中包含X(6)@X(3).X(6)3%时,由于邮箱的后缀都是.com,最后一个数据段的数据结构应该是X(3),从分析结果信息中包含的X(6)@X(3).X(6)3%可得知,对邮箱地址的后缀记录出错的数据样本占3%。

本公开实施例还提供一种数据库的数据分布分析装置,用于实施上述方法实施例提供的一种数据库的数据分布分析方法。需要说明的是,本发明实施例所提供的数据库的数据分布分析装置,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本发明实施例部分未提及之处,可参考上述的实施例中相应内容。如图6所示,所述装置包括数据获取模块、数据识别模块、数据结构确定模块、结果生成模块。

数据获取模块被配置成从数据库获取目标数据样本集合。

可以理解地,数据获取模块可以执行上述的S21。

数据识别模块被配置成识别所述目标数据样本集合中每一数据样本中的分隔符,并根据所述分隔符将所述数据样本分隔为至少一个数据段。

可以理解地,数据识别模块可以执行上述的S22。

数据结构确定模块被配置成根据所述分隔符、所述至少一个数据段、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构。

可以理解地,数据结构确定模块可以执行上述的S23。

结果生成模块被配置成根据所述目标数据样本集合中所有数据样本的数据结构生成用于表征所述数据库的数据分布的分析结果信息。

可以理解地,结果生成模块可以执行上述的S24。

采用该装置,通过识别目标数据样本集合中每一数据样本中的分隔符,并根据分隔符将数据样本分隔为至少一个数据段;然后根据分隔符、至少一个数据段、分隔符与至少一个数据段在数据样本中的排列顺序,确定数据样本的数据结构;最后根据目标数据样本集合中所有数据样本的数据结构生成用于表征数据库的数据分布的分析结果信息;通过上述的方式,由于是对所有的数据样本进行分析,因此得到的数据样本的数据分布信息更加可靠;并且无需人工介入,提高了对数据分布信息分析的效率,减少了人工成本。

可选地,如图7所示,所述装置还包括:

顺序记录模块,被配置成逐个将每个所述数据段分别缓存于第一有序链表的不同地址中以及所述分隔符缓存于第二有序链表的不同地址中,以记录所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序。

可以理解地,顺序记录模块可以执行上述的S31。

可选地,所述数据结构确定模块具体被配置成根据所述分隔符、所述字符串长度信息和/或数据类型、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构。

可选地,如图8所示,所述数据获取模块包括:

字符识别子模块,被配置成根据所述数据库中的元数据信息识别数据库中的非字符串。

可以理解地,字符识别模块可以执行上述的S211。

字符剔除子模块,被配置成剔除数据库中的非字符串,得到所述目标样本数据集合。

可以理解地,分类子模块可以执行上述的S212。

可选地,如图9所示,所述结果生成模块包括:

分类子模块,被配置成根据预设的分类规则将所述数据样本分类。

可以理解地,分类子模块可以执行上述的S241。

占比确定子模块,被配置成对每类所述数据样本进行数量统计,确定每类所述数据样本的占比。

可以理解地,占比确定模块可以执行上述的S242。

结果生成子模块,被配置成根据每类所述数据样本的数据结构及占比生成用于表征所述数据库的数据分布的分析结果信息。

可以理解地,结果生成子模块可以执行上述的S243。

本公开实施例第四方面提供了一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现上述实施例提供的数据库的数据分布分析方法实施例的步骤。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图10是根据一示例性实施例示出的一种电子设备1000的框图。例如,电子设备1000可以被提供为一服务器。参照图10,电子设备1000包括处理器1022,其数量可以为一个或多个,以及存储器1032,用于存储可由处理器1022执行的计算机程序。存储器1032中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1022可以被配置为执行该计算机程序,以执行上述的数据库的数据分布分析方法。比如,处理器822可以执行以下操作:从数据库获取目标数据样本集合;识别所述目标数据样本集合中每一数据样本中的分隔符,并根据所述分隔符将所述数据样本分隔为至少一个数据段;根据所述分隔符、所述至少一个数据段、所述分隔符与所述至少一个数据段在所述数据样本中的排列顺序,确定所述数据样本的数据结构;根据所述目标数据样本集合中所有数据样本的数据结构生成用于表征所述数据库的数据分布的分析结果信息;输出用于表征所述数据库的数据分布的分析结果信息。

另外,电子设备1000还可以包括电源组件1026和通信组件1050,该电源组件1026可以被配置为执行电子设备1000的电源管理,该通信组件1050可以被配置为实现电子设备1000的通信,例如,有线或无线通信。此外,该电子设备1000还可以包括输入/输出(I/O)接口1058。电子设备1000可以操作基于存储在存储器1032的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM等等。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据库的数据分布的分析方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1032,上述程序指令可由电子设备1000的处理器1022执行以完成上述的数据库的数据分布的分析方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1