CN106844539A - 实时数据分析方法及*** - Google Patents
实时数据分析方法及*** Download PDFInfo
- Publication number
- CN106844539A CN106844539A CN201611255750.9A CN201611255750A CN106844539A CN 106844539 A CN106844539 A CN 106844539A CN 201611255750 A CN201611255750 A CN 201611255750A CN 106844539 A CN106844539 A CN 106844539A
- Authority
- CN
- China
- Prior art keywords
- data
- analysis
- concordance list
- real
- field
- 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
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/2455—Query execution
-
- 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
-
- 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/2471—Distributed queries
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种实时数据分析方法和实时数据分析***,该实时数据分析方法包括:根据需求构造检索算子、读取算子、和聚合分析算法;根据检索算子和读取算子对索引表和数据表进行检索以获取分析字段数据;以及根据聚合分析算法对分析字段数据进行聚合分析;其中,索引表和数据表均采用key‑value形式的列式存储,索引表配置为分析数据的各个字段与对应的字段数据的索引表。能够提升索引的灵活性和数据聚合分析性能。
Description
技术领域
本发明涉及一种实时数据分析方法和实时数据分析***。
背景技术
随着大数据时代的到来,与传统的数据分析方法相比,一方面由于数据量的***式增长,另一方面由于数据类型的增加,使大数据时代遇到了更大的挑战。面对这些挑战,Hadoop(一种分布式***基础架构)应运而生,解决了离线数据分析的难题。
实时大数据分析是指对规模巨大的数据进行分析,利用大数据技术高效的快速完成分析,达到近似实时的效果,更及时的反映数据的价值和意义。对于实时的数据分析要求,Hadoop因为自身的特点,并不能在这一领域得到应用。基于分布式列式存储的数据分析引擎,利用其灵活的存储结构,在数据导入时,对原始数据的各个字段创建索引,并进行聚合存储,可大大提升数据分析的性能。
基于分布式列式存储引擎的数据分析框架,影响效率的两个核心技术是:数据聚合性能和数据查询性能。
分布式列式存储计算引擎将数据分发到多个节点中,执行过程中需要对各个节点检索到的数据进行汇聚,之后对汇聚的数据进行分组、统计、数据挖掘等计算。目前常用的列式存储方案,如HBase和Mongodb,将数据划分为一个Key(键)和多个Value(值)字段,虽然可以提升字段的提取性能,但是无法天然支持Value字段的聚合运算,并且对单个文档,只能通过一个Key值进行索引。
发明内容
针对相关技术中的上述问题,本发明提出一种实时数据分析方法,能够提升索引的灵活性和数据聚合分析性能。
本发明的技术方案是这样实现的:根据本发明的一个方面,提供了一种实时数据分析方法。
该实时数据分析方法包括:根据需求构造检索算子和聚合分析算法;根据检索算子对索引表和数据表进行检索以获取分析字段数据;以及根据聚合分析算法对分析字段数据进行聚合分析;其中,索引表和数据表均采用key-value形式的列式存储,索引表配置为分析数据的各个字段与对应的字段数据的索引表。
根据本发明的一个实施例,根据检索算子对索引表和数据表进行检索以获取分析字段数据,包括:根据检索算子对索引表进行检索以获取记录标识;对记录标识的集合进行集合运算;根据经过集合运算后的记录标识,在数据表中读取对应的分析字段数据。
根据本发明的一个实施例,分析字段数据以单独列的形式存储于数据表中。
根据本发明的一个实施例,索引表以记录标识中字段的值为索引表的键;以及以记录的数量和记录标识的列表为索引表的值。
根据本发明的一个实施例,以记录值列表、和以单独列的形式存储的分析字段数据为数据表的值。
根据本发明的一个实施例,在记录标识的列表中,记录标识的排列采用升序排列。
根据本发明的一个实施例,在根据检索算子对索引表进行检索以获取记录标识之后,还包括:对记录标识进行归并排序。
根据本发明的一个实施例,集合运算至少包括以下运算中的一种:交运算、差运算、并运算、以及补运算;聚合分析至少包括以下运算中的一种:数量统计、平均值运算、求和运算、最大值运算、以及最小值运算。
根据本发明的一个实施例,在根据聚合分析算法对分析字段数据进行聚合分析之后还包括:获取聚合分析的分析结果,对分析结果进行汇总处理。
根据本发明的另一个方面,提供了一种实时数据分析***。
该实时数据分析***包括:解析模块,用于根据需求构造检索算子和聚合分析算法;检索模块,用于根据检索算子对索引表和数据表进行检索以获取分析字段数据;以及分析模块,用于根据聚合分析算法对分析字段数据进行聚合分析;其中,索引表和数据表均采用key-value形式的列式存储,索引表配置为分析数据的各个字段与对应的字段数据的索引表。
本发明通过对分析数据的各字段构建列到分析数据的索引表,来支持通过各个字段对分析数据的检索、查询。能够扩展列式存储结构的索引灵活性,使列式存储结构支持多字段的检索方式;另一方面,通过列式存储结构,降低了每次数据分析读取的数据量,提升了数据聚合分析的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的实时数据分析方法的流程图;
图2是根据本发明具体实施例的实时数据分析方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种实时数据分析方法。
如图1所示,根据本发明实施例的实时数据分析方法包括以下步骤:
S110,根据需求构造检索算子和聚合分析算法;
S120,根据检索算子对索引表和数据表进行检索以获取分析字段数据;以及
S130,根据聚合分析算法对分析字段数据进行聚合分析;
其中,索引表和数据表均采用key-value形式的列式存储,索引表配置为分析数据的各个字段与对应的字段数据的索引表。分析字段数据是分析数据的一部分。
上述技术方案,在列存储引擎中,分析数据以Key-Value形式存储在数据表中,通过对分析数据的各字段构建列到分析数据的索引表,来支持通过各个字段对分析数据的检索、查询。能够扩展列式存储结构的索引灵活性,使列式存储结构支持多字段的检索方式;另一方面,通过列式存储结构,降低了每次数据分析读取的数据量,提升了数据聚合分析的性能。
根据本发明的一个实施例,S120可以包括以下步骤:
S121,根据检索算子对索引表进行检索以获取记录标识;
S122,对记录标识的集合进行集合运算;
S123,根据经过集合运算后的记录标识,在数据表中读取对应的分析字段数据。
其中,以记录的数量和记录标识的列表为索引表的值(Value)。通过存储记录的数量,可以直观反映检索的记录标识的集合的大小,进而为执行过程优化提供直接参考。
优选地,在记录标识的列表中,记录标识的排列采用升序排列。升序排列的记录标识,可以有效提升多字段检索时的文件集合运算的效率。
具体地,可以通过对索引表的索引表名进行规范化命名来实现索引定位。命名规则如下:
索引表名为:index-type-column;
数据表名为:index-type;
其中,index为索引数据集名称,type为数据类型名称,column为索引字段名称。
索引表存储在列式存储引擎中,键字段为索引的记录中字段的值,值字段存储索引的记录数量和索引的记录列表。索引表的字段名称和字段说明如表1所示:
表1
例如,一条记录为cv1:cv2:cv3,在数据存储的过程中,会自动为该记录生成唯一的标识id,设为id1。存储时,索引表的具体结构如表2所示:
表2
Key 1 | Doc_count 1 | Doc_value 1 |
cv1 | 1 | id1 |
cv2 | 1 | id1 |
cv3 | 1 | id1 |
进一步地,数据表以记录标识为数据表的键;以及以记录值列表、和以单独列的形式存储的分析字段数据为数据表的值。
优选地,分析字段数据以单独列的形式存储于数据表中。为提升数据分析性能,可将分析字段数据添加为单独的列,降低数据读取大小,提升分析性能。
具体地,列式存储的数据表的字段名称和字段说明如表3所示:
表3
字段名称 | 字段说明 |
Key 2 | 记录标识 |
Doc_value 2 | 记录值列表,采用json格式存储 |
{column} | 列式存储字段,用于优化数据分析性能 |
为了采用上述索引表和数据表的结构对分析数据进行存储、同时降低数据索引的大小,可将数据字段分为索引字段数据和分析字段数据。索引字段数据表示为用于进行数据检索的字段,通常可以为字符串、时间类型,通过索引字段数据来定位分析字段数据集。分析字段数据为用于进行数据分析的字段,通常为数字类型,用于数据的统计分析。分析字段数据存储在数据表中。
根据本发明的一个实施例,集合运算可以至少包括以下运算中的一种:交运算、差运算、并运算、以及补运算;实时数据分析目的是提取海量数据的特征,本发明支持的运算方式为:数量统计、均值运算、求和运算、最大值、最小值运算等。聚合分析可以至少包括以下运算中的一种:数量统计、平均值运算、求和运算、最大值运算、以及最小值运算。
根据本发明的一个实施例,在S121之后还可以包括:对记录标识进行归并排序的步骤。
根据本发明的一个实施例,在S130之后还可以包括:
S140,获取聚合分析的分析结果,对分析结果进行汇总处理。
下面结合图2所示,对上述实施例进行具体说明。
在步骤S201中,解析数据分析语句,并提供检索算子,读取检索值覆盖的记录数量,计算检索过程资源损耗,评估检索中间结果集合运算代价与读取数据过滤代价对比,确定检索字段,构造检索算子。之后,确定各个检索算子检索记录集合的操作流程,并根据该操作流程构造分析字段数据的聚合分析算法。
当接收到数据分析请求时,例如需针对用户的消费数据查询北京地区用户的消费趋势,则构造如下的聚合分析算法:
search consume|filter region in‘北京’|group by event_date step 1day|sum(price)_。
其中,consume为消费数据集合,filter关键字表示过滤,group by表示分组操作,即按照日期进行分组,分组的日期步长为1天,最后统计消费金额的总和sum(price)。计算执行过程中的“|”符号,用来区分数据处理的步骤。
在步骤S202中,数据检索过程指通过检索算子和索引表获取记录标识的过程,并将记录标识进行归并排序。因为记录标识存储已经按升序进行排序,所以数据检索过程的时间复杂度为线性复杂度O(n)。
具体地,因为数据可存储于不同的数据节点,因此在进行数据检索的时候,需要将各个节点的数据进行过滤,然后将各节点过滤后的中间结果集进行合并后,再进行聚合操作。合并的过程中按照数据唯一标识进行归并操作。
在步骤S203中,对获取的记录标识的集合,进行集合运算,以确定最终用于分析字段数据读取的记录标识的集合。其中,集合运算是指集合的交、差、并、补运算。例如,查询买入A产品,未买入B产品的用户时,通过分别检索买入A产品的用户标识集合和买入B产品的用户标识集合,进行集合的差运算。
在步骤S204中,进行分析字段数据读取。依据记录标识和读取算子,读取分析字段数据。因为分析字段数据在数据表中存储为独立列,所以可以直接读取。由于只需要分析字段数据而无需进行分析运算,提升了数据聚合分析的性能。
在步骤S205中,依据构造的聚合分析算法,对获取的分析字段数据进行聚合分析。例如,聚合分析sum(price),需要检索出中间结果集合、按照分组模式在各个节点中对price字段做求和运算。
在步骤S206中,获取各个分布式节点中的聚合分析的分析结果,并对分析结果进行汇总处理,将处理结果返回至客户端。
上述步骤S201至步骤S205可在各个执行节点中进行,步骤S206可在服务节点中进行。
根据本发明的实施例,还提供了一种实时数据分析***,包括:
解析模块,用于根据需求构造检索算子和聚合分析算法;
检索模块,用于根据检索算子对索引表和数据表进行检索以获取分析字段数据;以及
分析模块,用于根据聚合分析算法对分析字段数据进行聚合分析;
其中,索引表和数据表均采用key-value形式的列式存储,索引表配置为分析数据的各个字段与对应的字段数据的索引表。
本发明支持五种数据分析类型:上卷、下钻、切面、切块以及旋转。其中上卷指沿着维度的层次向上聚集汇总数据;下钻指沿着维度的层次向下细分汇总数据;切面指在给定的数据立方体的一个维上进行的数据汇总;切块指在给定的数据立方体的两个或多个维上进行数据汇总;旋转的目的是得到不同视角的数据,数据旋转操作相当于基于平面数据将坐标轴旋转。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种实时数据分析方法,其特征在于,包括:
根据需求构造检索算子和聚合分析算法;
根据所述检索算子对索引表和数据表进行检索以获取分析字段数据;以及
根据所述聚合分析算法对所述分析字段数据进行聚合分析;
其中,所述索引表和所述数据表均采用key-value形式的列式存储,所述索引表配置为分析数据的各个字段与对应的字段数据的索引表。
2.根据权利要求1所述的实时数据分析方法,其特征在于,根据所述检索算子对索引表和数据表进行检索以获取分析字段数据,包括:
根据所述检索算子对索引表进行检索以获取记录标识;
对所述记录标识的集合进行集合运算;
根据经过集合运算后的记录标识,在数据表中读取对应的分析字段数据。
3.根据权利要求1所述的实时数据分析方法,其特征在于,
所述分析字段数据以单独列的形式存储于所述数据表中。
4.根据权利要求2所述的实时数据分析方法,其特征在于,
所述索引表以所述记录标识中字段的值为索引表的键;以及
以记录的数量和记录标识的列表为索引表的值。
5.根据权利要求3所述的实时数据分析方法,其特征在于,
以记录值列表、和所述以单独列的形式存储的分析字段数据为数据表的值。
6.根据权利要求4所述的实时数据分析方法,其特征在于,
在所述记录标识的列表中,所述记录标识的排列采用升序排列。
7.根据权利要求2所述的实时数据分析方法,其特征在于,在根据所述检索算子对索引表进行检索以获取记录标识之后,还包括:
对所述记录标识进行归并排序。
8.根据权利要求2所述的实时数据分析方法,其特征在于,
所述集合运算至少包括以下运算中的一种:交运算、差运算、并运算、以及补运算;
所述聚合分析至少包括以下运算中的一种:数量统计、平均值运算、求和运算、最大值运算、以及最小值运算。
9.根据上述权利要求1-8中的任一项所述的实时数据分析方法,其特征在于,在根据所述聚合分析算法对所述分析字段数据进行聚合分析之后还包括:
获取所述聚合分析的分析结果,对所述分析结果进行汇总处理。
10.一种实时数据分析***,其特征在于,包括:
解析模块,用于根据需求构造检索算子和聚合分析算法;
检索模块,用于根据所述检索算子对索引表和数据表进行检索以获取分析字段数据;以及
分析模块,用于根据所述聚合分析算法对所述分析字段数据进行聚合分析;
其中,所述索引表和所述数据表均采用key-value形式的列式存储,所述索引表配置为分析数据的各个字段与对应的字段数据的索引表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611255750.9A CN106844539A (zh) | 2016-12-30 | 2016-12-30 | 实时数据分析方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611255750.9A CN106844539A (zh) | 2016-12-30 | 2016-12-30 | 实时数据分析方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106844539A true CN106844539A (zh) | 2017-06-13 |
Family
ID=59113801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611255750.9A Pending CN106844539A (zh) | 2016-12-30 | 2016-12-30 | 实时数据分析方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844539A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280123A (zh) * | 2017-12-11 | 2018-07-13 | 西安烽火软件科技有限公司 | 一种HBase的列聚合方法 |
CN108920516A (zh) * | 2018-05-31 | 2018-11-30 | 北京字节跳动网络技术有限公司 | 实时分析方法、***、装置及计算机可读存储介质 |
CN109947729A (zh) * | 2017-07-17 | 2019-06-28 | 普天信息技术有限公司 | 一种实时数据分析方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | ***通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与*** |
CN103631910A (zh) * | 2013-11-26 | 2014-03-12 | 烽火通信科技股份有限公司 | 一种分布式数据库多列复合查询的***及方法 |
CN104133858A (zh) * | 2014-07-15 | 2014-11-05 | 武汉邮电科学研究院 | 基于列存储的智能双引擎分析***及方法 |
CN104767813A (zh) * | 2015-04-08 | 2015-07-08 | 江苏国盾科技实业有限责任公司 | 基于openstack的公众行大数据服务平台 |
US20160042019A1 (en) * | 2010-03-08 | 2016-02-11 | Microsoft Technology Licensing, Llc | Columnar Storage of a Database Index |
CN105631003A (zh) * | 2015-12-28 | 2016-06-01 | 北京赛思信安技术股份有限公司 | 支持海量数据分组统计的智能索引构建、查询及维护方法 |
-
2016
- 2016-12-30 CN CN201611255750.9A patent/CN106844539A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | ***通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与*** |
US20160042019A1 (en) * | 2010-03-08 | 2016-02-11 | Microsoft Technology Licensing, Llc | Columnar Storage of a Database Index |
CN103631910A (zh) * | 2013-11-26 | 2014-03-12 | 烽火通信科技股份有限公司 | 一种分布式数据库多列复合查询的***及方法 |
CN104133858A (zh) * | 2014-07-15 | 2014-11-05 | 武汉邮电科学研究院 | 基于列存储的智能双引擎分析***及方法 |
CN104767813A (zh) * | 2015-04-08 | 2015-07-08 | 江苏国盾科技实业有限责任公司 | 基于openstack的公众行大数据服务平台 |
CN105631003A (zh) * | 2015-12-28 | 2016-06-01 | 北京赛思信安技术股份有限公司 | 支持海量数据分组统计的智能索引构建、查询及维护方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947729A (zh) * | 2017-07-17 | 2019-06-28 | 普天信息技术有限公司 | 一种实时数据分析方法及装置 |
CN108280123A (zh) * | 2017-12-11 | 2018-07-13 | 西安烽火软件科技有限公司 | 一种HBase的列聚合方法 |
CN108920516A (zh) * | 2018-05-31 | 2018-11-30 | 北京字节跳动网络技术有限公司 | 实时分析方法、***、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631909B (zh) | 对大规模结构化和非结构化数据联合处理的***及方法 | |
CN103544255B (zh) | 基于文本语义相关的网络舆情信息分析方法 | |
CN105912666B (zh) | 一种面向云平台的混合结构数据高性能存储、查询方法 | |
CN104731945B (zh) | 一种基于HBase的全文检索方法及装置 | |
CN102156711B (zh) | 一种基于云存储的电力全文检索方法及*** | |
CN104077407B (zh) | 一种智能数据搜索***及方法 | |
CN103678491A (zh) | 一种基于Hadoop中小文件优化和倒排索引的方法 | |
CN102426610A (zh) | 微博搜索排名方法及微博搜索引擎 | |
CN110750599B (zh) | 一种基于实体建模的关联信息抽取和显示方法 | |
CN104615734B (zh) | 一种社区管理服务大数据处理***及其处理方法 | |
CN105095091B (zh) | 一种基于倒排索引技术的软件缺陷代码文件定位方法 | |
CN106844539A (zh) | 实时数据分析方法及*** | |
CN104298736A (zh) | 数据集合连接方法、装置及数据库*** | |
CN108241713A (zh) | 一种基于多元切分的倒排索引检索方法 | |
CN107463711A (zh) | 一种数据的标签匹配方法及装置 | |
CN103688256A (zh) | 基于评论信息确定视频质量参数的方法、装置和*** | |
CN107870991A (zh) | 一种论文元数据的相似度计算方法和计算机可读存储介质 | |
CN102169491A (zh) | 一种多数据集中重复记录动态检测方法 | |
CN106980639B (zh) | 短文本数据聚合***及方法 | |
CN103034656A (zh) | 章节内容分层方法和装置、文章内容分层方法和装置 | |
CN101957860A (zh) | 一种发布、搜索信息的方法及装置 | |
CN103365960A (zh) | 电力多级调度管理结构化数据的离线搜索方法 | |
CN106383917A (zh) | 一种基于用户日志的数据处理方法 | |
CN113254517A (zh) | 一种基于互联网大数据的服务提供方法 | |
CN107679097A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |
|
RJ01 | Rejection of invention patent application after publication |