CN113486006A - 数据模型的构建方法及数据查询方法和计算机存储介质 - Google Patents
数据模型的构建方法及数据查询方法和计算机存储介质 Download PDFInfo
- Publication number
- CN113486006A CN113486006A CN202110679511.0A CN202110679511A CN113486006A CN 113486006 A CN113486006 A CN 113486006A CN 202110679511 A CN202110679511 A CN 202110679511A CN 113486006 A CN113486006 A CN 113486006A
- Authority
- CN
- China
- Prior art keywords
- key
- data
- value
- dimension
- events
- 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.)
- Granted
Links
- 238000013499 data model Methods 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000010276 construction Methods 0.000 title claims abstract description 19
- 238000005259 measurement Methods 0.000 claims abstract description 35
- 238000007405 data analysis Methods 0.000 claims abstract description 28
- 230000002776 aggregation Effects 0.000 claims abstract description 26
- 238000004220 aggregation Methods 0.000 claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims abstract description 13
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 10
- 238000012216 screening Methods 0.000 claims description 12
- 238000013500 data storage Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 8
- 230000000717 retained effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; 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/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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种数据模型的构建方法及数据查询方法和计算机存储介质,其方法包括步骤S1:基于列式数据建立与其对应的多个维度表,并生成对多个维度表的内容进行关联的事实表;步骤S2:基于事实表所存储的数据,将事实表所包含的每个事件的度量进行统计,得到可表征数据对应的每个事件的度量的指标度量集;步骤S3:基于用户需求,对指标度量集中的事件进行维度分解,得到分解后的单维度事件和/或通过多个单维度事件任意组合得到的多维度事件的聚合值;步骤S4:输出单维度事件和/或多维度事件及它们对应的聚合值,形成所述事件数据模型。与现有技术相比,本发明能进行多维数据分析,提高了数据分析计算及存储的效率。
Description
技术领域
本发明涉及数据模型构建,特别是一种数据模型的构建方法及数据查询方法和计算机存储介质。
背景技术
传统的企业业务数据分析技术基于关系数据库存储进行多维数据分析计算,采用基于行的数据存储方式进行大数据量的复杂分析和查询处理,为企业管理运营进行业务指标分析及决策支持。随着互联网和大数据技术的发展,基于列式数据存储方式因其具有易扩展、海量存储、高性能、高可用的特性,在信息化建设中广泛应用。但是对于列式数据存储,缺乏构造列式数据模型并进行多维数据分析查询的方法,在数据分析中无法有效利用列式数据存储的长处。
因此,如何基于列式数据提出一种数据模型的构建方法及数据查询方法和计算机存储介质用于多维数据分析和查询是业界亟待解决的技术问题。
发明内容
针对现有技术中缺乏构造基于列式数据构造数据模型用于查询和分析的问题,本发明提出了一种数据模型的构建方法及数据查询方法和计算机存储介质。
本发明的技术方案为,提出了一种数据模型的构建方法包括:
步骤S1:基于列式数据建立与其对应的多个维度表,并生成对多个维度表的内容进行关联的事实表;
步骤S2:基于所述事实表所存储的数据,将所述事实表所包含的每个事件的度量进行统计,得到可表征所述数据对应的每个事件的度量的指标度量集;
步骤S3:基于用户需求,对所述指标度量集中的事件进行维度分解,得到分解后的单维度事件和/或通过多个单维度事件任意组合得到的多维度事件的聚合值;
步骤S4:输出单维度事件和/或多维度事件及它们对应的聚合值,形成所述事件数据模型。
进一步,所述步骤S1包括:
步骤S11:根据列式数据所包含的事件的维度确定所述维度表的建立个数,所述维度表的建立个数与所述事件的维度数量相同;
步骤S12:基于列式数据建立维度表,每个所述维度表包括键部和值部,所述维度表的键部为所述维度表的行键、值部为所述维度表的属性值;
步骤S13:建立事实表,所述事实表包括键部和值部,所述事实表的值部为所述维度表的行键值,并通过所述维度表的行键值与所述维度表进行关联,所述事实表的键部为所述事实表的行键。
进一步,所述步骤S2包括:
获取每个所述事实表中键部对应的事件度量,生成反应每个事件的度量的指
标度量集,所述指标度量集的键部为所述事实表的行键,并通过所述指标度量集的键部与所述事实表进行关联,所述指标度量集的值部为与其键部对应事件匹配的度量。
进一步,所述对指标度量集中的事件进行维度分解之前,还需要基于用户需求对数据进行筛选,所述基于用户需求对数据进行筛选包括:
步骤S31:根据用户需求,对每个所述维度表的属性值进行筛选,保留每个
维度表中属性值满足用户需求的数据;
步骤S32:将多个筛选后的维度表合并为第一键值对,并以所述维度表中满足用户需求的属性值作为键部、与所述满足用户需求的属性值对应的行键的集合作为值部,并通过所述第一键值对反应所述满足用户需求的数据。
进一步,在生成所述反应满足用户需求的数据的第一键值对后,还需要建立联系所述第一键值对与所述事实表的第二键值对,其包括:
步骤S33:根据所述第一键值对的值部对多个所述事实表进行筛选,并判断
每个所述事实表的值部是否满足所述第一键值对的值部中行键的集合,若是则令所述事实表中该事件的值部为1,反之则令所述事实表中该事件的值部为0;
步骤S34:将判断后得到的多个事实表合并,得到所述第二键值对。
进一步,所述对指标度量集中的事件进行维度分解之前,还需要得出包含每个事件的所有维度、以及每个事件的度量的第三键值对,其包括:
步骤S35:根据所述第二键值对对多个所述事实表和所述指标度量集进行筛
选,保留所述事实表和所述指标度量集中与第二键值对值部为1相匹配的事件的数据;
步骤S36:基于所述事实表和所述指标度量集中保留的数据生成第三键值对,所述第三键值对的键部为所述事实表中保留部分的值部、值部为所述指标度量集中保留部分的值部。
进一步,所述对指标度量集中的事件进行维度分解,得到分解后的单维度事件和/或通过单维度事件任意组合得到的多维度事件的聚合值包括:
步骤S37:拆分所述第三键值对的键部,得到多个单维度事件,并根据所述第三键值对的值部得出与所述单维度的事件匹配的度量;
步骤S38:将多个所述单维度事件中维度相同的事件合并到同一键值对,并将键部相同的部分合并后得到第四键值对,所述第四键值对的键部为所述单维度的事件、值部为与其键部相匹配的事件度量,并通过所述第四键值对表示所述分解后的单维度事件的聚合值;
步骤S39:将多个单维度事件任意组合得到多维度事件,并根据所述第三键值对获取所述多个单维度事件任意组合的多维度事件的度量,并将维度相同的事件合并到同一键值对,生成第五键值对,所述第五键值对的键部为所述多个单维度事件任意组合的多维度事件、值部为与其键部相匹配的事件度量,并通过所述第五键值对表示多维度事件的聚合值;
通过所述步骤S37后,当需要获取单维度事件的聚合值时,进入所述步骤S38,当需要获取多维度事件的聚合值时,进入所述步骤S39。
进一步,得到所述第四键值对和所述第五键值对后,还需要生成反应满足用户需求中所有维度事件的度量的总键值对,其包括:
步骤S310:将所述指标度量集中满足用户需求的全部值部中事件的度量进行合并,得到总键值对,并令总键值对的值部为代表所有维度事件的行键、值部为所述指标度量集中满足用户需求的全部值部中事件的度量合并后的值。
本发明还提出了一种数据查询方法,包括:
采用上述数据模型的构建方法构建数据模型;
根据用户输入的查询条件,从所述事实数据模型中查找相应的内容。
本发明还提出了一种计算机存储介质,其包括:
数据采集模块:用于采集所需查询事件的数据;
数据模型构建模块:用于建立用于存储数据的列式存储星型模块;
数据分析指标构建模块:用于建立数据分析指标;
多维数据计算模块:用于在不同层次上从不同维度和维度组合对数据分析指标进行聚合计算;
数据存储模块:用于将数据存储到列式数据库;
数据查询模块:用于根据所述数据分析指标进行指标数据查询。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据模型构建的模型图;
图2为本发明事实图和维度图的储存模型;
图3为本发明不同层次的数据聚合示意图;
图4为本发明一实施例中事实图和维度图的储存模型;
图5为本发明一实施例中第一键值对的生成示意图;
图6为本发明一实施例中第二键值对的生成示意图;
图7为本发明一实施例中第三键值对的生成示意图;
图8为本发明一实施例中第四键值对的生成示意图;
图9为本发明一实施例中第五键值对的生成示意图;
图10为本发明一实施例中总键值对的生成示意图;
图11为本发明一实施例中最终输出的示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
由此,本说明书中所指出的一个特征将用于说明本发明的一个实施方式的其中一个特征,而不是暗示本发明的每个实施方式必须具有所说明的特征。此外,应当注意的是本说明书描述了许多特征。尽管某些特征可以组合在一起以示出可能的系统设计,但是这些特征也可用于其他的未明确说明的组合。由此,除非另有说明,所说明的组合并非旨在限制。
下面结合附图以及实施例对本发明的原理及结构进行详细说明。
基于列式数据存储方式因其具有易扩展、海量存储、高性能、高可用的特性,在信息化建设中广泛应用。但是对于列式数据存储,缺乏构造列式数据模型并进行多维数据分析查询的方法,在数据分析中无法有效利用列式数据存储的长处。本发明的思路在于,提出一种数据模型的构建方法,通过构建列式数据模型和数据分析指标,进行多维数据分析,提高数据分析计算及存储的效率。
具体的,本发明提出的数据模型的构建方法包括:
步骤S1:基于列式数据建立与其对应的多个维度表,并生成对多个维度表的内容进行关联的事实表;
步骤S2:基于所述事实表所存储的数据,将所述事实表所包含的每个事件的度量进行统计,得到可表征所述数据对应的每个事件的度量的指标度量集;
步骤S3:基于用户需求,对所述指标度量集中的事件进行维度分解,得到分解后的单维度事件和/或通过多个单维度事件任意组合得到的多维度事件的聚合值;
步骤S4:输出单维度事件和/或多维度事件及它们对应的聚合值,形成所述事件数据模型。
其中,对于步骤S1,其包括:
步骤S11:根据列式数据所包含的事件的维度确定所述维度表的建立个数,所述维度表的建立个数与所述事件的维度数量相同;
步骤S12:基于列式数据建立维度表,每个所述维度表包括键部和值部,所述维度表的键部为所述维度表的行键、值部为所述维度表的属性值;
步骤S13:建立事实表,所述事实表包括键部和值部,所述事实表的值部为所述维度表的行键值,并通过所述维度表的行键值与所述维度表进行关联,所述事实表的键部为所述事实表的行键。
具体的,请参见图2,本发明先根据列式数据所包含的事件的维度确定维度表的建立个数,维度表示该事件的属性,如需要采集某段时间某个地点通过的人数,该事件中包括3种属性,分别是时间、地点和人数,也即该事件具有三个维度,以此确定维度表的建立个数为3个,分别对应存储时间维度、地点维度和人数维度中的数据信息。这里维度表的建立数据需要与事件的维度数量相同,用于对应存储各维度的信息。
确定维度表的个数后,再基于列式数据建立维度表,其中列式数据的存储方式为行键组合的方式,基于列式数据建立维度表后维度表中每一个维度表(),包含个属性列,即。每个维度表的属性按照键值对存储成一列键值对,其包括键部和值部,其维度表的键部为维度表的行键,用.RowKey表示,值部为维度表的属性值,用.Value ()表示,可见图2最终维度表表示成(.RowKey,.Value),如某一具体事件为8点通过的人数,其维度表可以在用来表示时间维度的维度表中表示为(3,8:00),3表示为维度表的行键,“8:00”为该事件对应的属性值,也即事件时间为8点,维度表的键部和值部组成一组键值对,在查询事件信息时,只用输入事件相应的行键,即可得出与之对应的事件信息。
建立维度表后,需要建立与维度表相关联的事实表,每一个事实表也包括键部和值部,其由事实表的行键和维度表的行键组成,其中事实表的键部为事实表的行键,值部为维度表的行键,具体表示为(.RowKey,.RowKey),这里将事实表的值部设置为维度表的行键是用于连接维度表,在查询时只用获取事实表的行键即可获取对应的维度表的行键,从而获得其对应的属性值。按上一例子需要采集8点通过的人数,此时维度表中表示为(3,8:00),假设该组数据与事实表中行键为5的数据对应,其事实表可以表示为(5,3),这里5表示事实表的行键,其用于输入查询数据,3为事实表的值部,其与维度表(3,8:00)中的键部相互关联,查询事实表时,只用输入事实表的行键5,即可确定得到与该事件匹配的时间维度信息“8:00”。这里事实表的数量与维度表的数量相同,且每一个维度下的维度表均有一个与之对应的事实表匹配,如维度表包括2个,分别为表示时间维度的维度表d1,和表示地点维度的维度表d2,事实表也会对应建立2个,分别与两个不同维度的维度表进行关联,便于查询数据。
请参见图2,由于查询数据往往是需要对数据进行分析,其还需要查询该数据的度量,故建立事实表和维度表后,还需要确定某一维度下具体事件发生的次数,此时需要根据事实表生成与之对应的指标度量集。其中,指标度量集,指标度量用来表示基于某个条件的指标计算值,如查询条件为2015年至2019年,指标度量值为企业信息系统在该时间段(查询条件内)的安全事件的数据;或者查询条件为广东省内所有城市并且事件范围为2021年1月,指标度量值为财务数据报表的访问次数。
其中,每一个指标度量()由事实表的行键RowKey作为键部,值部用.Value表示该行的指标度量,其表示为(.RowKey,.Value)。这里将事实表的键部用于指标度量集的键部是用于关联事实表,以此就可以通过事实表将指标度量集、维度表关联起来,当查询某一事件时,通过输入事实表的行键,可以通过指标度量集确定该事件的发生次数,同时可以通过维度表确定该事件下某一维度发生的次数。如某一事件为某地某个时间通过的人数,维度表有两个,其中表示时间维度的维度表中存储有(2,8:00),同时与之对应的事实表为(3,2),与事实表关联的指标度量集为(3,100),通过输入事实表的行键3就可以确定8点通过的人数为100。
请参见图4,其为本发明一实施例中维度表和事实表的存储模型,其用于表示不同国家、不同端口以及不同时间的访问次数,可以看出该事件具有三个不同维度,分别为国家、端口和时间,故对应设置有三组事实表和维度表用于对应三种不同维度,其分别为来源国家表、来源端口表和事件时间,其中第一个维度表表示为(.RowKey,country),其键部为该维度表的行键,值部为该维度表的属性值,其表示为国家,如其中(1,France)中1为该维度表的行键,France为其国家维度的属性值法国;第二个维度表表示为(.RowKey,port),其键部为该维度表的行键,值部为该维度表的属性值,其表示来源端口,第三个维度表表示为(.RowKey,time),其键部为该维度表的行键,值部为该维度表的属性值,其表示事件时间。每一个维度表均对应有一个事实表,其事实表的键部为事实表的行键,值部为维度表的行键,具体表示为(.RowKey,.RowKey),在图4中还生成有与事实表对应的指标度量集(.RowKey,m1),这里指标度量集只设有一个是因为指标度量集用于表示具体事件的发生次数,如指标度量集中(1,1000)与之对应的事实表的数据为(1,1)、(1,2)和(1,01012016),分别对应到维度表中的(1,France)、(2,8080)和(01012016,2016),其可以表示2016年来源端口为8080的来源国家为法国的访问次数为1000,其指标度量集本身就包括了三个维度下的数量,故不需增设多个指标度量集。而对于事实表和维度表,由于事实表是对具体事件进行采集,如第三次事件其应该包括有国家、端口和事件三个维度,但每个事实表和维度表只表示某一维度的事件,故对应需要对应设置多组事实表和维度表。但对于一些特定的事件,具体发生次数并不能体现出各个维度的发生次数时,此时设置的指标度量集中子集的数量可以与D中子集数量一致,用于匹配具体每一个维度的发生次数。
在进行查询时往往需要对数据进行筛选,并非所有的事件都是满足查询条件的,如本实施例中要针对来源国家为France、来源端口为8080、事件时间为2016至2017进行查询,故需要对事实表和维度表中的数据进行筛选,剔出不满足查询条件的数据。其筛选的方法包括:
步骤S31:根据用户需求,对每个所述维度表的属性值进行筛选,保留每个
维度表中属性值满足用户需求的数据;
步骤S32:将多个筛选后的维度表合并为第一键值对,并以所述维度表中满足用户需求的属性值作为键部、与所述满足用户需求的属性值对应的行键的集合作为值部,并通过所述第一键值对反应所述满足用户需求的数据。
请参见图5,d1、d2、d3分别为来源国家表、来源端口表和事件时间表,其先通过步骤S31后筛选出满足用户需求的数据,得到满足用户需求的多组键值对,如图5中间部分的3组键值对,其用原维度表中的键部作为其值部,并用原维度表中满足用户需求的值部作为键部,其与维度表中的存储的键部和值部恰好相反,是用于区分维度表和该键值对,如当维度表中全部数据均符合用户需求时,将无法区分,反向保存后即使数据全部符合用户需求,也能进行区分,筛选出满足用户需求的数据后,再通过步骤S32将其合并为第一键值对,其以维度表中满足用户需求的属性值作为键部、与满足用户需求的属性值对应的行键的集合作为值部。通过第一键值对即可直观的找出满足用户需求的数据,如满足法国维度的事件只有对应的维度表行键中1、2、3符合,满足8080端口维度的事件只有对应的维度表中行键1、2符合。
在确定第一键值对后,还需要根据第一键值对对事实表中的数据进行筛选,
由于事实表的值部为维度表的行键,其有一部分是不符合用户需求的,需要将其剔出,具体的,其包括:
步骤S33:根据所述第一键值对的值部对多个所述事实表进行筛选,并判断每个所述事实表的值部是否满足所述第一键值对的值部中行键的集合,若是则令所述事实表中该事件的值部为1,反之则令所述事实表中该事件的值部为0;
步骤S34:将判断后得到的多个事实表合并,得到所述第二键值对。
请参见图6,筛选时需要结合第一键值对和事实表,由于第一键值对中的值部为满足用户需求的维度表的行键,而事实表的值部也是维度表的行键,故只用根据第一键值对中的值部筛选维度表中的数据即可。当事实表的行键能与第一键值对值部中的数据匹配时,即可表明该数据为满足用户需求的数据,由于事实表也是多个维度的,而第一键值对中键部为满足用户需求的属性值,故只用根据每个事实表的维度从第一键值对相应维度的值部中筛选即可。如对来源国家的事实表,其只用与第一键值对中( France,(1、2、3))相比较即可,对来源国家的事实表中的值部分别为1,2,1,6,1,1,可以看出只有6与第一键值对中的数据不匹配。而其余数据均能够与第一键值对匹配,故可以根据事实表与第一键值对的匹配情况生成键值对(.RowKey,Valuebool),该键值对的键部仍保留事实表的键部,值部表示为与第一键值对的匹配情况,当其与第一键值对中的数据匹配时,则令其值为1,反之则令其值为0,以此可以将来源国家的事实表转换为该键值对,见图6中间部分第一组键值对,其用来表示来源国家的事实表的匹配情况,在查询数据时,输入事实表的行键即可确定该数据的维度是否符合用户需求。
通过步骤S33的筛选后可以得到与每个事实表相匹配的键值对(.RowKey,Valuebool),然后将其合并即可得到第二键值对,第二键值对用来选出符合用户需求的事件,由于事实表的每个行键对应一个事件,即通过该方法可以筛选出符合用户需求的事件对应的事实表行键。其合并方法采用逻辑AND运算,即只有当全部子集部分均为1时才合并为1,反之则合并为0,这里采用逻辑AND运算的原因是采集的数据只有同时满足多个维度时才符合要求,如得出的3组次键值对中第六组数据分别为(6,1)、(6,1)、(6,0),其对于事实表可以得出其来源国家和访问端口分别为France、8080,其是满足查询条件的,但对于其来源时间却是2013,显然不满足查询条件,而我们需要查询的数据是同时满足来源国家为France、来源端口为8080、来源时间为2016至2017的,虽然其存在两条满足查询条件的数据,但其并非为满足查询条件的数据,故需要剔出,也即只有当全部条件均满足查询条件的数据才是需要的数据,故这里采用逻辑AND算法进行合并得到第二键值对,通过第二键值对可以看出所有满足查询条件的事件。
得出第二键值对后,为了便于查询和分析,需要将其转换为能表示每个事件的所有维度、以及每个事件度量的第三键值对,其包括:
步骤S35:根据所述第二键值对对多个所述事实表和所述指标度量集进行筛
选,保留所述事实表和所述指标度量集中与第二键值对值部为1相匹配的事件的数据;
步骤S36:基于所述事实表和所述指标度量集中保留的数据生成第三键值对,所述第三键值对的键部为所述事实表中保留部分的值部、值部为所述指标度量集中保留部分的值部。
请参见图7,从第二键值对中可以直观的看出事实表中行键为1、2、3、5对应的事件才是满足查询条件的事件,故只用保留事实表中与行键1、2、3、5对应的数据即可,对于行键值为1的数据,事件时间表中保留的数据为01012016、来源国家表中保留的数据为1、来源端口表中保留的数据为2,由于事实表的值部又与维度表相匹配,故可以反应出具体事件为:2016年输入端口为8080的来源国家为法国的访问次数,同时由于分析时需要对该事件的度量进行分析,故还需要保留指标度量集中与行键1、2、3、5对应的事件度量用来反应该事件发生的次数,如对于行键1,其需要保留事实表中的01012016、1、2和值部度量集中的1000,并将其组成键值对,即可反应得出2016年输入端口为8080来源国家为法国的访问次数为1000,将满足用户需求的数据全部保存后,得到第三键值对,其键值对的值部反应每个事件的所有维度,值部为该事件的度量。由于多个事件对应的具体事件可能会出现重复的情况,如键值对中的((2,1,01012016),1000)与((2,1,01012016),5000)其反应相同的事件,故需要将事件相同的部分进行合并,用来反应该事件出现的总次数,如图7最右边为合并后的第三键值对,其中((2,1,01012016),6000)为合并后的数据,其中6000可以表示2016年输入端口为8080来源国家为法国的总访问次数为6000。
同时,在本发明其他实施例中合并时可以对值部数据进行取平均值、取最大值或最小值等,分别反应不同的情况,如合并时对值部数据取平均值,对应初键值对中两组数据((2,1,01012016),1000)和((2,1,01012016),5000),将其合并后得出的第三键值对中表示为((2,1,01012016),3000),其可以反应得出2016年从输出端口8080来源国家为法国的访问次数平均有3000次,同理根据实际合并方式可以得出不同的分析效果。这里将第三键值对记作R1,其为最终输出结果中的一部分。
由于第三键值对中只能反应具体事件的发生次数,其同时包括了多个维度,在实际分析时,可能需要对不同维度数据进行分析,如只查询分析来源国家为法国的访问次数,而不用考虑输入端口和事件时间时,由于第三键值对中第一组数据和第三组数据均反应有来源国家为法国的数据,但由于事件时间不同并没有合并,而在仅分析来源国家时不用考虑事件时间,则又需要对该部分数据进行合并,故通过第三键值对并不能很好反应单维度或维度组合情况下的数据,故此时需要将第三键值对进行拆分,得到分解后的单维度事件的聚合值。其包括:
步骤S37:拆分所述第三键值对的键部,将其划分为多个单维度事件,并根据所述第三键值对的值部得出与所述单维度的事件匹配的度量;
步骤S38:将多个所述单维度事件中维度相同的事件合并到同一键值对,并将键部相同的部分合并后得到第四键值对,所述第四键值对的键部为所述单维度的事件、值部为与其键部相匹配的事件度量,并通过所述第四键值对表示所述分解后的单维度事件的聚合值。
这里由于第三键值对的键部即可反应满足用户需求的时间的所有维度,故只用将第三键值对的键部拆分即可,请参见图8,其先通过步骤S38拆分后可以得到多个单维度的键值对,见图8中间部分,其中第一组键值对为将第三键值对中输入端口维度的行键拆分后得到的键值对,其值部为与该键值对匹配的度量,其与第三键值对中该行键对应的具体时间的数量一样,如第三键值对中的((2,1,01012016),6000),将其中来源端口部分拆分出来得到(2,6000),由于第三键值对的键部为2016年输入端口为8080的来源国家为法国的访问次数该事件,其次数为6000,故从其中拆分出来的8080端口维度的次数也为6000。
通过步骤S37进行拆分后,还需要通过步骤S38对处于维度相同的事件进行合并,具体原因同上,如第三键值对中第一组和第三组数据分别表示2016年输入端口为8080来源国家为法国的访问次数、和2017年输入端口为8080来源国家为法国的访问次数,其虽然具体事件不同,但均包括了来源国家为法国的访问次数,拆分后对于单维度下其均是用于表示来源国家为法国的访问次数,对其分析时需要将其合并,可见图8中间第二组键值对中的(1,6000)和(1,3000),其均是表示来源国家为法国的访问次数,需要将其合并得到图8右边第二组键值对中的(1,9000)。这里与第三键值对中同理,合并时也可以采用取平均值、最大值或最小值等方法,本实施例中采用求和的方式,能够表示来源国家为France的总访问次数。这里将合并后的多个单维度的键值对称作第四键值对,记作R2,其为最终输出结果中的一部分。
与第四键值对同理,在进行数据分析时,有时会对多个维度组合的数据进行分析,如需要分析2017年来源国家为法国的访问次数,其分析的数据中只包括有两个维度,故拆分时还需要考虑多个维度组合的情况,其包括:
步骤S39:拆分所述第三键值对的键部,将其划分为多个单维度事件任意组合的多维度事件,并根据所述第三键值对获取所述多个单维度事件任意组合的多维度事件的度量,并将维度相同的事件合并到同一键值对,生成第五键值对,所述第五键值对的键部为所述多个单维度事件任意组合的多维度事件、值部为与其键部相匹配的事件度量,并通过所述第五键值对表示多维度事件的聚合值。
其中,具体获取单维度事件的聚合值和多维度事件的聚合值可以根据用户的需求确定,当需要获取单维度事件的聚合值时,进入步骤S38,反之当需要获取多维度事件的聚合值时,进入步骤S39,其可以根据用户的需要获取单维度事件的聚合值或多维度事件的聚合值,当需要同时获取时,也能在步骤S38后再次执行步骤S39,同时获取单维度事件的聚合值和多维度事件的聚合值,其可以作为最终查询输出的一部分。
请参见图9,其具体拆分的方法与步骤S37中相同,与之不同的是S39中对第三键值对拆分时将其拆分为多个单维度事件任意组合的情况,如((2,1,01012016),6000),其可以拆分为((2,1),6000)、((2,01012016),6000)和((1,01012016),6000)三种情况,其度量与该事件对于的次数相同。与第四键值对同理,将其拆分后也需要对维度相同的键值对进行合并,从而得出第五键值对。本实施例中合并时也采用求和的方式,在其他实施例中也可以采用取平均值、最大值或最小值等方式。这里将合并后的键值对称作第四键值对,记作R3,其为最终输出结果中的一部分。
在一些其他的分析情况下,其只需要采集满足用户需求的总次数即可,故需要生成反应满足用户需求中所有维度事件的度量的总键值对,其包括:
步骤S310:将所述指标度量集中满足用户需求的全部值部中事件的度量进行合并,得到总键值对,并令总键值对的键部为代表所有维度事件的行键、值部为所述指标度量集中满足用户需求的全部值部中事件的度量合并后的值。
具体的,请参见图10,其通过第二键值对筛选值部度量集中满足用户需求的数据,可以看出只有行键为1、2、3、5的数据符合需求,为得到总键值对,需要将满足需求的数据中事件的度量合并,用来反应事件的总度量,由于合并时行键可能存在不一致的情况导致无法合并,如图10中的(1,1000)、(2,2000)、(3,3000)、(5,5000),其行键不一致无法进行合并,故合并之前先将每个符合查询条件的行键改为ALL,ALL代表总的意思,用来代表所有维度事件的行键,最终得到的键值对分别为(ALL,1000)、(ALL,2000)、(ALL,3000)、(ALL,5000),再将其合并得到总键值对(ALL,11000),其值部为全部值部中事件度量合并后的值,其为1000+2000+3000+5000。同理,在其他实施例中也可以采用取平均值、最大值或最小值等方式进行合并。这里将总键值对作为R4,其作为最终输出结果的一部分。
请参见图11,其为本发明最终输出结果示意图,其包括4个模块,分别为R1、R2、R3和R4,其中R1表示能够表示具体事件的发生次数,R2表示个单维度下事件发生的次数,R3为2维度组合情况下发生的次数,R4表示满足查询条件的总发生次数。在进行数据分析时,只用根据用户的需求输出R1到R4中的一个或多个即可。
请参见图3,其为本发明不同层次的数据聚合示意图,图3中以4个维度的事件为例,本发明能够划分低层次聚合和高层次聚合的表现形式,其中低层次聚合表示具体事件,其包括四个维度A、B、C、D的发生次数,其向高层次聚合转变,包括有单维度、维度组合以及全维度的情况,单维度表示只有单一维度时对于的发生次数,维度组合表示由多个维度组合时发生的次数,全维度表示满足条件的总发生次数。
与现有技术相比,本发明提出了一种数据模型的构建方法,其能够进行多维数据分析,提高了数据分析计算及存储的效率,对大数据条件下的数据处理过程中的企业信息决策提供有效的支撑。
本发明还提出了一种数据查询方法,其包括:
采用上述数据模型的构建方法构建数据模型;
根据用户输入的查询条件,从所述事实数据模型中查找相应的内容。
请参见图1,本发明还提出了一种计算机存储介质,其包括:
数据采集模块:用于采集所需查询事件的数据;
数据模型构建模块:用于建立用于存储数据的列式存储星型模块;
数据分析指标构建模块:用于建立数据分析指标;
多维数据计算模块:用于在不同层次上从不同维度和维度组合对数据分析指标进行聚合计算;
数据存储模块:用于将数据存储到列式数据库;
数据查询模块:用于根据所述数据分析指标进行指标数据查询。
同时,多维数据计算模块通过MapReduce任务、流式计算任务或其他任务方式中的一种或多种进行计算。
以上的仅为本发明的部分或优选实施例,无论是文字还是附图都不能因此限制本发明保护的范围,凡是在与本发明一个整体的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明保护的范围内。
Claims (10)
1.一种数据模型的构建方法,其特征在于,包括:
步骤S1:基于列式数据建立与其对应的多个维度表,并生成对多个维度表的内容进行关联的事实表;
步骤S2:基于所述事实表所存储的数据,将所述事实表所包含的每个事件的度量进行统计,得到可表征所述数据对应的每个事件的度量的指标度量集;
步骤S3:基于用户需求,对所述指标度量集中的事件进行维度分解,得到分解后的单维度事件和/或通过多个单维度事件任意组合得到的多维度事件的聚合值;
步骤S4:输出单维度事件和/或多维度事件及它们对应的聚合值,形成所述事件数据模型。
2.根据权利要求1所述的数据模型的构建方法,其特征在于,所述步骤S1包括:
步骤S11:根据列式数据所包含的事件的维度确定所述维度表的建立个数,所述维度表的建立个数与所述事件的维度数量相同;
步骤S12:基于列式数据建立维度表,每个所述维度表包括键部和值部,所述维度表的键部为所述维度表的行键、值部为所述维度表的属性值;
步骤S13:建立事实表,所述事实表包括键部和值部,所述事实表的值部为所述维度表的行键值,并通过所述维度表的行键值与所述维度表进行关联,所述事实表的键部为所述事实表的行键。
3.根据权利要求2所述的数据模型的构建方法,其特征在于,所述步骤S2包括:
获取每个所述事实表中键部对应的事件度量,生成反应每个事件的度量的指
标度量集,所述指标度量集的键部为所述事实表的行键,并通过所述指标度量集的键部与所述事实表进行关联,所述指标度量集的值部为与其键部对应事件匹配的度量。
4.根据权利要求3所述的数据模型的构建方法,其特征在于,所述对指标度量集中的事件进行维度分解之前,还需要基于用户需求对数据进行筛选,所述基于用户需求对数据进行筛选包括:
步骤S31:根据用户需求,对每个所述维度表的属性值进行筛选,保留每个
维度表中属性值满足用户需求的数据;
步骤S32:将多个筛选后的维度表合并为第一键值对,并以所述维度表中满足用户需求的属性值作为键部、与所述满足用户需求的属性值对应的行键的集合作为值部,并通过所述第一键值对反应所述满足用户需求的数据。
5.根据权利要求4所述的数据模型的构建方法,其特征在于,在生成所述反应满足用户需求的数据的第一键值对后,还需要建立联系所述第一键值对与所述事实表的第二键值对,其包括:
步骤S33:根据所述第一键值对的值部对多个所述事实表进行筛选,并判断
每个所述事实表的值部是否满足所述第一键值对的值部中行键的集合,若是则令所述事实表中该事件的值部为1,反之则令所述事实表中该事件的值部为0;
步骤S34:将判断后得到的多个事实表合并,得到所述第二键值对。
6.根据权利要求5所述的数据模型的构建方法,其特征在于,所述对指标度量集中的事件进行维度分解之前,还需要得出包含每个事件的所有维度、以及每个事件的度量的第三键值对,其包括:
步骤S35:根据所述第二键值对对多个所述事实表和所述指标度量集进行筛
选,保留所述事实表和所述指标度量集中与第二键值对值部为1相匹配的事件的数据;
步骤S36:基于所述事实表和所述指标度量集中保留的数据生成第三键值对,所述第三键值对的键部为所述事实表中保留部分的值部、值部为所述指标度量集中保留部分的值部。
7.根据权利要求6所述的数据模型的构建方法,其特征在于,所述对指标度量集中的事件进行维度分解,得到分解后的单维度事件和/或通过单维度事件任意组合得到的多维度事件的聚合值包括:
步骤S37:拆分所述第三键值对的键部,得到多个单维度事件,并根据所述第三键值对的值部得出与所述单维度的事件匹配的度量;
步骤S38:将多个所述单维度事件中维度相同的事件合并到同一键值对,并将键部相同的部分合并后得到第四键值对,所述第四键值对的键部为所述单维度的事件、值部为与其键部相匹配的事件度量,并通过所述第四键值对表示所述分解后的单维度事件的聚合值;
步骤S39:将多个单维度事件任意组合得到多维度事件,并根据所述第三键值对获取所述多个单维度事件任意组合的多维度事件的度量,并将维度相同的事件合并到同一键值对,生成第五键值对,所述第五键值对的键部为所述多个单维度事件任意组合的多维度事件、值部为与其键部相匹配的事件度量,并通过所述第五键值对表示多维度事件的聚合值;
通过所述步骤S37后,当需要获取单维度事件的聚合值时,进入所述步骤S38,当需要获取多维度事件的聚合值时,进入所述步骤S39。
8.根据权利要求7所述的数据模型的构建方法,其特征在于,得到所述第四键值对和所述第五键值对后,还需要生成反应满足用户需求中所有维度事件的度量的总键值对,其包括:
步骤S310:将所述指标度量集中满足用户需求的全部值部中事件的度量进行合并,得到总键值对,并令总键值对的值部为代表所有维度事件的行键、值部为所述指标度量集中满足用户需求的全部值部中事件的度量合并后的值。
9.一种数据查询方法,其特征在于,包括:
采用如权利要求1至8任意一项权利要求所述的数据模型的构建方法构建数据模型;
根据用户输入的查询条件,从所述事实数据模型中查找相应的内容。
10.一种计算机存储介质,其特征在于,其包括:
数据采集模块:用于采集所需查询事件的数据;
数据模型构建模块:用于建立用于存储数据的列式存储星型模块;
数据分析指标构建模块:用于建立数据分析指标;
多维数据计算模块:用于在不同层次上从不同维度和维度组合对数据分析指标进行聚合计算;
数据存储模块:用于将数据存储到列式数据库;
数据查询模块:用于根据所述数据分析指标进行指标数据查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110679511.0A CN113486006B (zh) | 2021-06-18 | 2021-06-18 | 数据模型的构建方法及数据查询方法和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110679511.0A CN113486006B (zh) | 2021-06-18 | 2021-06-18 | 数据模型的构建方法及数据查询方法和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486006A true CN113486006A (zh) | 2021-10-08 |
CN113486006B CN113486006B (zh) | 2024-09-10 |
Family
ID=77935586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110679511.0A Active CN113486006B (zh) | 2021-06-18 | 2021-06-18 | 数据模型的构建方法及数据查询方法和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486006B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115062133A (zh) * | 2022-08-17 | 2022-09-16 | 广州思迈特软件有限公司 | 基于数据模型的数据查询方法、装置、计算机设备及介质 |
CN117709804A (zh) * | 2024-02-05 | 2024-03-15 | 杭州研趣信息技术有限公司 | 基于分块矩阵式的指标计算方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150310047A1 (en) * | 2014-04-24 | 2015-10-29 | Futurewei Technologies, Inc. | System and Method for Composing a Multidimensional Index Key in Data Blocks |
CN106997386A (zh) * | 2017-03-28 | 2017-08-01 | 上海跬智信息技术有限公司 | 一种olap预计算模型、自动建模方法及自动建模系统 |
CN109669934A (zh) * | 2018-12-11 | 2019-04-23 | 江苏瑞中数据股份有限公司 | 一种切合电力客服业务的数据仓库系统及其构建方法 |
CN109952569A (zh) * | 2016-09-16 | 2019-06-28 | 甲骨文国际公司 | 用于基于字典的连接和聚合的技术 |
CN110019195A (zh) * | 2017-09-27 | 2019-07-16 | 北京国双科技有限公司 | 一种数据的存储方法及装置 |
CN110019396A (zh) * | 2017-12-01 | 2019-07-16 | 中国移动通信集团广东有限公司 | 一种基于分布式多维分析的数据分析系统及方法 |
-
2021
- 2021-06-18 CN CN202110679511.0A patent/CN113486006B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150310047A1 (en) * | 2014-04-24 | 2015-10-29 | Futurewei Technologies, Inc. | System and Method for Composing a Multidimensional Index Key in Data Blocks |
CN109952569A (zh) * | 2016-09-16 | 2019-06-28 | 甲骨文国际公司 | 用于基于字典的连接和聚合的技术 |
CN106997386A (zh) * | 2017-03-28 | 2017-08-01 | 上海跬智信息技术有限公司 | 一种olap预计算模型、自动建模方法及自动建模系统 |
CN110019195A (zh) * | 2017-09-27 | 2019-07-16 | 北京国双科技有限公司 | 一种数据的存储方法及装置 |
CN110019396A (zh) * | 2017-12-01 | 2019-07-16 | 中国移动通信集团广东有限公司 | 一种基于分布式多维分析的数据分析系统及方法 |
CN109669934A (zh) * | 2018-12-11 | 2019-04-23 | 江苏瑞中数据股份有限公司 | 一种切合电力客服业务的数据仓库系统及其构建方法 |
Non-Patent Citations (3)
Title |
---|
JIN-HO KIM ET AL.: "An efficient processing of queries with joins and aggregate functions in data warehousing environment", 《PROCEEDINGS. 13TH INTERNATIONAL WORKSHOP ON DATABASE AND EXPERT SYSTEMS APPLICATIONS》, 10 December 2002 (2002-12-10), pages 785 - 791 * |
卜意磊 等: "基于数据中台的市场监管数据资源中心架构设计", 《电子技术与软件工程》, 1 May 2020 (2020-05-01), pages 155 - 159 * |
陈佳文: "传媒大数据多维数据分析系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 February 2019 (2019-02-15), pages 138 - 993 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115062133A (zh) * | 2022-08-17 | 2022-09-16 | 广州思迈特软件有限公司 | 基于数据模型的数据查询方法、装置、计算机设备及介质 |
CN117709804A (zh) * | 2024-02-05 | 2024-03-15 | 杭州研趣信息技术有限公司 | 基于分块矩阵式的指标计算方法、装置、设备及介质 |
CN117709804B (zh) * | 2024-02-05 | 2024-05-07 | 杭州研趣信息技术有限公司 | 基于分块矩阵式的指标计算方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113486006B (zh) | 2024-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230169053A1 (en) | Characterizing data sources in a data storage system | |
US7765216B2 (en) | Multidimensional analysis tool for high dimensional data | |
Menestrina et al. | Evaluating entity resolution results | |
Bordoloi et al. | Designing graph database models from existing relational databases | |
Chaudhuri et al. | Leveraging aggregate constraints for deduplication | |
US8255368B2 (en) | Apparatus and method for positioning user-created data in OLAP data sources | |
CN113486006A (zh) | 数据模型的构建方法及数据查询方法和计算机存储介质 | |
CN112269792A (zh) | 数据查询方法、装置、设备及计算机可读存储介质 | |
Cherfi et al. | Multidimensional schemas quality: assessing and balancing analyzability and simplicity | |
CN115048469A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
Hassan et al. | A New Framework to Adopt Multidimensional Databases for Organizational Information System Strategies | |
Nguyen et al. | Detecting correlated columns in relational databases with mixed data types | |
CN114049016A (zh) | 指标相似性判断方法、系统、终端设备及计算机存储介质 | |
CN110389953B (zh) | 基于压缩图的数据存储方法、存储介质、存储装置和服务器 | |
Nguyen et al. | Semantic cubing platform enabling interoperability analysis among cloud-based linked data cubes | |
CN112667859A (zh) | 基于内存的数据处理方法及装置 | |
Karadeniz et al. | Political representation bias in DBpedia and Wikidata as a challenge for downstream processing | |
Nimmagadda et al. | Applicability of data warehousing and data mining technologies in the Australian resources industry | |
Moffitt et al. | Querying Evolving Graphs with Portal | |
Khalil et al. | NoSQL-based approach in data warehousing and OLAP cube computation | |
CN115221157A (zh) | 数据处理方法及装置、计算机可读存储介质和电子设备 | |
Matijević et al. | Transaction processing on planar partition for cadastral application | |
CN117851522A (zh) | 基于电网大数据中心的数据仓库建模方法 | |
CN117033346A (zh) | 一种基于企业数据的数仓建模方法、系统、设备及介质 | |
CN118193622A (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 |