CN112286995B - 一种数据分析方法、装置、服务器、系统及存储介质 - Google Patents
一种数据分析方法、装置、服务器、系统及存储介质 Download PDFInfo
- Publication number
- CN112286995B CN112286995B CN202011274970.2A CN202011274970A CN112286995B CN 112286995 B CN112286995 B CN 112286995B CN 202011274970 A CN202011274970 A CN 202011274970A CN 112286995 B CN112286995 B CN 112286995B
- Authority
- CN
- China
- Prior art keywords
- data
- analyzed
- combination
- analysis
- dimension
- 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/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
-
- 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/23—Updating
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于一种数据分析方法、装置、服务器、系统及存储介质。该方法包括解析操作指令,获取第一待分析数据;按照全维度组合对第一待分析数据进行分组,得到第二待分析数据,根据分析类型对每组第二待分析数据中与指标项匹配的数据进行分析,得到第一分析结果;组合第一分析结果中与指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,按照子维度组合对第三待分析数据进行分组,得到各子维度组合对应的第四待分析数据;根据分析类型对每组第四待分析数据中与指标项匹配的数据进行分析,得到第二分析结果,将第一分析结果和第二分析结果作为数据分析结果,可以避免相关技术中数据分析方式的高延时、效率低的问题。
Description
技术领域
本公开涉及计算机技术,尤其涉及一种数据分析方法、装置、服务器、系统及存储介质。
背景技术
多维分析是大数据工程师和数据分析人员最常用的分析技术,各大数据引擎也都提供了各自的技术实现。相关技术中,通常采用批处理系统进行多维分析。通过批处理系统进行多维分析是一种离线数据分析方式。例如,在每天凌晨对前一天产生的数据进行多维分析。这类系统具有延时大和效率低等缺陷,在处理超大数据集(上百亿)时往往无法胜任。
发明内容
本公开提供一种数据分析方法、装置、服务器、系统及存储介质,以至少解决相关技术中数据分析的高延时和效率低的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据分析方法,包括:
解析操作指令,所述操作指令包括数据源标识信息、维度、分析类型和指标项;
从所述数据源标识信息对应的数据源中选择第一待分析数据,所述第一待分析数据中的每条数据记录包括分别与所述维度和所述指标项匹配的数据;
按照全维度组合对所述第一待分析数据进行分组,得到至少一组第二待分析数据,根据所述分析类型对每组所述第二待分析数据中与所述指标项匹配的数据进行分析,得到第一分析结果;其中,所述全维度组合是包括所述操作指令中的全部维度的组合;
组合所述第一分析结果中与所述指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,按照所述子维度组合对所述第三待分析数据进行分组,得到各子维度组合对应的至少一组第四待分析数据;其中,所述子维度组合为基于所述全部维度得到的所有组合中除所述全维度组合之外的组合;
根据所述分析类型对每组所述第四待分析数据中与所述指标项匹配的数据进行分析,得到第二分析结果,将所述第一分析结果和所述第二分析结果作为数据分析结果。
可选地,所述解析操作指令,包括:
识别所述操作指令包括的数据源标识信息字段、维度字段、分析类型字段和指标项字段,分别获取对应字段处填充的内容信息,得到数据源标识信息、维度、分析类型以及指标项。
可选地,所述从所述数据源标识信息对应的数据源中选择第一待分析数据,包括:
匹配所述维度和所述数据源标识信息对应的数据源中的数据标识字段,得到与所述维度匹配的第一数据标识字段,获取所述第一数据标识字段对应的第三数据;
匹配所述指标项和所述数据源标识信息对应的数据源中的数据标识字段,得到与所述指标项匹配的第二数据标识字段,获取所述第二数据标识字段对应的第四数据;
组合所述第三数据和所述第四数据,得到第一待分析数据。
可选地,所述按照全维度组合对所述第一待分析数据进行分组,得到至少一组第二待分析数据,包括:
确定包括所述操作指令中的全部维度的全维度组合;
根据所述第一待分析数据中与所述全维度组合包括的维度对应的数据,对所述第一待分析数据进行聚合运算,得到至少一组第二待分析数据。
可选地,所述组合所述第一分析结果中与所述指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,包括:
获取所述第一分析结果中与所述指标项匹配的第一数据;
获取子维度组合中与维度匹配的第二数据;
根据所述第一分析结果中全维度组合与指标项的数据对应关系,组合所述第一数据和所述第二数据,得到第三待分析数据。
可选地,所述按照所述子维度组合对所述第三待分析数据进行分组,得到各子维度组合对应的至少一组第四待分析数据,包括:
根据所述第三待分析数据中与对应的子维度组合包括的维度对应的数据,对所述第三待分析数据进行聚合运算,得到各子维度组合对应的至少一组第四待分析数据。
可选地,该方法还包括:
在从所述数据源标识信息对应的数据源中选择第一待分析数据之后,当所述第一待分析数据中与所述指标项匹配的数据是设定字符类型的第五数据时,根据预先定义的类型映射关系对所述第五数据进行字符类型转换,得到第六数据,以位图方式存储所述第六数据。
可选地,该方法还包括:
在从所述数据源标识信息对应的数据源中选择第一待分析数据之后,当满足所述操作指令指示的时间间隔时,删除本地数据表的所述第一待分析数据;
当不满足所述操作指令指示的时间间隔的情况下,将新获取的所述第一待分析数据存储到所述本地数据表。
根据本公开实施例的第二方面,提供一种数据分析装置,该装置包括:
指令解析模块,被配置为执行解析操作指令,所述操作指令包括数据源标识信息、维度、分析类型和指标项;
数据选择模块,被配置为执行从所述数据源标识信息对应的数据源中选择第一待分析数据,所述第一待分析数据中的每条数据记录包括分别与所述维度和所述指标项匹配的数据;
第一结果确定模块,被配置为执行按照全维度组合对所述第一待分析数据进行分组,得到至少一组第二待分析数据,根据所述分析类型对每组所述第二待分析数据中与所述指标项匹配的数据进行分析,得到第一分析结果;其中,所述全维度组合是包括所述操作指令中的全部维度的组合;
数据组合模块,被配置为执行组合所述第一分析结果中与所述指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,按照所述子维度组合对所述第三待分析数据进行分组,得到各子维度组合对应的至少一组第四待分析数据;其中,所述子维度组合为基于所述全部维度得到的所有组合中除所述全维度组合之外的组合;
第二结果确定模块,被配置为执行根据所述分析类型对每组所述第四待分析数据中与所述指标项匹配的数据进行分析,得到第二分析结果,将所述第一分析结果和所述第二分析结果作为数据分析结果。
可选地,指令解析模块具体被配置为执行:
识别所述操作指令包括的数据源标识信息字段、维度字段、分析类型字段和指标项字段,分别获取对应字段处填充的内容信息,得到数据源标识信息、维度、分析类型以及指标项。
可选地,数据选择模块具体被配置为执行:
匹配所述维度和所述数据源标识信息对应的数据源中的数据标识字段,得到与所述维度匹配的第一数据标识字段,获取所述第一数据标识字段对应的第三数据;
匹配所述指标项和所述数据源标识信息对应的数据源中的数据标识字段,得到与所述指标项匹配的第二数据标识字段,获取所述第二数据标识字段对应的第四数据;
组合所述第三数据和所述第四数据,得到第一待分析数据。
可选地,第一结果确定模块具体被配置为执行:
确定包括所述操作指令中的全部维度的全维度组合;
根据所述第一待分析数据中与所述全维度组合包括的维度对应的数据,对所述第一待分析数据进行聚合运算,得到至少一组第二待分析数据。
可选地,数据组合模块具体被配置为执行:
获取所述第一分析结果中与所述指标项匹配的第一数据;
获取子维度组合中与维度匹配的第二数据;
根据所述第一分析结果中全维度组合与指标项的数据对应关系,组合所述第一数据和所述第二数据,得到第三待分析数据。
可选地,数据组合模块具体还被配置为执行:
根据所述第三待分析数据中与对应的子维度组合包括的维度对应的数据,对所述第三待分析数据进行聚合运算,得到各子维度组合对应的至少一组第四待分析数据。
可选地,该装置还包括:
类型转换模块,被配置为执行在从所述数据源标识信息对应的数据源中选择第一待分析数据之后,当所述第一待分析数据中与所述指标项匹配的数据是设定字符类型的第五数据时,根据预先定义的类型映射关系对所述第五数据进行字符类型转换,得到第六数据,以位图方式存储所述第六数据。
可选地,该装置还包括:
数据更新模块,被配置为执行在从所述数据源标识信息对应的数据源中选择第一待分析数据之后,当满足所述操作指令指示的时间间隔时,删除本地数据表的所述第一待分析数据;
当不满足所述操作指令指示的时间间隔的情况下,将新获取的所述第一待分析数据存储到所述本地数据表。
根据本公开实施例的第三方面,提供一种服务器,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如本公开任意实施例提供的数据分析方法。
根据本公开实施例的第四方面,提供一种数据分析系统,包括如本公开任意实施例提供的服务器,还包括:
存储装置,与所述服务器通信连接,被配置为执行接收所述服务器输出的计算结果,以维度为索引存储所述计算结果,其中,所述维度基于用户输入所述服务器的操作指令确定;
图形生成装置,与所述存储装置通信连接,被配置为执行获取所述存储装置中的所述计算结果,生成所述计算结果对应的展示图形。
根据本公开实施例的第五方面,提供一种存储介质,当所述存储介质中的指令由本公开任意实施例所述的服务器的处理器执行时,使得所述服务器能够执行如本公开任意实施例提供的所述的数据分析方法。
根据本公开实施例的第六方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由服务器的处理器执行时,实现本公开任意实施例所述的数据分析方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
基于全维度组合对第一待分析数据进行分组,得到第二待分析数据,并根据操作指令指示的分析类型对该第二待分析数据进行分析,得到第一分析结果;组合第一分析结果中与操作指令指示的指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,然后,按照子维度组合对第三待分析数据进行分组,得到各子维度组合对应的第四待分析数据,根据分析类型对每组第四待分析数据进行分析,得到第二分析结果,并将第一分析结果和第二分析结果作为数据分析结果。由于子维度组合的计算可以利用全维度组合的计算结果,简化了作业逻辑,可以实现计算结果快速输出,避免相关技术中数据分析方式的高延时、效率低的问题,可以提供百亿数据集下的多维聚合能力。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是相关技术示出的一种多维分析中多维数据集操作的示意图。
图2是根据一示例性实施例示出的一种多维分析中多维数据集操作的示意图。
图3是根据一示例性实施例示出的一种数据分析方法的流程图。
图4是根据一示例性实施例示出的一种生成第三待分析数据的示意图。
图5是根据一示例性实施例示出的另一种数据分析方法的流程图。
图6是根据一示例性实施例示出的又一种数据分析方法的流程图。
图7是根据一示例性实施例示出的一种数据分析装置框图。
图8是根据一示例性实施例示出的一种服务器的一般结构的结构框图。
图9是根据一示例性实施例示出的一种数据分析系统的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是相关技术示出的一种多维分析中多维数据集操作的示意图。如图1所示,一个四个维度的CUBE(多维数据集),如果采用逐层降维的方式,则需要进行五层的拆分、逐层聚合。这种方案计算复杂,不能满足实时性的需求,并且如果某层想要利用上层的聚合结果减少计算输入量,需要进行复杂的剪枝逻辑才能保证结果正确性。
为了满足实时性的需求,本公开实施例将逐层降维计算压缩为两层计算,即全维度组合计算和子维度组合计算。图2是根据一示例性实施例示出的一种多维分析中多维数据集操作的示意图。如图2所示,本公开实施例按照维度组合方式对多维数据集进行降维,得到全维度组合和子维度组合。与图1展示的方式相比,本实施例无需通过逐层降维的方式对多维数据集进行降维,而是将多维数据集按照维度组合拆分为全维度组合和子维度组合,对全维度组合对应的数据进行分析计算,并且子维度组合计算可以运用全维度的计算结果,可以简化作业逻辑,提高数据分析的实时性。本公开实施例中,假设获取了用户输入的操作指令,则该操作指令中的所有维度的组合包括全维度组合和子维度组合。其中,全维度组合是包括该操作指令中的全部维度的组合,子维度组合是该操作指令中所有维度的组合中除全维度组合之外的组合。全维度组合计算是按照全维度组合对待分析数据进行分组,根据操作指令中的分析类型对各组数据中与指标项匹配的数据进行分析计算。对全维度组合的计算结果进行数据膨胀,得到新的待分析数据。子维度组合计算是按照子维度组合对新的待分析数据进行分组,根据操作指令中的分析类型对各组数据中与指标项匹配的数据进行分析计算。通过本实施例实现子维度组合计算可以利用按照全维度组合聚合之后的分析结果,既可以简化作业逻辑,又可以满足实时性需求。
图3是根据一示例性实施例示出的一种数据分析方法的流程图,如图3所示,该方法可以通过数据分析装置执行,该装置可以由软件和/或硬件实现,并通常配置于服务器或服务器集群。如图3所示,该方法包括以下步骤。
在步骤S11中,解析操作指令。
需要说明的是,操作指令包括数据源标识信息、维度、分析类型和指标项。
其中,分析类型用于指示对所述指标项对应的数据记录进行计算的运算类型。可选的,运算类型可以是聚合函数,例如,求和(Sum)、统计数量(Count)和统计不重复结果的数量(count distinct)等。例如,如果要统计访问次数,则可以采用的分析类型是求和类型。如果要统计访问人数,则可以采用的分析类型是统计不重复结果的数量。
其中,维度是事物或现象的某种特征,如性别、地区、时间等都是维度。指标项是在数据分析中待分析的数据记录的数据标识字段。例如,指标项可以是设备号,其代表在数据分析中待分析的是设备号这一标识字段对应的数据记录。
数据源标识信息用于确定数据源,数据源中存储有实时产生的用户数据。
示例性地,识别操作指令包括的数据源标识信息字段、维度字段、分析类型字段和指标项字段,分别获取对应字段处填充的内容信息,得到数据源标识信息、维度、分析类型以及指标项。其中,操作指令可以基于结构化查询语言编写。用户在编写操作指令时,数据源标识信息字段、维度字段、分析类型字段和指标项字段等的位置关系要遵循预先设定的编写规则。以基于SQL编写的操作指令为例,操作指令可以是“SELECT city,sex,uv(deviceID) FROM person GROUP BY CUBE(city,sex)…”,其指示的内容是从数据源person中获取city、sex和deviceID 对应的数据,并基于所获取的数据按照(city,sex)进行多维组合,基于多维组合结果分析访问人数。其中,city和sex是维度字段,uv是分析类型字段,括号中的deviceID是指标项字段,person是数据源标识信息字段。
在步骤S12中,从所述数据源标识信息对应的数据源中选择第一待分析数据,所述第一待分析数据中的每条数据记录包括分别与所述维度和所述指标项匹配的数据。
具体地,匹配维度和数据源标识信息对应的数据源中的数据标识字段,得到与维度匹配的第一数据标识字段,获取第一数据标识字段对应的第三数据。匹配指标项和数据源标识信息对应的数据源中的数据标识字段,得到与指标项匹配的第二数据标识字段,获取第二数据标识字段对应的第四数据。组合第三数据和第四数据得到第一待分析数据。
示例性地,根据数据源标识信息确定数据源。例如,数据源可以是分布式发布订阅消息系统Kafka中名为person的数据表。匹配维度和数据表中的数据标识字段(例如列字段),得到与维度匹配的第一列字段,获取数据表中第一列字段对应的数据记录,作为第三数据。匹配指标项和数据表中的数据标识字段(例如列字段),得到与指标项匹配的第二列字段,获取数据表中第二列字段对应的数据记录,作为第四数据;根据第三数据和第四数据在数据表中的对应关系,组合第一列字段对应的第三数据和第二列字段对应的第四数据,得到第一待分析数据,并在本地数据表中缓存第一待分析数据。
例如,由Kafka读取表名是person的数据表。匹配地域与数据表的列字段,得到与地域匹配的第一列字段,即地域列字段,获取数据表中地域列字段对应的数据记录。采用相似的方法获取其它维度对应的数据记录,以及指标项对应的数据记录,得到第一待分析数据。需要说明的是,person是对数据表名的举例,在实际应用中数据表并不限于person,还可以是其它名称的数据表。
在步骤S13中,按照全维度组合对所述第一待分析数据进行分组,得到至少一组第二待分析数据,根据所述分析类型对每组所述第二待分析数据中与所述指标项匹配的数据进行分析,得到第一分析结果。
其中,全维度组合是包括操作指令中的全部维度的组合。需要说明的是,维度组合基于维度的任意组合形成。例如,地域和性别两个维度在进行任意组合后,得到(city=aa,sex=bb)、(city=cc,sex=null)、(city=null,sex=dd)和(city=null,sex=null),分别简写为(city,sex)、(city)、(sex)和()。其中,(city,sex)表示限定地域和性别维度对应的元素(或称为数据记录)的取值,即为全维度组合。(city)表示限定地域对应的数据记录的取值,不限定性别对应的数据记录的取值,即为一种子维度组合。(sex)表示限定性别对应的数据记录的取值,不限定地域对应的数据记录的取值,即为另一种子维度组合。()表示不限定地域对应的数据记录的取值和不限定性别对应的数据记录的取值,即为又一种子维度组合。
具体地,确定包括操作指令中的全部维度的全维度组合;根据第一待分析数据中与全维度组合包括的维度对应的数据,对第一待分析数据进行聚合运算,得到至少一组第二待分析数据。其中,聚合运算是指将维度相同且数值相同的第一待分析数据聚合为一组,将聚合运算得到的每组数据称为第二待分析数据。
示例性地,确定操作指令中包含的维度的任意组合。在维度的任意组合中,将包含全部维度的组合作为全维度组合,例如,上述示例中的(city,sex)可以作为全维度组合。根据全维度组合中各个维度对应的数据记录对第一待分析数据进行分组处理,将同一维度下具有相同取值的数据记录分成一组。例如,将city是北京,sex是男性的数据记录分成一组。将city是北京,sex是女性的数据记录分成一组。将city是天津,sex是男性的数据记录分成一组。将city是天津,sex是女性的数据记录分成一组。以此类推,完成对第一待分析数据的分组。需要说明的是,维度并不限于上述city和sex,还可以是其它维度,并且维度的数量也不限定是2个。
假设第一待分析数据包括“(city:Beijing,sex:man,deviceID:1),(city:Beijing,sex:man, deviceID:1),(city:Beijing,sex:man,deviceID:1),(city:Beijing,sex:man, deviceID:2),(city:Beijing,sex:woman, deviceID:3)……”,在基于city和sex分组后,得到(city:Beijing,sex:man, deviceID:[1,2]), (city:Beijing,sex:woman, deviceID:3)。需要说明的是,其它城市具有与北京呈现相似的分组规律,此处不再一一列举。
假设指标是uv,即统计访问人数,则基于指标uv指示的分析类型对同一组数据内的deviceID对应的数据记录进行聚合分析,得到第一分析结果。例如,第一分析结果包括:(city:Beijing,sex:man, deviceID:[1,2],uv:2), (city:Beijing,sex:woman,deviceID:3,uv:1)。在基于全维度组合进行分组后,重复的数据记录会被分到一组,组内数据进行聚合计算,会聚合重复地数据记录,减少之后计算的数据压力。其它指标的处理方式相似,此处不再赘述。
在步骤S14中,组合所述第一分析结果中与所述指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,按照所述子维度组合对所述第三待分析数据进行分组,得到各子维度组合对应的至少一组第四待分析数据。
其中,子维度组合为基于全部维度得到的所有组合中除全维度组合之外的组合。以操作指令包括city和sex为例,子维度组合包括(city=aa,sex=null)、(city=null,sex=bb)和(city=null,sex=null)。
具体地,获取第一分析结果中与指标项匹配的第一数据;获取子维度组合中与维度匹配的第二数据;根据第一分析结果中全维度组合与指标项的数据对应关系,组合第一数据和第二数据得到第三待分析数据。
例如,获取每一条第一分析结果中与指标项匹配的第一数据,将第一数据与每个子维度组合中与维度匹配的第二数据进行组合,生成第三待分析数据。即针对每一条第一分析结果进行数据膨胀,生成第三待分析数据。如果维度总数是N,则每一条全维度数据(即第一分析结果)会膨胀成2N-1条子维度数据(即第三待分析数据)。由于之前的步骤进行了数据去重,膨胀后的数据会大大减少,可以满足支持超大数据集的需求。图4是根据一示例性实施例示出的一种生成第三待分析数据的示意图。如图4所示,以第一分析结果是(city:Beijing,sex:man, deviceID:[1,2],uv:2)为例,获取第一分析结果中与指标项deviceID匹配的第一数据,即获取deviceID:[1,2],获取子维度组合中与维度匹配的第二数据,即获取( city:Beijing,sex:null)、( city:null,sex:man)和( city:null,sex:null)共3个子维度。相似的,对(city:Beijing,sex:woman, deviceID:3),获取第一分析结果中与指标项deviceID匹配的第一数据,即获取deviceID:3,获取子维度组合中与维度匹配的第二数据,即获取( city:Beijing,sex:null)、(city:null,sex:woman)和( city:null,sex:null)共3个子维度。根据第一分析结果中全维度组合与指标项的数据对应关系,分别将不同第一分析结果对应的第一数据和第二数据进行组合,得到第三待分析数据。即组合deviceID:[1,2]和( city:Beijing,sex:null)得到(city:Beijing,sex:null, deviceID:[1,2])。组合deviceID:[1,2]和( city:null,sex:man)得到(city:null,sex:man, deviceID:[1,2])。组合deviceID:[1,2]和(city:null,sex:null)得到(city:null,sex:null, deviceID:[1,2])。组合deviceID:3 和(city:Beijing,sex:null)得到( city:Beijing,sex:null,deviceID:3)。组合deviceID:3 和(city:null,sex:woman)得到( city:null,sex:woman,deviceID:3)。组合deviceID:3 和(city:null,sex:null)得到( city:null,sex:null,deviceID:3)。
具体地,根据第三待分析数据中与对应的子维度组合包括的维度对应的数据,对第三待分析数据进行聚合运算,得到各子维度组合对应的至少一组第四待分析数据。由于子维度组合为基于全部维度得到的所有组合中除全维度组合之外的组合。确定维度组合中除全维度组合之外的剩余组合,即为子维度组合。根据每个子维度组合中的维度对应的数据记录对第三待分析数据进行聚合运算,得到各子维度组合对应的至少一组第四待分析数据。假设以city和sex两个维度为例,则将(city=cc,sex=null)、(city=null,sex=dd)和(city=null,sex=null)作为子维度的组合。根据每个子维度组合中的维度对应的数据记录对第三待分析数据进行分组处理,同一维度下数据记录相同的归为一组。假设第三待分析数据包括:(city:Beijing,sex:null, deviceID:[1,2])、(city:null,sex:man,deviceID:[1,2])、(city:null,sex:null, deviceID:[1,2])、( city:Beijing,sex:null,deviceID:3)、( city:null,sex:woman, deviceID:3)、( city:null,sex:null,deviceID:3)……,基于子维度组合对第三待分析数据进行分组,得到分组结果包括:子维度组合(city= Beijing,sex=null)对应的第四待分析数据(city:Beijing,sex:null,deviceID:[1,2])和( city:null,sex:null, deviceID:3),子维度组合(city=null,sex=null)对应的第四待分析数据(city:null,sex:null, deviceID:[1,2])和( city:null,sex:null, deviceID:3),子维度组合(city:null,sex:man)对应的第四待分析数据(city:null,sex:man, deviceID:[1,2]),以及子维度组合(city:null,sex:woman)对应的第四待分析数据(city:null,sex:woman, deviceID:3)。
在步骤S15中,根据所述分析类型对每组所述第四待分析数据中与所述指标项匹配的数据进行分析,得到第二分析结果,将所述第一分析结果和所述第二分析结果作为数据分析结果。
具体地,根据操作指令包括的分析类型对每组第四待分析数据中与指标项匹配的数据进行分析步骤包括:根据操作指令包括的分析类型,分别对每个子维度组合对应的第四待分析数据内的指标项匹配的数据记录进行分析,得到第二分析结果;将第一分析结果和第二分析结果作为数据分析结果。由于操作指令中包含了对指标项采用何种分析类型进行分析,获取每个子维度组合中同一组内的指标项匹配的数据记录(例如上述示例中的deviceID),根据分析类型对所获取的数据记录进行相应的运算处理,得到第二分析结果。由于本步骤是计算子维度组合下的指标项,而对第一待分析数据的多维分析包括维度的任意组合下的指标项计算,因此,将第一分析结果和第二分析结果作为对第一待分析数据的多维分析的分析结果,分别实时输出第一分析结果和第二分析结果到设定的存储装置,以便于用户查询多维分析结果时实时输出计算结果,具有低延时的优势。而传统的批处理系统是在用户查询时才开始计算,高延迟在所难免。
本公开实施例通过基于全维度组合对第一待分析数据进行分组,得到第二待分析数据,并根据操作指令指示的分析类型对该第二待分析数据进行分析,得到第一分析结果;组合第一分析结果中与操作指令指示的指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,然后,按照子维度组合对第三待分析数据进行分组,得到各子维度组合对应的第四待分析数据,根据分析类型对每组第四待分析数据进行分析,得到第二分析结果,并将第一分析结果和第二分析结果作为数据分析结果。由于子维度组合的计算可以利用全维度组合的计算结果,简化了作业逻辑,可以实现计算结果快速输出,避免相关技术中数据分析方式的高延时、效率低的问题,可以提供百亿数据集下的多维聚合能力。
图5是根据一示例性实施例示出的另一种数据分析方法的流程图,如图5所示,该方法包括:
在步骤S21中,解析操作指令。
需要说明的是,操作指令的编写规则和解析规则基于SQL 中多维数据集CUBE运算符的语法确定。将解析规则内置于执行本公开实施例的数据分析方法的大数据分析引擎中,进而,在检测到用户输入的操作指令后,基于解析规则解析该操作指令得到操作指令的内容。其中,操作执行的内容包括数据源标识信息、维度、分析类型和指标项等。
在步骤S22中,基于数据源标识信息确定数据源。
在步骤S23中,获取所述数据源的数据更新周期,根据所述数据更新周期确定读取周期。
例如,可以设置读取周期与数据更新周期相同,或者与数据更新周期呈现倍数关系。这里的倍数关系可以是整数倍也可以是非整数倍,本公开实施例并不作具体限定。
在步骤S24中,按照所述读取周期,从所述数据源读取第一待分析数据。
例如,按照上述读取周期,实时由数据源中上一次读取数据之后新产生的数据记录中读取分别与维度和指标项匹配的数据记录,作为第一待分析数据,并缓存第一待分析数据于本地数据表中。
在步骤S25中,判断所述第一待分析数据中与所述指标项匹配的数据是否是设定字符类型的第五数据,若是,则执行步骤S26,否则执行步骤S27。
在步骤S26中,根据预先定义的类型映射关系对所述第五数据进行字符类型转换,得到第六数据。
示例性地,可以预先规定哪些字符类型的数据记录的字符类型需要进行类型转换,并且规定转换后的字符类型。例如,预先规定字符串类型的数据记录的字符类型需要转换成整型。如果在数据记录中包含string类型的数据,则需要对string类型的数据进行预处理,即将string类型的数据记录批量转换成long类型。可以基于预先规定的映射关系进行类型转换。映射关系可以是指定哪个字符串对应哪个数字。在进行类型转换时,根据该映射关系确定设定类型的数据记录对应的数字,采用新确定的数字替换字符串类型的数据记录,后期计算是对数字进行,简化了计算复杂度,达到便于计算的效果。此外,以整型存储数据记录可以减少对存储空间的占用。以deviceID为例,通过预先规定的映射关系将string类型的deviceID转换成long类型的id,那么数据记录(city:Beijing,sex:man, deviceID:0xqdnoih)经类型转换后变成(city:Beijing,sex:man, id:1)。
在步骤S27中,以位图方式存储数据记录。
其中,位图是一个数组的每一个数据的每一个二进制位表示一个数据,0表示数据不存在,1表示数据存在。由于采用了Bit为单位来存储数据,可以大大节省存储空间。由于一个long类型的数据记录需要占用4byte的存储空间,1个byte等于8bit,则存储一个long类型的数据记录需要32bit。如果存储2个long类型的数据记录,则需要占用64bit位的存储空间。如果采用bitmap方式将每个long类型的数据记录映射到1bit进行存储,则可以通过2bit位存储原来需要占用64bit位存储空间的数据记录,大大减少了对存储空间的占用。
示例性的,当数据记录中不包含设定类型的数据时,基于位图方式存储该数据记录。当数据记录中包含设定类型的数据时,对设定类型的数据进行类型转换,基于位图方式存储转换后的数据记录。
在步骤S28中,解析操作指令得到时间跨度。
以基于SQL编写的操作指令为例,操作指令可以是“SELECT city,sex,uv(deviceID) FROM person GROUP BY CUBE(city,sex) increment (time,INTERVAL 'x'DAY, INTERVAL 'y'MINUTE)”, 其指示的内容是从数据源person中获取city、sex和deviceID 对应的数据,并基于所获取的数据按照(city,sex)进行多维组合,基于多维组合结果分析访问人数,以y分钟为输出间隔输出访问人数,且数据源person的缓存数据的时间跨度是x天。其中,increment字段后面的括号中第一个INTERVAL的参数是x,x表示缓存数据的时间跨度,其取值可以是一天或半天,或几个小时等。本公开实施例时间跨度的具体取值并不作具体限定。如果时间跨度是一天,则获取与时间跨度对应的规定时刻,可以在规定时刻清空缓存中的数据记录。例如,规定在每天零点清空缓存的数据记录等。increment字段后面的括号中第二个INTERVAL的参数是y,y表示分析结果的输出间隔,其取值可以是1分钟,半分钟等满足实时需要的时间间隔,本公开实施例对输出间隔的具体取值并不作具体限定。
在步骤S29中,判断系统时间是否满足操作指令指示的时间跨度,若是,则执行步骤S210,否则执行步骤S211。
例如,将系统时间与时间跨度对应的规定时刻进行比较,如果两者相同,则确定系统时间满足操作指令指示的时间跨度,否则,确定系统时间不满足操作指令指示的时间跨度。
在步骤S210中,删除本地数据表的所述第一待分析数据。
在步骤S211中,将新获取的所述第一待分析数据存储到所述本地数据表。
在步骤S212中,按照全维度组合对所述第一待分析数据进行分组,得到至少一组第二待分析数据,根据所述分析类型对每组所述第二待分析数据中与所述指标项匹配的数据进行分析,得到第一分析结果。
在步骤S213中,组合所述第一分析结果中与所述指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,按照所述子维度组合对所述第三待分析数据进行分组,得到各子维度组合对应的至少一组第四待分析数据。
在步骤S214中,根据所述分析类型对每组所述第四待分析数据中与所述指标项匹配的数据进行分析,得到第二分析结果,将所述第一分析结果和所述第二分析结果作为数据分析结果。
在步骤S215中,根据所述操作指令指示的输出间隔,输出数据分析结果给设定存储装置。
例如,根据输出间隔实时输出数据分析结果给设定存储装置。其中,设定存储装置可以是数据存储引擎,例如kudu,kudu是一种具有较强索引的列式存储引擎。可以采用以维度为索引的方式,将计算结果存入kudu。
本公开实施例通过将解析规则内置于执行本公开的数据分析方法的大数据分析引擎中,在检测到操作指令时,可以基于解析规则解析该操作指令,降低了系统的使用门槛,用户通过一句SQL就能指挥大数据分析引擎完成所有复杂的计算。此外,通过字符类型转换处理,减少了数据记录占用的存储空间。还通过位图方式存转换后的数据记录,可以进一步减少数据记录占用的存储空间。
一示例性实施例中,可以通过Flink实时计算平台实现多维数据计算并快速输出计算结果。其中,Flink实时计算平台是一种流式的数据流执行引擎,可以通过多台服务器按照Flink系统架构搭建Flink实时计算平台。以计算uv为例,说明本公开实施例的数据分析方法的执行流程。图6是根据一示例性实施例示出的又一种数据分析方法的流程图,如图6所示,该方法包括:
在步骤S31中,获取用户输入的SQL语句,解析SQL语句。
示例性的,获取用户输入的SQL语句。例如,SQL语句是SELECT city,sex,uv(id)FROM person GROUP BY CUBE(city,sex) increment (time,INTERVAL '1'DAY, INTERVAL'1'MINUTE)。其指示的内容是从数据源person中获取city、sex和deviceID 对应的数据,将字符串类型的deviceID转换成整型的id,并基于所获取的数据按照(city,sex)进行多维组合,基于多维组合结果分析访问人数,以1分钟为输出间隔输出访问人数,且数据源person的缓存数据的时间跨度是1天。解析SQL语句得到数据源标识信息person,维度city和sex,分析类型(uv指示的分析类型是统计不重复结果的数量),指标项id(对应转换为整型的deviceID),存数据的时间跨度1天,以及分析结果的输出间隔1分钟。
在步骤S32中,从所述数据源标识信息对应的数据源中选择第一待分析数据,并缓存于本地数据表。
示例性的, 由操作指令包含的数据源标识信息指示的数据源中读取分别与city和sex两个维度,以及与deviceID对应的数据,作为第一待分析数据,并将第一待分析数据存储于HBase数据库中。例如,从操作指令指示的数据源中读取第一待分析数据,其中,第一待分析数据可以是(city:Beijing,sex:man, id:1),(city:Beijing,sex:man, id:1),(city:Beijing,sex:man, id:1),(city:Beijing,sex:man, id:2),(city:Beijing,sex:woman, id:3)。需要说明的是,第一待分析数据还可以包括其它城市的数据或者其它维度的数据,并不限于上述列举的几条数据。
对HBase数据库中缓存的数据记录进行预处理,以将字符串类型的数据记录批量转换成整型,然后,通过bitmap存储id以减少对存储空间的占用。可选地,基于操作指令指示的时间跨度定期清理缓存数据,以避免缓存中存储大量的数据而影响数据计算效率。
在步骤S33中,对第一待分析数据进行全维度组合计算。
示例性的,以city和sex对应的数据记录对第一待分析数据进行分组处理,将city和sex的数据记录分别相同的第一待分析数据分到一组,得到至少一组第二待分析数据。对同一组的第二待分析数据内的id对应的数据记录进行访问人数分析,得到全维度下的第一分析结果。例如,假设第一待分析数据可以是(city:Beijing,sex:man, id:1),(city:Beijing,sex:man, id:1),(city:Beijing,sex:man, id:1),(city:Beijing,sex:man,id:2),(city:Beijing,sex:woman, id:3)。将相同city和相同sex的第一待分析数据分为一组,得到(city:Beijing,sex:man, id:[1,2])以及(city:Beijing,sex:woman, id:[3]),即第二待分析数据为(city:Beijing,sex:man, id:[1,2])以及(city:Beijing,sex:woman, id:[3])。分别对各第二待分析数据中的id对应的数据记录进行访问人数分析可以是基于数据记录id:[1,2]可知(city:Beijing,sex:man)维度的访问人数是2,得到分析结果是uv:2,以及,基于数据记录id:[3]可知(city:Beijing,sex:woman)的访问人数是1,得到分析结果是uv:1。将(city:Beijing,sex:man, id:[1,2],uv:2)以及(city:Beijing,sex:woman, id:[3],uv:1)作为第一分析结果。如果时间间隔是1分钟,则按分钟实时输出第一分析结果。将第一分析结果按照操作指令指示的时间间隔实时输出给设定存储装置。如果时间间隔是1分钟,则按分钟实时输出全维度访问人数分析结果。本步骤可以聚合重复数据,减少之后计算的数据压力。
在步骤S34中, 针对全维度下的第一分析结果进行数据膨胀,生成各个子维度组合对应的第三待分析数据。
示例性的,对于第一分析结果中的(city:Beijing,sex:man, id:[1,2],uv:2),经过数据膨胀,得到(city:Beijing,sex:null, id:[1,2])、(city:null,sex:man, id:[1,2])和(city:null,sex:null, id:[1,2])。对于第一分析结果中的(city:Beijing,sex:woman, id:[3],uv:1),经过数据膨胀,得到(city:null,sex:woman, id:3)、(city:Beijing,sex:null, id:3)和(city:null,sex:null, id:3)。将(city:Beijing,sex:null,id:[1,2])、(city:null,sex:man, id:[1,2])、(city:null,sex:null, id:[1,2])、(city:null,sex:woman, id:3)、(city:Beijing,sex:null, id:3)和(city:null,sex:null, id:3)作为第三待分析数据。
在步骤S35中,基于第三待分析数据计算全部子维度组合的访问人数,作为第二分析结果,并按照操作指令指示的时间间隔输出所述第二分析结果。
示例性的,分别基于各子维度组合中维度对应的数据记录对第三待分析数据进行分组处理,得到第四待分析数据。即基于city:Beijing对应的数据记录对第三待分析数据分组,基于sex:man对应的数据记录对第三待分析数据分组,基于sex:woman对应的数据记录对第三待分析数据分组,以及基于city:null,sex:null对应的数据记录对第三待分析数据分组,得到(city:nul,sex:null,id[1,2,3])、(city:Beijing,sex:null, id[1,2,3])、(city:null,sex:man,id[1,2])和(city:null,sex:woman, id:3)。将(city:nul,sex:null,id[1,2,3])、(city:Beijing,sex:null, id[1,2,3])、(city:null,sex:man,id[1,2])和(city:null,sex:woman, id:3)作为第四待分析数据。基于每个子维度组合对应的第四待分析数据内的id对应的数据记录,计算对应子维度组合下的访问人数,按照操作指令指示的时间间隔输出每个子维度组合对应的访问人数。如果时间间隔是1分钟,则按分钟实时输出子维度组合对应的访问人数。例如,基于数据记录id[1,2,3]可知(city:nul,sex:null)维度的访问人数是3,得到分析结果是uv:3。基于数据记录id[1,2,3]可知(city:Beijing ,sex:null)维度的访问人数是3,得到分析结果是uv:3。基于数据记录id[1,2]可知(city:null ,sex:man)维度的访问人数是2,得到分析结果是uv:2。基于数据记录id:3可知(city:null ,sex:woman)维度的访问人数是1,得到分析结果是uv:1。将(city:nul,sex:null,id[1,2,3],uv:3)、(city:Beijing,sex:null, id[1,2,3],uv:3)、(city:null,sex:man,id[1,2],uv:2)和(city:null,sex:woman, id:3,uv:1)作为第二分析结果。如果时间间隔是1分钟,则按分钟实时输出第二分析结果。
需要说明的是,在数据分组后,每个维度对应的数据量可能有很大的差别,可能出现某些维度数据量特别大的情况。考虑到这种情况,在系统中内置了数据倾斜策略,以解决大数据系统中常见的热点数据问题。其中,数据倾斜策略包括:本地预聚合和先打散再聚合。其中,本地预聚合的含义包括将数据现在本地进行一次聚合,再发送给下游的节点进行计算再输出。先打散再聚合的含义包括先hash打散成多份,分给多个几点分别计算,再由汇总节点进行汇总,可以减少下游节点的计算压力。假设有1万条数据,通过hash打散成多份,将打散后得到的多分数据分别分给下游的多个节点进行计算,在由汇总节点对这5个节点的计算结果进行汇总再输出。
在步骤S36中,通过kudu存储第一分析结果和第二分析结果,所述一分析结果和第二分析结果作为数据分析结果。
示例性的,输出第一分析结果和第二分析结果到kudu,以通过kudu存储第一分析结果和第二分析结果。
在步骤S37中,通过图形化的分析工具读取kudu中的数据分析结果,并以图形的形式展示数据分析结果。
其中,数据分析结果包括历史数据分析结果和Flink实时计算平台实时输出的数据分析结果。
本公开实施例通过先基于第一待分析数据计算全维度下的第一分析结果,再基于第一分析结果计算各个子维度组合的第二分析结果,避免逐层降维方案计算复杂的问题,简化了作业逻辑。同时,全维度组合计算可以聚合重复数据,减少后续数据膨胀处理的数据量,可以提供百亿数据集下的多维聚合能力,可以同时计算各种维度组合下的几十种指标,具有强聚合的优势。此外,本公开实施例中各种维度组合下的数据分析结果是基于操作指令指示的时间间隔实时输出的,避免批处理系统的高延时问题。
图7是根据一示例性实施例示出的一种数据分析装置框图。参照图7,该装置包括指令解析模块41,数据选择模块42、第一结果确定模块43、数据组合模块44和第二结果确定模块45。
指令解析模块41,被配置为执行解析操作指令,所述操作指令包括数据源标识信息、维度、分析类型和指标项;
数据选择模块42,被配置为执行从所述数据源标识信息对应的数据源中选择第一待分析数据,所述第一待分析数据中的每条数据记录包括分别与所述维度和所述指标项匹配的数据;
第一结果确定模块43,被配置为执行按照全维度组合对所述第一待分析数据进行分组,得到至少一组第二待分析数据,根据所述分析类型对每组所述第二待分析数据中与所述指标项匹配的数据进行分析,得到第一分析结果;其中,所述全维度组合是包括所述操作指令中的全部维度的组合;
数据组合模块44,被配置为执行组合所述第一分析结果中与所述指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,按照所述子维度组合对所述第三待分析数据进行分组,得到各子维度组合对应的至少一组第四待分析数据;其中,所述子维度组合为基于所述全部维度得到的所有组合中除所述全维度组合之外的组合;
第二结果确定模块45,被配置为执行根据所述分析类型对每组所述第四待分析数据中与所述指标项匹配的数据进行分析,得到第二分析结果,将所述第一分析结果和所述第二分析结果作为数据分析结果。
可选地,指令解析模块41具体被配置为执行:
识别所述操作指令包括的数据源标识信息字段、维度字段、分析类型字段和指标项字段,分别获取对应字段处填充的内容信息,得到数据源标识信息、维度、分析类型以及指标项。
可选地,数据选择模块42具体被配置为执行:
匹配所述维度和所述数据源标识信息对应的数据源中的数据标识字段,得到与所述维度匹配的第一数据标识字段,获取所述第一数据标识字段对应的第三数据;
匹配所述指标项和所述数据源标识信息对应的数据源中的数据标识字段,得到与所述指标项匹配的第二数据标识字段,获取所述第二数据标识字段对应的第四数据;
组合所述第三数据和所述第四数据,得到第一待分析数据。
可选地,第一结果确定模块43具体被配置为执行:
确定包括所述操作指令中的全部维度的全维度组合;
根据所述第一待分析数据中与所述全维度组合包括的维度对应的数据,对所述第一待分析数据进行聚合运算,得到至少一组第二待分析数据。
可选地,数据组合模块44具体被配置为执行:
获取所述第一分析结果中与所述指标项匹配的第一数据;
获取子维度组合中与维度匹配的第二数据;
根据所述第一分析结果中全维度组合与指标项的数据对应关系,组合所述第一数据和所述第二数据,得到第三待分析数据。
可选地,数据组合模块44具体还被配置为执行:
根据所述第三待分析数据中与对应的子维度组合包括的维度对应的数据,对所述第三待分析数据进行聚合运算,得到各子维度组合对应的至少一组第四待分析数据。
可选地,该装置还包括:
类型转换模块,被配置为执行在从所述数据源标识信息对应的数据源中选择第一待分析数据之后,当所述第一待分析数据中与所述指标项匹配的数据是设定字符类型的第五数据时,根据预先定义的类型映射关系对所述第五数据进行字符类型转换,得到第六数据,以位图方式存储所述第六数据。
可选地,该装置还包括:
数据更新模块,被配置为执行在从所述数据源标识信息对应的数据源中选择第一待分析数据之后,当满足所述操作指令指示的时间间隔时,删除本地数据表的所述第一待分析数据;
当不满足所述操作指令指示的时间间隔的情况下,将新获取的所述第一待分析数据存储到所述本地数据表。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种服务器的一般结构的结构框图。本公开实施例中服务器可以是一个或多个服务器组成的集群。如图8所示,该服务器包括处理器51;用于存储处理器51的可执行指令的存储器52,存储器52可以包括随机存取存储器(RandomAccess Memory, RAM)和只读存储器(Read-Only Memory,ROM);其中,处理器51被配置为执行所述指令,以实现上述方法。
图9是根据一示例性实施例示出的一种数据分析系统的结构框图。如图9所示,该系统包括:
服务器61,包括处理器,用于存储所述处理器可执行指令的存储器,其中,所述处理器被配置为执行所述指令,以实现本公开任意实施例所述的数据分析方法;
存储装置62,与所述服务器61通信连接,被配置为执行接收所述服务器61输出的计算结果,以维度为索引存储所述计算结果,其中,所述维度基于用户输入所述服务器61的操作指令确定;
图形生成装置63,与所述存储装置62通信连接,被配置为执行获取所述存储装置62中的所述计算结果,生成所述计算结果对应的展示图形。
本公开实施例中,存储装置可以是诸如kudu等的存储引擎,图形生成装置是图形化的分析工具。当用户需要查询实时多维分析结果时,图形生成装置可以由存储装置获取实时计算的多维计算结果,并图形化分析该多维计算结果,得到对应的展示图形,并实时展示。可选地,当用户需要查询历史多维分析结果时,图形生成装置可以由存储装置获取历史多维计算结果,并图形化分析该历史多维计算结果,得到对应的展示图形并展示。
上述实施例中提供的数据分析系统可执行本公开任意实施例所提供的数据分析方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本公开任意实施例所提供的数据分析方法。
在示例性实施例中,还提供了一种包括指令的存储介质,例如存储可执行指令的存储器(52),上述指令可由服务器的处理器(51)执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品中的指令由服务器的处理器执行时,实现上述方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (19)
1.一种数据分析方法,其特征在于,包括:
解析操作指令,所述操作指令包括数据源标识信息、维度、分析类型和指标项;所述分析类型用于指示对所述指标项对应的数据记录进行计算的运算类型;
从所述数据源标识信息对应的数据源中选择第一待分析数据,所述第一待分析数据中的每条数据记录包括分别与所述维度和所述指标项匹配的数据;
按照全维度组合对所述第一待分析数据进行分组,得到至少一组第二待分析数据,根据所述分析类型对每组所述第二待分析数据中与所述指标项匹配的数据进行分析,得到第一分析结果;其中,所述全维度组合是包括所述操作指令中的全部维度的组合;
组合所述第一分析结果中与所述指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,按照所述子维度组合对所述第三待分析数据进行分组,得到各子维度组合对应的至少一组第四待分析数据;其中,所述子维度组合为基于所述全部维度得到的所有组合中除所述全维度组合之外的组合;
根据所述分析类型对每组所述第四待分析数据中与所述指标项匹配的数据进行分析,得到第二分析结果,将所述第一分析结果和所述第二分析结果作为数据分析结果。
2.根据权利要求1所述的方法,其特征在于,所述解析操作指令,包括:
识别所述操作指令包括的数据源标识信息字段、维度字段、分析类型字段和指标项字段,分别获取对应字段处填充的内容信息,得到数据源标识信息、维度、分析类型以及指标项。
3.根据权利要求1所述的方法,其特征在于,所述从所述数据源标识信息对应的数据源中选择第一待分析数据,包括:
匹配所述维度和所述数据源标识信息对应的数据源中的数据标识字段,得到与所述维度匹配的第一数据标识字段,获取所述第一数据标识字段对应的第三数据;
匹配所述指标项和所述数据源标识信息对应的数据源中的数据标识字段,得到与所述指标项匹配的第二数据标识字段,获取所述第二数据标识字段对应的第四数据;
组合所述第三数据和所述第四数据,得到第一待分析数据。
4.根据权利要求1所述的方法,其特征在于,所述按照全维度组合对所述第一待分析数据进行分组,得到至少一组第二待分析数据,包括:
确定包括所述操作指令中的全部维度的全维度组合;
根据所述第一待分析数据中与所述全维度组合包括的维度对应的数据,对所述第一待分析数据进行聚合运算,得到至少一组第二待分析数据。
5.根据权利要求1所述的方法,其特征在于,所述组合所述第一分析结果中与所述指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,包括:
获取所述第一分析结果中与所述指标项匹配的第一数据;
获取子维度组合中与维度匹配的第二数据;
根据所述第一分析结果中全维度组合与指标项的数据对应关系,组合所述第一数据和所述第二数据,得到第三待分析数据。
6.根据权利要求1所述的方法,其特征在于,所述按照所述子维度组合对所述第三待分析数据进行分组,得到各子维度组合对应的至少一组第四待分析数据,包括:
根据所述第三待分析数据中与对应的子维度组合包括的维度对应的数据,对所述第三待分析数据进行聚合运算,得到各子维度组合对应的至少一组第四待分析数据。
7.根据权利要求1所述的方法,其特征在于,在从所述数据源标识信息对应的数据源中选择第一待分析数据之后,还包括:
当所述第一待分析数据中与所述指标项匹配的数据是设定字符类型的第五数据时,根据预先定义的类型映射关系对所述第五数据进行字符类型转换,得到第六数据,以位图方式存储所述第六数据。
8.根据权利要求1-7中任一项所述的方法,其特征在于,在从所述数据源标识信息对应的数据源中选择第一待分析数据之后,还包括:
当满足所述操作指令指示的时间间隔时,删除本地数据表的所述第一待分析数据;
当不满足所述操作指令指示的时间间隔的情况下,将新获取的所述第一待分析数据存储到所述本地数据表。
9.一种数据分析装置,其特征在于,包括:
指令解析模块,被配置为执行解析操作指令,所述操作指令包括数据源标识信息、维度、分析类型和指标项;所述分析类型用于指示对所述指标项对应的数据记录进行计算的运算类型;
数据选择模块,被配置为执行从所述数据源标识信息对应的数据源中选择第一待分析数据,所述第一待分析数据中的每条数据记录包括分别与所述维度和所述指标项匹配的数据;
第一结果确定模块,被配置为执行按照全维度组合对所述第一待分析数据进行分组,得到至少一组第二待分析数据,根据所述分析类型对每组所述第二待分析数据中与所述指标项匹配的数据进行分析,得到第一分析结果;其中,所述全维度组合是包括所述操作指令中的全部维度的组合;
数据组合模块,被配置为执行组合所述第一分析结果中与所述指标项匹配的第一数据、以及与子维度组合中维度匹配的第二数据,得到第三待分析数据,按照所述子维度组合对所述第三待分析数据进行分组,得到各子维度组合对应的至少一组第四待分析数据;其中,所述子维度组合为基于所述全部维度得到的所有组合中除所述全维度组合之外的组合;
第二结果确定模块,被配置为执行根据所述分析类型对每组所述第四待分析数据中与所述指标项匹配的数据进行分析,得到第二分析结果,将所述第一分析结果和所述第二分析结果作为数据分析结果。
10.根据权利要求9所述的装置,其特征在于,所述指令解析模块具体被配置为执行:
识别所述操作指令包括的数据源标识信息字段、维度字段、分析类型字段和指标项字段,分别获取对应字段处填充的内容信息,得到数据源标识信息、维度、分析类型以及指标项。
11.根据权利要求9所述的装置,其特征在于,所述数据选择模块具体被配置为执行:
匹配所述维度和所述数据源标识信息对应的数据源中的数据标识字段,得到与所述维度匹配的第一数据标识字段,获取所述第一数据标识字段对应的第三数据;
匹配所述指标项和所述数据源标识信息对应的数据源中的数据标识字段,得到与所述指标项匹配的第二数据标识字段,获取所述第二数据标识字段对应的第四数据;
组合所述第三数据和所述第四数据,得到第一待分析数据。
12.根据权利要求9所述的装置,其特征在于,所述第一结果确定模块具体被配置为执行:
确定包括所述操作指令中的全部维度的全维度组合;
根据所述第一待分析数据中与所述全维度组合包括的维度对应的数据,对所述第一待分析数据进行聚合运算,得到至少一组第二待分析数据。
13.根据权利要求9所述的装置,其特征在于,所述数据组合模块具体被配置为执行:
获取所述第一分析结果中与所述指标项匹配的第一数据;
获取子维度组合中与维度匹配的第二数据;
根据所述第一分析结果中全维度组合与指标项的数据对应关系,组合所述第一数据和所述第二数据,得到第三待分析数据。
14.根据权利要求9所述的装置,其特征在于,所述数据组合模块具体还被配置为执行:
根据所述第三待分析数据中与对应的子维度组合包括的维度对应的数据,对所述第三待分析数据进行聚合运算,得到各子维度组合对应的至少一组第四待分析数据。
15.根据权利要求9所述的装置,其特征在于,所述装置还包括:
类型转换模块,被配置为执行在从所述数据源标识信息对应的数据源中选择第一待分析数据之后,当所述第一待分析数据中与所述指标项匹配的数据是设定字符类型的第五数据时,根据预先定义的类型映射关系对所述第五数据进行字符类型转换,得到第六数据,以位图方式存储所述第六数据。
16.根据权利要求9-15中任一项所述的装置,其特征在于,所述装置还包括:
数据更新模块,被配置为执行在从所述数据源标识信息对应的数据源中选择第一待分析数据之后,当满足所述操作指令指示的时间间隔时,删除本地数据表的所述第一待分析数据;
当不满足所述操作指令指示的时间间隔的情况下,将新获取的所述第一待分析数据存储到所述本地数据表。
17.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至8中任一项所述的数据分析方法。
18.一种数据分析系统,其特征在于,包括如权利要求17所述的服务器,还包括:
存储装置,与所述服务器通信连接,被配置为执行接收所述服务器输出的数据分析结果,以维度为索引存储所述数据分析结果,其中,所述维度基于用户输入所述服务器的操作指令确定;
图形生成装置,与所述存储装置通信连接,被配置为执行获取所述存储装置中的所述数据分析结果,生成所述数据分析结果对应的展示图形。
19.一种存储介质,当所述存储介质中的指令由权利要求17所述的服务器的处理器执行时,使得所述服务器能够执行如权利要求1至8中任一项所述的数据分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011274970.2A CN112286995B (zh) | 2020-11-16 | 2020-11-16 | 一种数据分析方法、装置、服务器、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011274970.2A CN112286995B (zh) | 2020-11-16 | 2020-11-16 | 一种数据分析方法、装置、服务器、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286995A CN112286995A (zh) | 2021-01-29 |
CN112286995B true CN112286995B (zh) | 2021-07-13 |
Family
ID=74398934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011274970.2A Active CN112286995B (zh) | 2020-11-16 | 2020-11-16 | 一种数据分析方法、装置、服务器、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286995B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557498A (zh) * | 2015-09-25 | 2017-04-05 | 北京国双科技有限公司 | 数据存储方法和装置以及数据查询方法和装置 |
WO2018086761A1 (en) * | 2016-11-10 | 2018-05-17 | Rowanalytics Ltd | Control apparatus and method for processing data inputs in computing devices therefore |
US10127503B2 (en) * | 2015-10-21 | 2018-11-13 | International Business Machines Corporation | Generating multidimensional combination data |
CN110704751A (zh) * | 2019-10-22 | 2020-01-17 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
-
2020
- 2020-11-16 CN CN202011274970.2A patent/CN112286995B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557498A (zh) * | 2015-09-25 | 2017-04-05 | 北京国双科技有限公司 | 数据存储方法和装置以及数据查询方法和装置 |
US10127503B2 (en) * | 2015-10-21 | 2018-11-13 | International Business Machines Corporation | Generating multidimensional combination data |
WO2018086761A1 (en) * | 2016-11-10 | 2018-05-17 | Rowanalytics Ltd | Control apparatus and method for processing data inputs in computing devices therefore |
CN110704751A (zh) * | 2019-10-22 | 2020-01-17 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112286995A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3602351B1 (en) | Apparatus and method for distributed query processing utilizing dynamically generated in-memory term maps | |
AU2016359060B9 (en) | Storing and retrieving data of a data cube | |
US10691646B2 (en) | Split elimination in mapreduce systems | |
US8219564B1 (en) | Two-dimensional indexes for quick multiple attribute search in a catalog system | |
JP2016532199A (ja) | 選択性用データビットインターリーブによるリレーショナルデータベースのマルチカラムインデックスの生成 | |
CN108664516A (zh) | 查询优化方法及相关装置 | |
US11645273B2 (en) | Query execution utilizing probabilistic indexing | |
US11455323B2 (en) | Data processing method and system | |
US11803550B2 (en) | Workload-aware column imprints | |
US20240004858A1 (en) | Implementing different secondary indexing schemes for different segments stored via a database system | |
US20220121711A1 (en) | Delaying exceptions in query execution | |
CN112286995B (zh) | 一种数据分析方法、装置、服务器、系统及存储介质 | |
CN111666302A (zh) | 用户排名的查询方法、装置、设备及存储介质 | |
WO2024108638A1 (zh) | 一种基于分片索引的自适应查询方法和装置 | |
CN116737753A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
US20230091018A1 (en) | Implementing superset-guaranteeing expressions in query execution | |
Colosi et al. | Time series data management optimized for smart city policy decision | |
CN111026759B (zh) | 基于Hbase的报表生成方法及装置 | |
CN112667859A (zh) | 基于内存的数据处理方法及装置 | |
RU2417424C1 (ru) | Способ компрессии многомерных данных для хранения и поиска информации в системе управления базами данных и устройство для его осуществления | |
CN114416761A (zh) | 更新统计信息的方法、装置、设备、介质及产品 | |
CN117520337A (zh) | 一种业务数据聚合和查找方法及系统 | |
CN117648385A (zh) | 适用于多维数据库的内外存压缩及元组更新插入方法 | |
Wang et al. | Group-Scope query and its access method | |
KR20230096180A (ko) | 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 lsm 트리 장치 및 방법 |
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 |