CN111680112B - 一种数据分析方法及装置 - Google Patents
一种数据分析方法及装置 Download PDFInfo
- Publication number
- CN111680112B CN111680112B CN202010819949.XA CN202010819949A CN111680112B CN 111680112 B CN111680112 B CN 111680112B CN 202010819949 A CN202010819949 A CN 202010819949A CN 111680112 B CN111680112 B CN 111680112B
- Authority
- CN
- China
- Prior art keywords
- key
- target field
- data
- value
- analyzed
- 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
Images
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- 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/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书公开了一种数据分析方法及装置。所述方法包括:获得待分析数据集合,待分析数据集合中包含至少1个数据实体,数据实体包含至少1个字段;从数据实体所包含的字段中,确定存在分析需求的目标字段;为每种目标字段分别创建对应的键值对,并将创建的键值对添加到预先创建的键值对集合中,键值对以目标字段的名称为键、以动态数组为值;针对任一数据实体中的任一目标字段,执行以下操作:将该目标字段的值写入当前的键值对集合中、与该目标字段的名称对应的键值对的动态数组中;针对待分析数据集合,遍历所述操作后,得到待分析键值对集合;待分析键值对集合用于响应数据分析请求。
Description
技术领域
本说明书实施例涉及计算机应用技术领域,尤其涉及一种数据分析方法及装置。
背景技术
目前的数据库通常是根据数据实体进行存储的,数据实体可以包含多个字段。在针对数据实体的一个或多个字段进行分析时,需要读取数据库中任一数据实体的全部字段,选择其中需要分析的字段的值进行分析。
例如,在存储学生各科成绩的数据库中,学生可以视为数据实体,该数据实体包含的字段至少包括各科成绩。在针对全部学生的语文成绩进行统计分析时,需要读取数据库中每位学生的各科成绩的值,选择其中语文成绩的值进行汇总,再针对数据库中全部学生的语文成绩的值进行统计分析。
可见,在针对数据实体的一个或多个字段进行分析时,任一数据实体中其他不需要进行分析的字段也被读取出来,造成时间和资源的浪费。
发明内容
为了避免造成时间和资源的浪费,本说明书提供了一种数据分析方法及装置。技术方案如下所示。
一种数据分析方法,所述方法包括:
获得待分析数据集合,所述待分析数据集合中包含至少1个数据实体,所述数据实体包含至少1个字段;
从所述待分析数据集合的数据实体所包含的字段中,确定存在分析需求的目标字段;
为每种目标字段分别创建对应的键值对,并将创建的键值对添加到预先创建的键值对集合中,所述键值对,以目标字段的名称为键、以动态数组为值;
针对任一数据实体中的任一目标字段,执行以下操作:将该目标字段的值写入当前的键值对集合中、与该目标字段的名称对应的键值对的动态数组中;
针对所述待分析数据集合,遍历所述操作后,得到待分析键值对集合;所述待分析键值对集合用于响应数据分析请求,所述数据分析请求包括:以至少一个目标字段作为分析维度的数据分析请求。
一种数据分析装置,所述装置包括:
数据集合获取单元:获得待分析数据集合,所述待分析数据集合中包含至少1个数据实体,所述数据实体包含至少1个字段;
目标字段确定单元:从所述待分析数据集合的数据实体所包含的字段中,确定存在分析需求的目标字段;
创建单元:为每种目标字段分别创建对应的键值对,并将创建的键值对添加到预先创建的键值对集合中,所述键值对,以目标字段的名称为键、以动态数组为值;
操作单元:针对任一数据实体中的任一目标字段,执行以下操作:将该目标字段的值写入当前的键值对集合中、与该目标字段的名称对应的键值对的动态数组中;针对所述待分析数据集合,遍历所述操作后,得到待分析键值对集合;所述待分析键值对集合用于响应数据分析请求,所述数据分析请求包括:以至少一个目标字段作为分析维度的数据分析请求。
基于上述技术方案,通过将待分析数据集合的多个数据实体中相同字段的值利用动态数组存储,生成字段名为键、动态数组为值的键值对,存储在键值对集合中。在针对数据实体的一个或多个字段进行分析时,可以根据需要分析的字段名,直接读取键值对集合中对应于字段名的动态数组,动态数组中存储多个数据实体中需要分析的字段的值。
在上述技术方案中,所读取的动态数组仅包含需要进行分析的字段值,并不会读取到数据实体中其他不需要进行分析的字段,因此并不会造成时间和资源的浪费。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种数据结构的结构示意图;
图2是本说明书实施例提供的一种数据分析方法的流程示意图;
图3是本说明书实施例提供的一种键值对集合应用实例的结构示意图;
图4是本说明书实施例提供的另一种键值对集合应用实例的结构示意图;
图5a是本说明书实施例提供的一种数据分析方法应用实例的流程示意图;
图5b是本说明书实施例提供的一种数据分析方法应用实例的原理示意图;
图6是本说明书实施例提供的一种数据分析装置的结构示意图;
图7是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
目前的数据库通常是根据数据实体进行存储的,数据实体可以包含多个字段。
为了便于理解数据库中数据实体和字段的概念,首先列举以下2个实例用于示例性说明。
a)一条数据(姓名:王x;性别:男;学号:001;语文成绩:98;数学成绩:91),在数据库中对应于现实的一个学生个体。学生作为数据实体, 可以包含姓名、性别、学号、语文成绩和数学成绩这5个字段。
b)一条数据(事件ID:002;事件类型:查询;发生时间:12:00;执行用户ID:003;审核用户ID:004),在数据库中对应于现实发生的一个事件。事件作为数据实体,可以包含事件ID、事件类型、发生时间、执行用户ID和审核用户ID这5个字段。
字段可以包含字段的名称和字段的值。例如,对于“语文成绩”这一字段,名称是“语文成绩”,值为“98”。而数据实体可以是客观存在且可以互相区别的事物,对应于数据库中的一条数据。
在针对数据实体的一个或多个字段进行分析时,需要读取数据库中任一数据实体的全部字段,选择其中需要分析的字段的值进行分析。
例如,在存储学生各科成绩的数据库中,学生可以视为数据实体,该数据实体包含的字段至少包括各科成绩。在针对全部学生的语文成绩进行统计分析时,需要读取数据库中每位学生的各科成绩的值,选择其中语文成绩的值进行汇总,再针对数据库中全部学生的语文成绩的值进行统计分析。
可见,在针对数据实体的一个或多个字段进行分析时,数据库的任一数据实体中其他不需要进行分析的字段也被读取出来。而针对不需要进行分析的字段,执行读取操作需要耗费时间以及计算资源,读取出来之后还需要耗费存储资源,造成时间和资源的浪费。
在数据实体的量级较大的情况下,时间和资源的浪费更多。
为了避免时间和资源的浪费,本说明书提供了一种数据分析方法,由于数据分析通常是以单个字段为分析维度进行的,需要获取多个数据实体的同一字段的值进行分析,因此本说明书提供的数据分析方法中,预先将可能需要分析的字段值从多个数据实体中提取出来,按照所属的字段名称分别进行存储,其中一个字段名称对应于多个数据实体的该字段的值。
当需要针对一个或多个字段进行分析时,可以根据需要分析的字段的名称,从存储中直接获取对应的多个数据实体的该字段值进行分析。具体的分析过程,本说明书并不限定。
本说明书提供的一种数据分析方法可以划分为两阶段,分别是“存储”和“分析”两个阶段。其中,本说明书并不限定在执行完“存储”阶段之后立即执行“分析”阶段。
其中,“存储”阶段可以是针对包含多个数据实体的待分析数据集合中,可能需要分析、即存在分析需求的字段,将多个数据实体的同一字段的值统一存储到一个数据结构中,以便于后续的数据分析。
其中,待分析数据集合中的多个数据实体可以是以表格形式进行存储,在上述“存储”阶段完成后,待分析数据集合可以保留原本的形式,也可以将待分析数据集合中的全部数据存入数据结构中,用于后续的数据分析。
针对“存储”阶段需要存储的任一字段,由于数据实体的个数、数据实体中是否包含该字段、数据实体中该字段是否存在值,可能无法提前全部确定,因此,无法提前确定需要存储的字段值的个数。
本说明书并不限定数据结构的具体形式,但提供以下一种示例作为示例性说明。
如图1所示,为本说明书提供的一种数据结构的结构示意图,所示的数据结构为一个键值对集合,其中包括4个键值对,集合中每个键值对的值具体可以是动态数组。
每个键值对中,键可以存储字段名称,值通过动态数据的结构可以存储不限数量的字段值。由于动态数组无需提前设置数组包含的元素个数,因此可以在无法提前确定需要存储的字段值的个数的情况下,将需要存储的字段值都存储到动态数组中。
同时,由于不同字段的数据类型可能不同,因此动态数组的数据类型可以在创建动态数组时,根据字段的需求确定。
当然,键值对中的值也可以是动态的链表结构,数据结构也可以是哈希表。图1所示的示例并不能限定本说明书公开的范围。
存入字段值的数据结构可以用于后续的“分析”阶段。
此外,更优地,存入字段值的数据结构还可以具有查询字段值的需求,具体实现查询需求的方法在后文解释。
下面详细地针对本说明书提供的一种数据分析方法进行描述。
如图2所示,为本说明书提供的一种数据分析方法的流程示意图,该方法可以至少包括以下步骤。
S101:获得待分析数据集合。
待分析数据集合中可以包含可能用于分析的数据,本实施例并不限定待分析数据集合具体的形式,可以是表格的形式,也可以是其他形式。
其中,待分析数据集合中可以包含至少1个数据实体,每个数据实体可以包含至少1个字段,当然,不同数据实体之间可以包含不同的字段,具体可以是数量不同或内容含义不同的字段。
例如,待分析数据集合中可以包含学生1、学生2和事件1三个数据实体,其中学生1包含语文成绩和数学成绩2个字段,学生2包含物理成绩、英语成绩和数学成绩3个字段,事件1包含事件ID、事件类型2个字段。
S102:从数据实体所包含的字段中,确定存在分析需求的目标字段。
由于S101中已经解释了待分析数据集合中的不同数据实体,可以包含不同的字段,因此,在确定存在分析需求的目标字段时,需要考虑到待分析数据集合中的全部数据实体包含的全部字段。
本说明书并不限定确定目标字段的具体方法,提供以下两种示例用于示例性说明。
1)可以针对待分析数据集合中的每个数据实体,分别确定其中存在分析需求的目标字段,执行S103。
2)可以针对待分析数据集合中的全部数据实体,将全部数据实体的全部字段添加到一个集合中,由于集合中的元素不会重复,因此可以将相同的字段排除。进而可以在集合中确定存在分析需求的目标字段,执行S103。
存在分析需求的目标字段,可能在后续“分析”阶段用于数据分析,需要注意的是,S102中确定的目标字段,并没有限定一定会在“分析”阶段用于数据分析。
并且,字段是否存在分析需求可以根据实际情况而定,本说明书并不限定哪些字段一定存在或一定不存在分析需求。
例如,通常对于标识字段,例如,学号、事件ID等字段,仅用于查询数据实体,多个数据实体的标识字段值并不存在需要统计分析的需求。但对于部分安全管理的业务需求而言,由于事件ID必须是按顺序生成的,因此可以针对事件ID进行事后审计的分析,通过检查顺序的先后、检查是否存在恶意删除事件的情况,因此,也存在针对标识字段的分析需求。
需要注意的是,待分析数据集合中、全部数据实体的全部字段可以都是目标字段。
S103:为每种目标字段分别创建对应的键值对,并将创建的键值对添加到预先创建的键值对集合中,集合中任一键值对以目标字段的名称为键、以动态数组为值。
具体在创建键值对时,可以先创建一个空的动态数组,以目标字段的名称为键、以动态数组为值,从而创建一个键值对。其中,可以根据目标字段中的数据类型确定新创建的动态数组中数组元素的数据类型。
例如,目标字段中是整型数据,因此在创建一个空的动态数组时,可以创建一个整型的动态数组。
预先创建的键值对集合的结构可以参见图1。
在S102中确定目标字段时,可以针对待分析数据集合中的每个数据实体,分别确定其中存在分析需求的目标字段,执行S103。
而不同的数据实体在分别确定目标字段时,可能确定出相同的目标字段。例如,针对学生1和学生2,都可能确定出同一目标字段语文成绩。
相对应地,S103中,为每种目标字段分别创建对应的键值对时,为了避免针对相同的目标字段创建不同的键值对,可以在针对任一目标字段创建键值对之前,判断当前的键值对集合中是否存在与该目标字段的名称相同的键。
由于在S103中,可以在键值对集合中添加新创建的键值对,更新键值对集合,因此需要针对当前的键值对集合进行判断。
判断过程具体可以是:针对每种目标字段,如果当前的键值对集合中不存在与该目标字段的名称相同的键,则创建一个键值对添加到当前的键值对集合中。
S104:针对任一数据实体中的任一目标字段,执行以下操作:将该目标字段的值写入当前的键值对集合中、与该目标字段的名称对应的键值对的动态数组中。
在具体操作时,可能存在数据实体包含某一字段,但该字段不存在值这一情况,在这种情况下,可以根据实际需求确定是否将该字段的值写入动态数组中。
当实际需求不需要不存在值的字段时,可以在操作中限定,如果该目标字段的值不为空,将该目标字段的值写入键值对集合中、与该目标字段的名称对应的键值对中的动态数组中。
当实际需求需要不存在值的字段时,由于不存在字段值,在操作中需要将字段值写入动态数组时,可以预先设定一个值填入动态数组。具体设定的值可以是0或-1。
S105:针对待分析数据集合,遍历S104中的操作后,得到待分析键值对集合;待分析键值对集合用于响应数据分析请求。
针对待分析数据集合,遍历S104中的操作,具体可以包括:针对待分析数据集合中、每个数据实体中的每个目标字段,将该目标字段的值写入当前的键值对集合中、与该目标字段的名称对应的键值对中的动态数组中。
遍历完成后,当前的键值对集合中可以包含待分析数据集合中的全部数据实体中的全部目标字段值,当前的键值对集合也就可以作为待分析键值对集合。
至此,本实施例中的“存储”阶段完成,将具有分析需求的全部字段值存入待分析键值对集合中。可以理解的是,上述“存储”阶段用于将数据表中的数据按照列的维度进行存储。
如图3所示,为本说明书提供的一种键值对集合应用实例的结构示意图,键值对集合中已经存入具有分析需求的全部字段值。键值对集合中包含两个键值对,分别对应于语文成绩和数学成绩两个字段,一个键值对的键为“语文成绩”,值为动态数组{91,98,92,95,92};一个键值对的键为“数学成绩”,值为动态数组{96,97,96,93,94,92,92}。
当然,图3中的键值对表示形式仅仅是一种示例,本说明书对此并不限定。具体的键值对表现形式还可以是<键,值>等等。例如,<语文成绩,{91,98,92,95,92}>。
下面是本实施例中的“分析”阶段。
“分析”阶段中,可以监测是否接收到数据分析请求。数据分析请求可以包括:以至少1个目标字段作为分析维度的数据分析请求,用于针对至少1个目标字段进行分析。
待分析键值对集合可以用于响应数据分析请求,具体的响应步骤可以包括:接收数据分析请求,确定该数据分析请求中包含的至少一个目标字段;针对该数据分析请求中所确定的任一目标字段,如果待分析键值对集合中存在与该目标字段的名称相同的键,则可以获取包含该键的键值对中的动态数组用于数据分析。
具体的数据分析可以包括统计分析(例如,求均值、众数、中位数)、检验分析(例如,检验数据是否符合某种规则)、分布分析(例如,计算数据是否符合某种分布)等等。
在解释完上述步骤S101-S105后,针对“存储”阶段完成后的键值对集合,为了实现查询字段值的需求,可以在S104中,当目标字段的值写入动态数组后,将数据实体的标识于该目标字段在动态数组中的下标进行关联。
如果需要查询数据实体中该目标字段的值,可以根据该目标字段的名称查询键值对集合中对应的动态数组,根据数据实体的标识查询到关联的动态数组下标,再根据下标确定该目标字段的值在该动态数组中的位置。
也就是说,S104中还可以包括:针对任一数据实体中的任一目标字段,将该数据实体的标识,与写入该动态数组的该目标字段的值对应的数组索引进行关联。
其中,数据实体的标识可以是数据实体的主键。
如图4所示,为本说明书提供的另一种键值对集合应用实例的结构示意图。键值对集合中已经存入具有分析需求的全部字段值。键值对集合中包含两个键值对,分别对应于语文成绩和数学成绩两个字段,一个键值对的键为“语文成绩”,值为动态数组{91,98};一个键值对的键为“数学成绩”,值为动态数组{96,97}。
此外,图中还包括一组关联关系,数据实体为两个学生,学生1和学生2。学生1的标识为学号001,学生2的标识为学号002。
学生1(学号001)对应于语文成绩中的下标0和数学成绩中的下标1;学生2(学号002)对应于语文成绩中的下标1和数学成绩中的下标0。
利用这一组关联关系,可以满足数据实体的目标字段值查询需求,根据数据实体的标识(学生学号)查询到键值对集合中的动态数组中的目标字段值。
当然,作为一种可选的实施例,单个数据实体的全部目标字段在动态数组中对应的数组索引,即数组下标,可以都相同,在关联数据实体的标识和数组索引时,可以关联单个数据实体的标识和单个数组索引,并不使用目标字段名进行区分。
基于上述方法实施例,通过将多个数据实体中相同字段的值利用动态数组存储,生成字段名为键、动态数组为值的键值对,存储在键值对集合中。在针对数据实体的一个或多个字段进行分析时,可以根据需要分析的字段名,直接读取键值对集合中对应于字段名的动态数组,动态数组中存储多个数据实体中需要分析的字段的值。
在上述方法实施例中,所获取的动态数组仅包含需要进行分析的字段值,并不会读取到数据实体中其他不需要进行分析的字段,即使待分析数据集合中包含的数据实体量级较大,也完全不会读取到其他不需要进行分析的字段,因此并不会造成时间和资源的浪费。
在实际应用上述方法实施例时,针对动态数组这一数据结构,可以进行自定义的查询和分析,并不限定具体的查询方式或分析功能。
例如,用户自定义一个功能,遍历动态数组中数组下标在一定范围内的每个数组元素,筛选出大于某一阈值的数组元素进行分析。
具体可以是在Java环境中,针对动态数组封装有多个功能函数,以便于用户调取动态数组、并进行自定义的筛选查询和数据分析,也就是即席查询和分析。
例如,Java环境中存在现有的数组筛选功能函数,通过指定自定义的参数条件,可以从动态数组中快速筛选查询出所需的数据进行分析。
当然,由于动态数组并不是Java专有的数据结构,在其他编程语言的环境中也可以进行自定义的查询和分析,并不限定只有在Java环境中才能进行自定义的查询和分析。
Java环境中自带键值对结构,可以在上述方法实施例中直接使用现有的键值对结构,并进行相关分析。
因此,在Java环境中,使用上述方法实施例中的轻量级键值对集合的结构,由于Java环境中具有较多现有的结构和功能函数,例如,针对数组的统计功能函数,可以很容易地引入到Java的应用程序中(解决应用集成问题);在面对数据较多的情况时,也可以不需要搭建大数据的集群,不需要掌握或学习分布式的分析框架(解决使用和维护成本问题),在数据能放入本机内存的情况下,使用上述方法实施例中的轻量级键值对集合的结构,对数据进行有效的统计和聚合。
因此,使用该数据结构,在数据量合适的场景下,可以方便地对数据进行组织和加工,迅速产出关键结论,将结构良好的结果输入到后续流程中,助力用户挖掘出数据的内在价值。
在实际应用中,也可以使用Cell类型作为动态数组的类型。Cell类型中包含了全部的数据类型,可以通过Cell<type>中的type参数指定数据类型,从而使得动态数组中的数据保持数据类型一致,并在实际应用中统一动态数组的创建过程。例如,创建一个Cell类型的动态数组,之后通过Cell<int>可以将动态数组的数据类型指定为整型数据。
为了便于理解,本说明书还提供了一种数据分析方法的应用实例。
如图5a所示,为本说明书提供的一种数据分析方法应用实例的流程示意图。其中包含了将待分析数据集合(即学生成绩数据表)中的数据存储到键值对集合中,并利用得到的键值对集合进行求语文成绩均值的统计分析。
学生成绩数据表具体如下表所示。
图中的数据分析方法可以至少包括以下步骤。
S201:获得学生成绩数据表。
S202:学生1和学生2所包含的字段中,确定存在分析需求的目标字段包括语文成绩和数学成绩。
S203:分别为语文成绩和数学成绩创建对应的键值对,并将创建的键值对添加到预先创建的键值对集合中。
S204:将学生成绩数据表中学生1的语文成绩的值94写入语文成绩对应的动态数组中、学生1的数学成绩的值90写入数学成绩对应的动态数组中、学生2的语文成绩的值98写入语文成绩对应的动态数组中、学生2的数学成绩的值93写入数学成绩对应的动态数组中。
S205:利用当前的键值对集合响应接收到的、计算语文成绩均值的数据分析请求,获取语文成绩对应的动态数组进行均值计算,得到结果为96,并根据结果响应该数据分析请求。
为了方便进一步理解上述方法的应用实例,如图5b所示,为本说明书提供的一种数据分析方法应用实例的原理示意图,其中基于图5a中的步骤S201-S205对上述方法应用实例的原理进行解释。
通过S201-S204将表1所示的数据表中的数据存储到键值对集合中,当前的键值对集合可以作为待分析键值对集合,用于数据分析,具体可以是响应数据分析请求。
基于S205,根据接收到的计算语文成绩均值的数据分析请求,可以获取到语文成绩对应的动态数组,并进行均值计算,得到结果为96。
除了上述的方法实施例,本说明书还提供了一种数据分析装置。
如图6所示,为本说明书提供的一种数据分析装置的结构示意图。其中装置可以至少包括以下单元。
数据集合获取单元301:获得待分析数据集合,待分析数据集合中包含至少1个数据实体,数据实体包含至少1个字段。
目标字段确定单元302:从待分析数据集合的数据实体所包含的字段中,确定存在分析需求的目标字段。
创建单元303:为每种目标字段分别创建对应的键值对,并将创建的键值对添加到预先创建的键值对集合中,键值对,以目标字段的名称为键、以动态数组为值。
操作单元304:针对任一数据实体中的任一目标字段,执行以下操作:将该目标字段的值写入当前的键值对集合中、与该目标字段的名称对应的键值对的动态数组中;针对待分析数据集合,遍历操作后,得到待分析键值对集合;待分析键值对集合用于响应数据分析请求,数据分析请求包括:以至少一个目标字段作为分析维度的数据分析请求。
其中创建单元303可以用于:针对每种目标字段,如果当前的键值对集合中不存在与该目标字段的名称相同的键,则创建一个键值对添加到当前的键值对集合中。
操作单元304还可以用于:针对任一数据实体中的任一目标字段,将该数据实体的标识,与写入该动态数组的该目标字段的值对应的数组索引进行关联。
操作单元304可以用于:如果该目标字段的值不为空,将该目标字段的值写入所述键值对集合中、与该目标字段的名称对应的键值对中的动态数组中。
操作单元304可以用于:接收数据分析请求,确定该数据分析请求中包含的至少一个目标字段;针对该数据分析请求中所确定的任一目标字段,如果待分析键值对集合中存在与该目标字段的名称相同的键,则获取包含该键的键值对中的动态数组用于数据分析。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现一种如图2所示的数据分析方法。
图7示出了本说明书实施例所提供的一种更为具体的计算机设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种如图2所示的数据分析方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护。
Claims (9)
1.一种数据分析方法,所述方法包括:
获得待分析数据集合,所述待分析数据集合中包含至少1个数据实体,所述数据实体包含至少1个字段;
从所述待分析数据集合的数据实体所包含的字段中,确定存在分析需求的目标字段;
为每种目标字段分别创建对应的键值对,并将创建的键值对添加到预先创建的键值对集合中,所述键值对,以目标字段的名称为键、以动态数组为值;
针对任一数据实体中的任一目标字段,执行以下操作:将该目标字段的值写入当前的键值对集合中、与该目标字段的名称对应的键值对的动态数组中,将该数据实体的标识,与写入该动态数组的该目标字段的值对应的数组索引进行关联;
针对所述待分析数据集合,遍历所述操作后,得到待分析键值对集合;所述待分析键值对集合用于响应数据分析请求,所述数据分析请求包括:以至少一个目标字段作为分析维度的数据分析请求。
2.根据权利要求1所述的方法,所述为每种目标字段分别创建对应的键值对,并将创建的键值对添加到预先创建的键值对集合中,包括:
针对每种目标字段,如果当前的键值对集合中不存在与该目标字段的名称相同的键,则创建一个键值对添加到当前的键值对集合中。
3.根据权利要求1所述的方法,所述将该目标字段的值写入所述键值对集合中、与该目标字段的名称对应的键值对中的动态数组中,包括:
如果该目标字段的值不为空,将该目标字段的值写入所述键值对集合中、与该目标字段的名称对应的键值对中的动态数组中。
4.根据权利要求1所述的方法,所述响应数据分析请求,包括:
接收数据分析请求,确定该数据分析请求中包含的至少一个目标字段;
针对该数据分析请求中所确定的任一目标字段,如果所述待分析键值对集合中存在与该目标字段的名称相同的键,则获取包含该键的键值对中的动态数组用于数据分析。
5.一种数据分析装置,所述装置包括:
数据集合获取单元:获得待分析数据集合,所述待分析数据集合中包含至少1个数据实体,所述数据实体包含至少1个字段;
目标字段确定单元:从所述待分析数据集合的数据实体所包含的字段中,确定存在分析需求的目标字段;
创建单元:为每种目标字段分别创建对应的键值对,并将创建的键值对添加到预先创建的键值对集合中,所述键值对,以目标字段的名称为键、以动态数组为值;
操作单元:针对任一数据实体中的任一目标字段,执行以下操作:将该目标字段的值写入当前的键值对集合中、与该目标字段的名称对应的键值对的动态数组中,将该数据实体的标识,与写入该动态数组的该目标字段的值对应的数组索引进行关联;针对所述待分析数据集合,遍历所述操作后,得到待分析键值对集合;所述待分析键值对集合用于响应数据分析请求,所述数据分析请求包括:以至少一个目标字段作为分析维度的数据分析请求。
6.根据权利要求5所述的装置,所述创建单元,具体用于:
针对每种目标字段,如果当前的键值对集合中不存在与该目标字段的名称相同的键,则创建一个键值对添加到当前的键值对集合中。
7.根据权利要求5所述的装置,所述操作单元,具体用于:
如果该目标字段的值不为空,将该目标字段的值写入所述键值对集合中、与该目标字段的名称对应的键值对中的动态数组中。
8.根据权利要求5所述的装置,所述操作单元,具体用于:
接收数据分析请求,确定该数据分析请求中包含的至少一个目标字段;
针对该数据分析请求中所确定的任一目标字段,如果所述待分析键值对集合中存在与该目标字段的名称相同的键,则获取包含该键的键值对中的动态数组用于数据分析。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010819949.XA CN111680112B (zh) | 2020-08-14 | 2020-08-14 | 一种数据分析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010819949.XA CN111680112B (zh) | 2020-08-14 | 2020-08-14 | 一种数据分析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111680112A CN111680112A (zh) | 2020-09-18 |
CN111680112B true CN111680112B (zh) | 2020-11-10 |
Family
ID=72438780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010819949.XA Active CN111680112B (zh) | 2020-08-14 | 2020-08-14 | 一种数据分析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111680112B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515807B (zh) * | 2016-06-17 | 2021-05-07 | 阿里巴巴集团控股有限公司 | 一种存储监控数据的方法及装置 |
CN108205577B (zh) * | 2016-12-20 | 2022-06-03 | 阿里巴巴集团控股有限公司 | 一种数组构建、数组查询的方法、装置及电子设备 |
CN109325218B (zh) * | 2017-08-01 | 2024-09-06 | 珠海金山办公软件有限公司 | 一种数据筛选统计方法、装置、电子设备及存储介质 |
CN109271411B (zh) * | 2018-09-28 | 2023-08-29 | 中国平安财产保险股份有限公司 | 报表生成方法、装置、计算机设备及存储介质 |
-
2020
- 2020-08-14 CN CN202010819949.XA patent/CN111680112B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111680112A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359118B (zh) | 一种数据写入方法及装置 | |
US20240329926A1 (en) | Method and device for acquiring comprehensive arrangement data of multi-column data | |
CN111400170A (zh) | 一种数据权限测试方法及装置 | |
CN113760839A (zh) | 日志数据压缩处理方法、装置、电子设备和存储介质 | |
CN111506613A (zh) | 一种数据记录的关联关系的查询方法、系统、装置及设备 | |
CN110888972A (zh) | 一种基于Spark Streaming的敏感内容识别方法及装置 | |
CN111680112B (zh) | 一种数据分析方法及装置 | |
CN116151961A (zh) | 信用风险预测方法、电子设备及可读存储介质 | |
CN105245380B (zh) | 一种消息的传播方式识别方法及装置 | |
CN113806556A (zh) | 基于电网数据的知识图谱的构建方法、装置、设备及介质 | |
CN115795187A (zh) | 资源访问方法、装置及设备 | |
CN114331167A (zh) | 一种冠军挑战者策略的管理方法、系统、介质和设备 | |
CN109656805B (zh) | 用于业务分析的代码链路的生成方法、装置及业务服务器 | |
US20200125361A1 (en) | Dynamic modeling for opaque code during static analysis | |
CN112035425B (zh) | 一种日志的存储方法、装置及计算机系统 | |
JP7344521B1 (ja) | プログラム、方法、情報処理装置、及びシステム | |
CN117851608B (zh) | 案件图谱生成方法、装置、设备和介质 | |
US20240104083A1 (en) | Data anomaly detection | |
CN109901990B (zh) | 一种业务系统的测试方法、装置及设备 | |
CN116822475A (zh) | 表格数据的处理方法、装置、设备及介质 | |
CN118760716A (zh) | 入库文件检查方法、装置、存储介质及处理器 | |
CN116701545A (zh) | 审计数据分析方法、装置、存储介质及处理器 | |
CN112488586A (zh) | 风控预警数据的管理方法、系统,计算机设备及存储介质 | |
CN118093392A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN118519866A (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 |