CN103927337B - 用于联机分析处理中关联关系的数据处理方法和装置 - Google Patents

用于联机分析处理中关联关系的数据处理方法和装置 Download PDF

Info

Publication number
CN103927337B
CN103927337B CN201410116940.7A CN201410116940A CN103927337B CN 103927337 B CN103927337 B CN 103927337B CN 201410116940 A CN201410116940 A CN 201410116940A CN 103927337 B CN103927337 B CN 103927337B
Authority
CN
China
Prior art keywords
correlation model
branch
dimension
various dimensions
data processing
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
Application number
CN201410116940.7A
Other languages
English (en)
Other versions
CN103927337A (zh
Inventor
洪超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201410116940.7A priority Critical patent/CN103927337B/zh
Publication of CN103927337A publication Critical patent/CN103927337A/zh
Application granted granted Critical
Publication of CN103927337B publication Critical patent/CN103927337B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Abstract

本发明公开了一种用于联机分析处理中关联关系的数据处理方法和装置。该用于联机分析处理中关联关系的数据处理方法包括:获取数据仓库中的第一关联模型,第一关联模型包括多个第一关联模型分支,至少有一个第一关联模型分支为多维度分支,多维度分支包括一个事实表和多个维度表;从第一关联模型中获取多维度分支;在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支,其中,第二关联模型分支中维度表的数目小于多维度分支中维度表的数目;以及根据第一关联模型分支和第二关联模型分支,在分析数据库中构建第二关联模型。通过本发明,解决了相关技术中在联机分析处理时,难以平衡查询速度和存储空间的问题。

Description

用于联机分析处理中关联关系的数据处理方法和装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种用于联机分析处理中关联关系的数据处理方法和装置。
背景技术
在数据仓库中,通常采用星型关联模型和/或雪花型关联关系来进行事实表与维度表的建模。星型关联模型(星型模型)是指一张事实表对应多张单一的维度表,就像星星一样,而雪花型关联关系(雪花型模型)是指一张事实表对应多张维度表,有些维度表又可能指向多张其它的维度表,就像雪花一样。
在相关技术中,在联机分析处理的分析数据库中,一般基于事实表与维度表的原有关联关系进行数据查询。然而,根据上述查询方案,在处理雪花型关联关系中数据的查询时,会因为多了一步或者多步维度表到维度表的指向关系,而使得查询速度较慢。而处理星型关联模型中数据的查询时,虽然会因为只有一步指向关系而使得查询速度较快,但是采用星型关联模型在数据仓库中建模却要消耗大量的存储空间。
针对相关技术中在联机分析处理时,难以平衡查询速度和存储空间的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种用于联机分析处理中关联关系的数据处理方法和装置,以解决相关技术中在联机分析处理时,难以平衡查询速度和存储空间问题。
为了实现上述目的,根据本发明的一个方面,提供了一种用于联机分析处理中关联关系的数据处理方法。该方法包括:获取数据仓库中的第一关联模型,其中,第一关联模型包括事实表、维度表和事实表与维度表的第一关联关系,第一关联模型包括多个第一关联模型分支,每个第一关联模型分支包括事实表和维度表,并且多个第一关联模型分支具有相同的事实表,至少有一个第一关联模型分支为多维度分支,多维度分支包括一个事实表和多个维度表;从第一关联模型中获取多维度分支;在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支,其中,第二关联模型分支中维度表的数目小于多维度分支中维度表的数目;以及根据第一关联模型分支和第二关联模型分支,在分析数据库中构建第二关联模型。
进一步地,在从第一关联模型中获取多维度分支之前,该数据处理方法还包括:判断第一关联模型中的第一关联模型分支是否为多维度分支,其中,如果判断出第一关联模型中的第一关联模型分支为多维度分支,则从第一关联模型中获取多维度分支包括:获取第一关联模型分支;将第一关联模型分支作为多维度分支。
进一步地,在分析数据库中构建第二关联模型之后,该数据处理方法还包括:判断第二关联模型中是否存在具有多个维度表的关联模型分支;如果判断出第二关联模型中存在具有多个维度表的关联模型分支,则将具有多个维度表的关联模型分支转换为多个具有一个维度表的关联模型分支;以及根据多个具有一个维度表的关联模型分支创建星型关联模型。
进一步地,在获取数据仓库中的第一关联模型之后,数据处理方法还包括:在数据仓库中创建第二关联模型的视图,其中,视图用于表示事实表与维度表之间的连表关系;将事实表指向视图,在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支包括:查找第一关联模型中的多维度分支的事实表;根据事实表得到视图;基于视图在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支。
进一步地,在数据仓库中创建视图之后,该数据处理方法还包括:根据连表关系创建连表关系的索引。
为了实现上述目的,根据本发明的另一方面,提供了一种用于联机分析处理中关联关系的数据处理装置。该装置包括:第一获取单元,用于获取数据仓库中的第一关联模型,其中,第一关联模型包括事实表、维度表和事实表与维度表的第一关联关系,第一关联模型包括多个第一关联模型分支,每个第一关联模型分支包括事实表和维度表,并且多个第一关联模型分支具有相同的事实表,至少有一个第一关联模型分支为多维度分支,多维度分支包括一个事实表和多个维度表;第二获取单元,用于从第一关联模型中获取多维度分支;第一转换单元,用于在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支,其中,第二关联模型分支中维度表的数目小于多维度分支中维度表的数目;以及第一构建单元,用于根据第一关联模型分支和第二关联模型分支,在分析数据库中构建第二关联模型。
进一步地,该数据处理装置还包括:第一判断单元,用于在从第一关联模型中获取多维度分支之前,判断第一关联模型中的第一关联模型分支是否为多维度分支,其中,第二获取单元包括:获取模块,用于如果判断出第一关联模型中的第一关联模型分支为多维度分支,则获取第一关联模型分支;第一确定模块,用于将第一关联模型分支作为多维度分支。
进一步地,该数据处理装置还包括:第二判断单元,用于在分析数据库中构建第二关联模型之后,判断第二关联模型中是否存具有多个维度表的关联模型分支;第二转换单元,用于在判断出第二关联模型中存在具有多个维度表的关联模型分支时,将具有多个维度表的关联模型分支转换为多个具有一个维度表的关联模型分支;以及第二构建单元,用于根据多个具有一个维度表的关联模型分支构建星型关联模型。
进一步地,该数据处理装置还包括:视图创建单元,用于在获取数据仓库中的第一关联模型之后,在数据仓库中创建第二关联模型的视图,其中,视图用于表示事实表与维度表之间的连表关系;指向单元,用于将事实表指向视图,其中,第一转换单元包括:查找模块,用于查找第一关联模型中的多维度分支的事实表;第二确定模块,用于根据事实表得到视图;转换模块,用于基于视图在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支。
进一步地,该数据处理装置还包括:索引创建单元,用于在数据仓库中创建视图之后,根据连表关系创建连表关系的索引。
通过本发明,采用获取数据仓库中的第一关联模型,其中,第一关联模型包括事实表、维度表和事实表与维度表的第一关联关系,第一关联模型包括多个第一关联模型分支,每个第一关联模型分支包括事实表和维度表,并且多个第一关联模型分支具有相同的事实表,至少一个第一关联模型分支为多维度分支,多维度分支包括一个事实表和多个维度表;从第一关联模型中获取多维度分支;在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支,其中,第二关联模型分支中维度表的数目小于多维度分支中维度表的数目;以及根据第一关联模型分支和第二关联模型分支,在分析数据库中构建第二关联模型。由于每个关联模型分支中的维度表的数目越少,在分析数据库中查询所消耗的时间也越少,而关联模型分支中的维度表的数目越多,在数据仓库中占用的存储空间也越大,因此通过将多维度分支转换为维度表的数目更少的第二关联模型分支,可以减少查询所消耗的时间,并且而以维度表的数目较多的第一关联模型分支对应的关联关系在数据仓库中存储数据可以占用较小的存储空间,解决了相关技术中在联机分析处理时,难以平衡查询速度和存储空间的问题,进而达到了数据不仅占用存储空间少、而且查询耗时短的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的用于联机分析处理中关联关系的数据处理装置的示意图;
图2是根据本发明实施例的事实表与维度表为第一关联模型的示意图;
图3a根据图2转换得到的事实表与维度表的第二关联模型的示意图;
图3b是根据图2转换得到的事实表与维度表的又一第二关联模型的示意图;
图3c是根据图2转换得到的事实表与维度表的又一第二关联模型的示意图;
图3d是根据图2转换得到的事实表与维度表的又一第二关联模型的示意图;
图3e是根据图2转换得到的事实表与维度表的又一第二关联模型的示意图;
图3f是根据图2转换得到的事实表与维度表的又一第二关联模型的示意图;
图3g是根据图2转换得到的事实表与维度表的又一第二关联模型的示意图;
图4是根据本发明实施例的可选地用于联机分析处理中关联关系的数据处理装置的示意图;
图5是根据本发明实施例的用于联机分析处理中关联关系的数据处理方法的流程图;以及
图6是根据本发明实施例的可选地用于联机分析处理中关联关系的数据处理方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本领域的技术人员更好的理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,在本领域普通技术人员没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
根据本发明的实施例,提供了一种用于联机分析处理中关联关系的数据处理装置,该用于联机分析处理中关联关系的数据处理装置用于将数据仓库中的雪花型关联关系中的较长的关联模型分支在分析数据库中转换成较短的关联模型分支。
图1是根据本发明实施例的用于联机分析处理中关联关系的数据处理装置的示意图。
如图1所示,该装置包括:第一获取单元10、第二获取单元20、第一转换单元30和第一构建单元40。
第一获取单元10用于获取数据仓库中的第一关联模型。
数据仓库中可以用于存储雪花型关联关系和/或星型关联模型的事实表和维度表。其中,在本发明实施例中,第一关联模型可以包括事实表、维度表和事实表与维度表的第一关联关系。第一关联模型为雪花型关联关系,它可以包括多个第一关联模型分支。每个第一关联模型分支可以包括一个事实表和一个或者多个维度表。当一个第一关联模型分支包括一个事实表和一个维度表时,该事实表可以通过一步关联指向维度表;当一个第一关联模型分支包括一个事实表和多个维度表,并且上述多个维度表分别为第一维度表、第二维度表、……、第N维度表时,该事实表可以通过一步关联指向第一维度表,第一维度表可以通过一步关联指向第二维度表,……,第N-1维度表可以通过一步关联指向第N维度表,即该事实表可以分别通过一步、二步、……、N步关联指向第一维度表、第二维度表、……、第N维度表。每个第一关联模型可以包括多个第一关联模型分支,所有属于同一个第一关联模型的第一关联模型分支均具有相同的事实表,并且至少有一个第一关联模型分支为多维度分支。每个多维度分支包括一个事实表和多个维度表。而只有一个事实表和一个维度表的第一关联模型分支为单维度分支。
例如,如图2所示,该雪花型关联关系包括事实表1、维度表2、维度表3、维度表4、维度表5、维度表6、维度表7,事实表1与各维度表之间的连表关系如图2所示。其中,该雪花型关联关系的包括3个第一关联模型分支,该3个第一关联模型分支分别为第一关联模型分支a(事实表1→维度表2)、第一关联模型分支b(事实表1→维度表3→维度表4)、第一关联模型分支c(事实表1→维度表5→维度表6→维度表7)。
在本发明实施例中,获取数据仓库中事实表与维度表的第一关联模型可以包括获取多个第一关联模型分支,即可以获取一个第一关联模型的全部或者部分第一关联模型分支。
优选地,由于数据仓库中除了存储有雪花型关联关系之外,还可能存储有星型关联模型,因此在获取数据仓库中事实表与维度表的第一关联模型之前,该数据处理方法还可以包括:首先,判断数据仓库中是否存在星型关联模型的事实表与维度表,然后,如果判断出数据仓库中存在星型关联模型的事实表与维度表,则不需要对该星型关联模型进行任何处理,而直接在分析数据库中进行联机分析处理(On-Line Analytical Processing,简称Olap),如果判断出数据仓库中不存在星型关联模型的事实表与维度表,则先执行图1所示的各功能单元和功能模块,将雪花型关联关系进行转化为第二关联模型。在将雪花型关联关系进行转化为第二关联模型之后,再在分析数据库中对第二关联模型进行联机分析处理。其中,星型关联模型中每个关联模型分支都只有一个事实表和一个维度表。
第二获取单元20用于从第一关联模型中获取多维度分支。
从第一关联模型中获取多维度分支可以是获取一个或者多个多维度分支。以图2所示的第一关联模型为例,从该第一关联模型中获取多维度分支可以包括:(1)只获取第一关联模型分支b(事实表1→维度表3→维度表4);(2)只获取第一关联模型分支c(事实表1→维度表5→维度表6→维度表7);(3)同时获取第一关联模型分支b(事实表1→维度表3→维度表4)和第一关联模型分支c(事实表1→维度表5→维度表6→维度表7)。
第一转换单元30用于在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支。
需要说明的是,第二关联模型分支可以包括多维度分支和单维度分支。其中,第二关联模型分支中维度表的数目小于转换之前的第一关联模型中的该多维度分支中维度表的数目。例如:
(一)基于上述(1),可以将第一关联模型分支b转换为第二关联模型分支a(事实表1→维度表3)和第二关联模型分支b(事实表1→维度表4),其中,第二关联模型分支a和第二关联模型分支b中维度表的个数均为1,小于第一关联模型分支b中的维度表的个数2。
(二)情况1:基于上述(2),可以将第一关联模型分支c转换为第二关联模型分支c(事实表1→维度表5→维度表6)和第二关联模型分支d(事实表1→维度表7),其中,第二关联模型分支c和第二关联模型分支d中维度表的个数分别为2和1,均小于第一关联模型分支c中的维度表的个数3。情况2:基于上述(2),还可以将其转换为第二关联模型分支e(事实表1→维度表5)、第二关联模型分支f(事实表1→维度表6)和第二关联模型分支g(事实表1→维度表7),其中,第二关联模型分支e、第二关联模型分支f和第二关联模型分支g中维度表的个数均为1,小于第一关联模型分支c中的维度表的个数3。情况3:基于上述(2),还可以将其转换为第二关联模型分支h(事实表1→维度表5→维度表7)和第二关联模型分支f(事实表1→维度表6),其中,第二关联模型分支h和第二关联模型分支f中维度表的个数分别为2和1,均小于第一关联模型分支c中的维度表的个数3。
(三)基于上述(3),可以将第一关联模型分支b(一)中的各第二关联模型分支,以及将第一关联模型分支c转换为(二)中情况1的各第二关联模型分支;或者基于上述(3),还可以将第一关联模型分支b转换为(一)中的各第二关联模型分支,以及将第一关联模型分支c转换为(二)中情况2的各第二关联模型分支;或者基于上述(3),还可以将第一关联模型分支b转换为(一)中的各第二关联模型分支,以及将第一关联模型分支c转换为(二)中情况3的各第二关联模型分支。
需要说明的是,上述(三)中将第一关联模型分支b转换为(一)中的各第二关联模型分支,以及将第一关联模型分支c转换为(二)中情况2的各第二关联模型分支的转换最为彻底,该种转换之后得到的第二关联模型为星型关联模型,除此之外,其他转换得到的第二关联模型均为雪花型关联关系。
第一构建单元40用于根据第一关联模型分支和第二关联模型分支,在分析数据库中构建第二关联模型。
需要说明的是,在此,所根据的第一关联模型分支可以是所有单维度表的第一关联模型分支。依据上述图2所示的示例,基于(一)、(二)和(三)可以分别创建如图3a-图3g所示的第二关联模型,其中,图3f所示的第二关联模型为星型关联模型,图3a-图3e和图3g所示的第二关联模型为雪花型关联关系,然而,图3a-图3e和图3g所示的雪花型关联关系与图2所示的雪花型关联关系相比,至少有一个关联模型分支发生了转换,并且发生转换的关联模型分支在转换之后变成了多个维度表的数目均小于转换之前的该关联模型分支中维度表的数目的关联模型分支。需要说明的是图3a-图3g中均包含事实表1和维度表2-维度表7,图3a-图3g中的箭头表示连接表之间的指向。
通过本发明实施例,由于每个关联模型分支中的维度表的数目越少,在分析数据库中查询所消耗的时间也越少,而关联模型分支中的维度表的数目越多,在数据仓库中占用的存储空间也越大,因此通过采用将多维度分支转换为维度表的数目更少的第二关联模型分支,可以减少查询所消耗的时间,并且以维度表的数目较多的第一关联模型分支对应的关联关系在数据仓库中存储数据可以占用较小的存储空间,达到了不仅占用存储空间少,而且查询耗时短的效果。
在本发明实施例中,在从第一关联模型中获取多维度分支之前,该数据处理装置还可以包括:第一判断单元。第一判断单元用于判断第一关联模型中的第一关联模型分支是否为多维度分支,其中,如果判断出第一关联模型中的第一关联模型分支为多维度分支,则第二获取单元20可以包括:获取模块和第一确定模块。获取模块用于获取第一关联模型分支。第一确定模块用于将第一关联模型分支作为多维度分支。具体地,可以通过判断第一关联模型分支中具有的维度表的数目判断第一关联模型分支是否为多维度分支。当第一关联模型分支中维度表的数目大于等于2时,则其为多维度分支;当第一关联模型分支中维度表的数目小于2时,则其为单维度分支。
通过采用判断第一关联模型中的第一关联模型分支是否为多维度分支,可以只对多维度分支进行转换处理,而对单维度分支不做任何处理,从而简化了对第一关联模型的转换过程,提高了转换效率。
图4是根据本发明实施例的可选地用于联机分析处理中关联关系的数据处理装置的示意图。
如图4所示,该实施例可以作为图1所示实施例的优选实施方式,该实施例的用于联机分析处理中关联关系的数据处理装置除了包括第一实施例的第一获取单元10、第二获取单元20、第一转换单元30和第一构建单元40之外,还包括第二判断单元50、第二转换单元60和第二构建单元70。
第一获取单元10、第二获取单元20、第一转换单元30和第一构建单元40的作用与图1所示实施例中的相同,在此不再赘述。
第二判断单元50用于判断第二关联模型中是否存在具有多个维度表的关联模型分支。
具体地,可以逐个检测第二关联模型中的所有第二关联模型分支,并判断每个第二关联模型分支中的维度表的数目是否小于2。如果判断出第二关联模型分支中的维度表的数目不小于2,则执行下述功能单元和功能模块。
第二转换单元60用于在判断出第二关联模型中存在具有多个维度表的关联模型分支时,将具有多个维度表的关联模型分支转换为多个具有一个维度表的关联模型分支。
具体地,如果判断出第二关联模型中存在具有多个维度表的关联模型分支,则将每个具有多个维度表的关联模型分支转换为多个仅仅具有一个维度表的关联模型分支。这样,所有的关联模型分支均为单维度表关联模型分支。
第二构建单元70用于根据多个具有一个维度表的关联模型分支创建星型关联模型。
通过本发明实施例,可以将雪花型关联关系转换成星型关联模型,由于星型关联模型中的每个关联模型分支均只有一个维度表,因此,基于星型关联模型进行数据查询的速度较快。
可选地,在本发明的上述任一实施例中,该数据处理装置还可以包括:视图创建单元和指向单元。该视图创建单元用于在获取数据仓库中事实表与维度表的第一关联模型之后,在数据仓库中创建第二关联模型的视图,其中,视图用于表示事实表与维度表之间的连表关系。指向单元用于将事实表指向视图。具体地,视图创建单元可以通过以下语句创建该视图:
CREATE VIEW SessionView AS
SELECT S.*,C.CityName,P.ProvinceName,DimCountry.CountrName
FROM FactSession S INNER JOIN DimCity C ON S.CityKey=C.CityKey
INNER JOIN DimProvince P ON C.provinceKey=P.ProvinceKey
INNER JOIN DimCountry ON DimCountry.CountryKey=P.CountryKey。
需要说明的是,该视图可以为虚拟视图,不需要对其进行物理存储,只是在Olap时,通过动态连表抽取相应的待分析数据。而通过视图抽取数据并进行动态计算,消耗的只是计算时的CPU,与需要逻辑读取以及维度处理的数据写入方式相比,该CPU耗时基本可以忽略不计,而创建视图只需要消耗较低的成本,因此可以通过花费较低的成本换取星型模型的转换。
其中,在数据仓库中创建第二关联模型的视图之后,第一转换单元30可以包括:查找模块、第二确定模块和转换模块。查找模块用于查找第一关联模型中的多维度分支的事实表。第二确定模块用于根据事实表得到其对应的视图。转换模块用于基于该视图在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支。优选地,可以将所有的多维度分支全部转换成单维度分支。
根据本发明的实施例,提供了一种用于联机分析处理中关联关系的数据处理方法,该用于联机分析处理中关联关系的数据处理方法用于将数据仓库中的雪花型关联关系中的较长的关联模型分支在分析数据库中转换成较短的关联模型分支。该用于联机分析处理中关联关系的数据处理方法可以运行在计算机处理设备上。需要说明的是,本发明实施例所提供的用于联机分析处理中关联关系的数据处理方法可以通过本发明实施例的用于联机分析处理中关联关系的数据处理装置来执行,本发明实施例的用于联机分析处理中关联关系的数据处理装置也可以用于执行本发明实施例的用于联机分析处理中关联关系的数据处理方法。
图5是根据本发明实施例的用于联机分析处理中关联关系的数据处理方法的流程图。
如图5所示,该方法包括如下的步骤S502至步骤S508:
步骤S502,获取数据仓库中的第一关联模型。
数据仓库中可以用于存储雪花型关联关系和/或星型关联模型的事实表和维度表。其中,在本发明实施例中,第一关联模型为雪花型关联关系,它可以包括多个第一关联模型分支。每个第一关联模型分支可以包括一个事实表和一个或者多个维度表。当一个第一关联模型分支包括一个事实表和一个维度表时,该事实表可以通过一步关联指向维度表;当一个第一关联模型分支包括一个事实表和多个维度表,并且上述多个维度表分别为第一维度表、第二维度表、……、第N维度表时,该事实表可以通过一步关联指向第一维度表,第一维度表可以通过一步关联指向第二维度表,……,第N-1维度表可以通过一步关联指向第N维度表,即该事实表可以分别通过一步、二步、……、N步关联指向第一维度表、第二维度表、……、第N维度表。每个第一关联模型可以包括多个第一关联模型分支,所有属于同一个第一关联模型的第一关联模型分支均具有相同的事实表,并且至少有一个第一关联模型分支为多维度分支。每个多维度分支包括一个事实表和多个维度表。而只有一个事实表和一个维度表的第一关联模型分支为单维度分支。
例如,如图2所示,该雪花型关联关系包括事实表1、维度表2、维度表3、维度表4、维度表5、维度表6、维度表7,事实表1与各维度表之间的连表关系如图2所示。其中,该雪花型关联关系的包括3个第一关联模型分支,该3个第一关联模型分支分别为第一关联模型分支a(事实表1→维度表2)、第一关联模型分支b(事实表1→维度表3→维度表4)、第一关联模型分支c(事实表1→维度表5→维度表6→维度表7)。
在本发明实施例中,获取数据仓库中事实表与维度表的第一关联模型可以包括获取多个第一关联模型分支,即可以获取一个第一关联模型的全部或者部分第一关联模型分支。
优选地,由于数据仓库中除了存储有雪花型关联关系之外,还可能存储有星型关联模型,因此在获取数据仓库中事实表与维度表的第一关联模型之前,该数据处理方法还可以包括:首先,判断数据仓库中是否存在星型关联模型的事实表与维度表,然后,如果判断出数据仓库中存在星型关联模型的事实表与维度表,则不需要对该星型关联模型进行任何处理,而直接在分析数据库中进行联机分析处理(On-Line Analytical Processing,简称Olap),如果判断出数据仓库中不存在星型关联模型的事实表与维度表,则先执行图5所示的各步骤,将雪花型关联关系进行转化为第二关联模型。在将雪花型关联关系进行转化为第二关联模型之后,再在分析数据库中对第二关联模型进行联机分析处理。其中,星型关联模型中每个关联模型分支都只有一个事实表和一个维度表。
步骤S504,从第一关联模型中获取多维度分支。
从第一关联模型中获取多维度分支可以是获取一个或者多个多维度分支。以图2所示的第一关联模型为例,从该第一关联模型中获取多维度分支可以包括:(1)只获取第一关联模型分支b(事实表1→维度表3→维度表4);(2)只获取第一关联模型分支c(事实表1→维度表5→维度表6→维度表7);(3)同时获取第一关联模型分支b(事实表1→维度表3→维度表4)和第一关联模型分支c(事实表1→维度表5→维度表6→维度表7)。
步骤S506,在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支。
需要说明的是,第二关联模型分支可以包括多维度分支和单维度分支。其中,第二关联模型分支中维度表的数目小于转换之前的第一关联模型中的该多维度分支中维度表的数目。例如:
(一)基于上述(1),可以将第一关联模型分支b转换为第二关联模型分支a(事实表1→维度表3)和第二关联模型分支b(事实表1→维度表4),其中,第二关联模型分支a和第二关联模型分支b中维度表的个数均为1,小于第一关联模型分支b中的维度表的个数2。
(二)情况1:基于上述(2),可以将第一关联模型分支c转换为第二关联模型分支c(事实表1→维度表5→维度表6)和第二关联模型分支d(事实表1→维度表7),其中,第二关联模型分支c和第二关联模型分支d中维度表的个数分别为2和1,均小于第一关联模型分支c中的维度表的个数3。情况2:基于上述(2),还可以将其转换为第二关联模型分支e(事实表1→维度表5)、第二关联模型分支f(事实表1→维度表6)和第二关联模型分支g(事实表1→维度表7),其中,第二关联模型分支e、第二关联模型分支f和第二关联模型分支g中维度表的个数均为1,小于第一关联模型分支c中的维度表的个数3。情况3:基于上述(2),还可以将其转换为第二关联模型分支h(事实表1→维度表5→维度表7)和第二关联模型分支f(事实表1→维度表6),其中,第二关联模型分支h和第二关联模型分支f中维度表的个数分别为2和1,均小于第一关联模型分支c中的维度表的个数3。
(三)基于上述(3),可以将第一关联模型分支b(一)中的各第二关联模型分支,以及将第一关联模型分支c转换为(二)中情况1的各第二关联模型分支;或者基于上述(3),还可以将第一关联模型分支b转换为(一)中的各第二关联模型分支,以及将第一关联模型分支c转换为(二)中情况2的各第二关联模型分支;或者基于上述(3),还可以将第一关联模型分支b转换为(一)中的各第二关联模型分支,以及将第一关联模型分支c转换为(二)中情况3的各第二关联模型分支。
需要说明的是,上述(三)中将第一关联模型分支b转换为(一)中的各第二关联模型分支,以及将第一关联模型分支c转换为(二)中情况2的各第二关联模型分支的转换最为彻底,该种转换之后得到的第二关联模型为星型关联模型,除此之外,其他转换得到的第二关联模型均为雪花型关联关系。
步骤S508,根据第一关联模型分支和第二关联模型分支,在分析数据库中构建第二关联模型。
需要说明的是,在此,所根据的第一关联模型分支可以是所有单维度表的第一关联模型分支。依据上述图2所示的示例,基于(一)、(二)和(三)可以分别创建如图3a-图3g所示的第二关联模型,其中,图3f所示的第二关联模型为星型关联模型,图3a-图3e和图3g所示的第二关联模型为雪花型关联关系,然而,图3a-图3e和图3g所示的雪花型关联关系与图2所示的雪花型关联关系相比,至少有一个关联模型分支发生了转换,并且发生转换的关联模型分支在转换之后变成了多个维度表的数目均小于转换之前的该关联模型分支中维度表的数目的关联模型分支。需要说明的是图3a-图3g中均包含事实表1和维度表2-维度表7,图3a-图3g中的箭头表示连接表之间的指向。
通过本发明实施例,由于每个关联模型分支中的维度表数目越少,在分析数据库中查询所消耗的时间也越少,而关联模型分支中的维度表数目越多,在数据仓库中占用的存储空间也越大,因此通过采用将多维度分支转换为维度表数目更少的第二关联模型分支,可以减少查询所消耗的时间,并且以维度表数目较多的第一关联模型分支对应的关联关系在数据仓库中存储数据可以占用较小的存储空间,达到了不仅占用存储空间少,而且查询耗时短的效果。
在本发明实施例中,在从第一关联模型中获取多维度分支之前,该数据处理方法还可以包括:判断第一关联模型中的第一关联模型分支是否为多维度分支,其中,如果判断出第一关联模型中的第一关联模型分支为多维度分支,则从第一关联模型中获取多维度分支可以包括:获取第一关联模型分支,并将第一关联模型分支作为多维度分支。具体地,可以通过判断第一关联模型分支中具有的维度表的数目判断第一关联模型分支是否为多维度分支。当第一关联模型分支中维度表的数目大于等于2时,则其为多维度分支;当第一关联模型分支中维度表的数目小于2时,则其为单维度分支。
通过采用判断第一关联模型中的第一关联模型分支是否为多维度分支,可以只对多维度分支进行转换处理,而对单维度分支不做任何处理,从而简化了对第一关联模型的转换过程,提高了转换效率。
图6是根据本发明实施例的可选地用于联机分析处理中关联关系的数据处理方法的流程图。
如图6所示,该用于联机分析处理中关联关系的数据处理方法包括如下的步骤S502至步骤S514,该实施例可以作为图5所示实施例的优选实施方式。
步骤S602至步骤S608,分别同图5所示实施例的步骤S502至步骤S508,在此不再赘述。
步骤S610,判断第二关联模型中是否存在具有多个维度表的关联模型分支。
具体地,可以逐个检测第二关联模型中的所有第二关联模型分支,并判断每个第二关联模型分支中的维度表的数目是否小于2。如果判断出第二关联模型分支中的维度表的数目不小于2,则执行下述步骤。
步骤S612,如果判断出第二关联模型中存在具有多个维度的关联关模型分支,则将具有多个维度表的关联模型分支转换为多个具有一个维度表的关联模型分支。
具体地,如果判断出第二关联模型中存在具有多个维度表的关联模型分支,则将每个具有多个维度表的关联模型分支转换为多个仅仅具有一个维度表的关联模型分支。这样,所有的关联模型分支均为单维度表关联模型分支。
步骤S614,根据多个具有一个维度表的关联模型分支创建星型关联模型。
通过本发明实施例,可以将雪花型关联关系转换成星型关联模型,由于星型关联模型中的每个关联模型分支均只有一个维度表,因此,基于星型关联模型进行数据查询的速度较快。
可选地,在本发明的上述任一实施例中,在获取数据仓库中事实表与维度表的第一关联模型之后,该数据处理方法还可以包括:在数据仓库中创建第二关联模型的视图,其中,视图用于表示事实表与维度表之间的连表关系;将事实表指向视图。具体地,可以通过以下语句创建该视图:
CREATE VIEW SessionView AS
SELECT S.*,C.CityName,P.ProvinceName,DimCountry.CountrName
FROM FactSession S INNER JOIN DimCity C ON S.CityKey=C.CityKey
INNER JOIN DimProvince P ON C.provinceKey=P.ProvinceKey
INNER JOIN DimCountry ON DimCountry.CountryKey=P.CountryKey。
需要说明的是,该视图可以为虚拟视图,不需要对其进行物理存储,只是在Olap时,通过动态连表抽取相应的待分析数据。而通过视图抽取数据并进行动态计算,消耗的只是计算时的CPU,与需要逻辑读取以及维度处理的数据写入方式相比,该CPU耗时基本可以忽略不计,而创建视图只需要消耗较低的成本,因此可以通过花费较低的成本换取星型模型的转换。
其中,在数据仓库中创建第二关联模型的视图之后,在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支可以包括:查找第一关联模型中的多维度分支的事实表;根据事实表得到其对应的视图;基于该视图在分析数据库中将第一关联模型中的多维度分支转换成第二关联模型分支,优选地,可以将所有的多维度分支全部转换成单维度分支。
由此可见,通过视图中的连表关系,可以直接选取任意雪花型关联关系中的维度表,从而得到一个星型关联模型结构的视图,再应用此星型关联模型结构的视图做后续处理,最后用做Olap里相关联的事实表和维度表。这样,便实现了雪花型关联关系到星型关联模型的转换。
优选地,在数据仓库中创建视图之后,该数据处理方法还可以包括:根据连表关系创建连表关系的索引。这样,可以通过索引中所示的连表关系创建相应的第二关联模型,从而提高了建模(即创建第二关联模型)效率。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种用于联机分析处理中关联关系的数据处理方法,其特征在于,包括:
获取数据仓库中的第一关联模型,其中,所述第一关联模型包括事实表、维度表和所述事实表与所述维度表的第一关联关系,所述第一关联模型包括多个第一关联模型分支,每个所述第一关联模型分支包括所述事实表和所述维度表,并且所述多个第一关联模型分支具有相同的所述事实表,至少有一个所述第一关联模型分支为多维度分支,所述多维度分支包括一个所述事实表和多个所述维度表;
从所述第一关联模型中获取所述多维度分支;
在分析数据库中将所述第一关联模型中的所述多维度分支转换成第二关联模型分支,其中,所述第二关联模型分支中所述维度表的数目小于所述多维度分支中所述维度表的数目;以及
根据所述第一关联模型分支和所述第二关联模型分支,在所述分析数据库中构建第二关联模型;
其中,以包括多个所述维度表的所述第一关联模型分支对应的关联关系在数据仓库中存储数据;
其中,所述第二关联模型包括雪花型模型。
2.根据权利要求1所述的数据处理方法,其特征在于,在从所述第一关联模型中获取所述多维度分支之前,所述数据处理方法还包括:
判断所述第一关联模型中的所述第一关联模型分支是否为所述多维度分支,
其中,如果判断出所述第一关联模型中的所述第一关联模型分支为所述多维度分支,则从所述第一关联模型中获取所述多维度分支包括:获取所述第一关联模型分支;将所述第一关联模型分支作为所述多维度分支。
3.根据权利要求1所述的数据处理方法,其特征在于,在所述分析数据库中构建第二关联模型之后,所述数据处理方法还包括:
判断所述第二关联模型中是否存在具有多个所述维度表的关联模型分支;
如果判断出所述第二关联模型中存在具有多个所述维度表的关联模型分支,
则将所述具有多个所述维度表的关联模型分支转换为多个具有一个所述维度表的关联模型分支;以及
根据所述多个具有一个所述维度表的关联模型分支创建星型关联模型。
4.根据权利要求1至3任一项所述的数据处理方法,其特征在于,
在获取数据仓库中的第一关联模型之后,所述数据处理方法还包括:在所述数据仓库中创建所述第二关联模型的视图,其中,所述视图用于表示所述事实表与所述维度表之间的连表关系;将所述事实表指向所述视图,
在分析数据库中将所述第一关联模型中的所述多维度分支转换成第二关联模型分支包括:查找所述第一关联模型中的所述多维度分支的所述事实表;根据所述事实表得到所述视图;基于所述视图在分析数据库中将所述第一关联模型中的所述多维度分支转换成第二关联模型分支。
5.根据权利要求4所述的数据处理方法,其特征在于,在所述数据仓库中创建视图之后,所述数据处理方法还包括:根据所述连表关系创建所述连表关系的索引。
6.一种用于联机分析处理中关联关系的数据处理装置,其特征在于,包括:
第一获取单元,用于获取数据仓库中的第一关联模型,其中,所述第一关联模型包括事实表、维度表和所述事实表与所述维度表的第一关联关系,所述第一关联模型包括多个第一关联模型分支,每个所述第一关联模型分支包括所述事实表和所述维度表,并且所述多个第一关联模型分支具有相同的所述事实表,至少有一个所述第一关联模型分支为多维度分支,所述多维度分支包括一个所述事实表和多个所述维度表;
第二获取单元,用于从所述第一关联模型中获取所述多维度分支;
第一转换单元,用于在分析数据库中将所述第一关联模型中的所述多维度分支转换成第二关联模型分支,其中,所述第二关联模型分支中所述维度表的数目小于所述多维度分支中所述维度表的数目;以及
第一构建单元,用于根据所述第一关联模型分支和所述第二关联模型分支,在所述分析数据库中构建第二关联模型;
其中,以包括多个所述维度表的所述第一关联模型分支对应的关联关系在数据仓库中存储数据;
其中,所述第二关联模型包括雪花型模型。
7.根据权利要求6所述的数据处理装置,其特征在于,所述数据处理装置还包括:
第一判断单元,用于在从所述第一关联模型中获取所述多维度分支之前,判断所述第一关联模型中的所述第一关联模型分支是否为所述多维度分支,
其中,所述第二获取单元包括:获取模块,用于如果判断出所述第一关联模型中的所述第一关联模型分支为所述多维度分支,则获取所述第一关联模型分支;第一确定模块,用于将所述第一关联模型分支作为所述多维度分支。
8.根据权利要求6所述的数据处理装置,其特征在于,所述数据处理装置还包括:
第二判断单元,用于在所述分析数据库中构建第二关联模型之后,判断所述第二关联模型中是否存具有多个所述维度表的关联模型分支;
第二转换单元,用于在判断出所述第二关联模型中存在具有多个所述维度表的关联模型分支时,将所述具有多个所述维度表的关联模型分支转换为多个具有一个所述维度表的关联模型分支;以及
第二构建单元,用于根据所述多个具有一个所述维度表的关联模型分支构建星型关联模型。
9.根据权利要求6至8任一项所述的数据处理装置,其特征在于,所述数据处理装置还包括:
视图创建单元,用于在获取数据仓库中的第一关联模型之后,在所述数据仓库中创建所述第二关联模型的视图,其中,所述视图用于表示所述事实表与所述维度表之间的连表关系;
指向单元,用于将所述事实表指向所述视图,
其中,所述第一转换单元包括:查找模块,用于查找所述第一关联模型中的所述多维度分支的所述事实表;第二确定模块,用于根据所述事实表得到所述视图;转换模块,用于基于所述视图在分析数据库中将所述第一关联模型中的所述多维度分支转换成第二关联模型分支。
10.根据权利要求9所述的数据处理装置,其特征在于,所述数据处理装置还包括:索引创建单元,用于在所述数据仓库中创建视图之后,根据所述连表关系创建所述连表关系的索引。
CN201410116940.7A 2014-03-26 2014-03-26 用于联机分析处理中关联关系的数据处理方法和装置 Active CN103927337B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410116940.7A CN103927337B (zh) 2014-03-26 2014-03-26 用于联机分析处理中关联关系的数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410116940.7A CN103927337B (zh) 2014-03-26 2014-03-26 用于联机分析处理中关联关系的数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN103927337A CN103927337A (zh) 2014-07-16
CN103927337B true CN103927337B (zh) 2017-12-19

Family

ID=51145558

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410116940.7A Active CN103927337B (zh) 2014-03-26 2014-03-26 用于联机分析处理中关联关系的数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN103927337B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182546B (zh) * 2014-09-09 2017-10-27 北京国双科技有限公司 数据库的数据查询方法及装置
CN104391948B (zh) * 2014-12-01 2017-11-21 广东电网有限责任公司清远供电局 数据仓库的数据标准化构建方法及系统
US9965503B2 (en) 2015-08-12 2018-05-08 International Business Machines Corporation Data cube generation
CN105224635A (zh) * 2015-09-24 2016-01-06 广州精点计算机科技有限公司 一种基于混合模型的并行olap构建装置及构建方法
CN106933897B (zh) * 2015-12-31 2020-02-07 北京国双科技有限公司 数据查询方法和装置
CN107729500B (zh) * 2017-10-20 2021-01-05 锐捷网络股份有限公司 一种联机分析处理的数据处理方法、装置及后台设备
CN109165223A (zh) * 2018-08-24 2019-01-08 张宇 一种信息数据链接方法
CN109977175B (zh) * 2019-03-20 2021-06-01 跬云(上海)信息科技有限公司 数据配置查询方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101542478A (zh) * 2006-06-26 2009-09-23 尼尔森(美国)有限公司 提高数据仓库性能的方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181450B2 (en) * 2002-12-18 2007-02-20 International Business Machines Corporation Method, system, and program for use of metadata to create multidimensional cubes in a relational database
US7818349B2 (en) * 2004-02-21 2010-10-19 Datallegro, Inc. Ultra-shared-nothing parallel database
US8671091B2 (en) * 2006-08-02 2014-03-11 Hewlett-Packard Development Company, L.P. Optimizing snowflake schema queries
CN101556602B (zh) * 2009-04-08 2013-07-03 王珊 一种基于差分表的内存OLAP What-if分析方法
US8543535B2 (en) * 2010-02-24 2013-09-24 Oracle International Corporation Generation of star schemas from snowflake schemas containing a large number of dimensions
CN102156725B (zh) * 2011-04-01 2013-07-31 中国测绘科学研究院 一种提高数据仓库查询性能的方法
US8700679B2 (en) * 2012-04-17 2014-04-15 Sap Ag Classic to in-memory cube conversion
CN103294805B (zh) * 2013-05-30 2016-12-28 华为技术有限公司 数据仓库个性化维度表的创建方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101542478A (zh) * 2006-06-26 2009-09-23 尼尔森(美国)有限公司 提高数据仓库性能的方法和装置

Also Published As

Publication number Publication date
CN103927337A (zh) 2014-07-16

Similar Documents

Publication Publication Date Title
CN103927337B (zh) 用于联机分析处理中关联关系的数据处理方法和装置
Zhang et al. An incremental CFS algorithm for clustering large data in industrial internet of things
Marble et al. Asymptotically near-optimal planning with probabilistic roadmap spanners
CN109214068B (zh) 基于bim的底层装配式建筑信息提取方法
Heymann et al. Visual analysis of complex networks for business intelligence with gephi
US5561790A (en) Shortest path determination processes for use in modeling systems and communications networks
CN106294661B (zh) 一种扩展搜索方法与装置
CN110503124A (zh) 利用基于深度神经网络模型基于用户选择的视觉属性来标识视觉相似数字图像
Guo et al. Deep vision networks for real-time robotic grasp detection
CN109002516A (zh) 一种搜索方法及装置
CN108733713A (zh) 数据仓库中的数据查询方法及装置
CN105224554A (zh) 推荐搜索词进行搜索的方法、系统、服务器和智能终端
Kang et al. Fast and scalable approximate spectral graph matching for correspondence problems
CN104778258A (zh) 一种面向协议数据流的数据抽取方法
CN110399387A (zh) 基于表关联关系动态生成查询sql的方法及装置
Basl Penetration of Industry 4.0 principles into ERP vendors’ products and services–a central european study
CN107818168A (zh) 题目搜索方法、装置及设备
WO2017095644A1 (en) Phasing of multi-output query operators
CN110377745A (zh) 信息处理方法、信息检索方法、装置及服务器
Ishida et al. A hardware intelligent processing accelerator for domestic service robots
CN103065321B (zh) 一种图像特征点匹配模块的面向对象系统框架建立方法
KR20150121945A (ko) 아이템 추천 시스템 및 아이템 추천 방법
Zhu et al. Mixed attention dense network for sketch classification
CN105183737A (zh) 外观设计专利即时检索系统及检索方法
Kappel et al. Internet of production: entering phase two of industry 4.0

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and device for processing data of association relationships in online analytical processing

Effective date of registration: 20190531

Granted publication date: 20171219

Pledgee: Shenzhen Black Horse World Investment Consulting Co., Ltd.

Pledgor: Beijing Guoshuang Technology Co.,Ltd.

Registration number: 2019990000503

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Patentee after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Patentee before: Beijing Guoshuang Technology Co.,Ltd.