具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
图1是根据本发明的分析数据库的维度剖析方法的第一实施例的流程图。如图1所示,该分析数据库的维度剖析方法包括:
步骤S101,获取分析数据库中第一维度表,其中,第一维度表是分析数据库中数据量大于第一预设阈值的维度表。
SSAS中包含分析数据库,分析数据库可以对数据进行在线统计、数据在线分析、随即查询等发掘信息数据价值的工作,是数据库产品一个重要的分支。
维度表可以看作是用户来分析数据的窗口,维度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构。例如,包含产品信息的维度表通常包含将产品分为食品、饮料、非消费品等若干类的层次结构,这些产品中的每一类进一步多次细分,直到各产品达到最低级别。在维度表中,每个表都包含独立于其他维度表的事实特性,例如,客户维度表包含有关客户的数据。维度表中的列字段可以将信息分为不同层次的结构级。维度表包含了事实表中指定属性的相关详细信息,比如,详细的产品,客户属性,存储信息等。
获取分析数据库中的第一维度表,是先检测维度表的数据量,再将各维度表的数据量与设定的第一预设阈值进行比较,挑选出数据量大于第一预设阈值的维度表。在对分析数据库中维度表进行剖析时,多次扫描大维度表会导致剖析速度变慢,占用资源过多,本步的目的是为了筛选出分析数据库中的大维度表,即数据量超过阈值的维度表,对筛选出的大维度表经过后续处理,当析数据库在对维度进行剖析时,提升剖析速度。
步骤S102,获取第一维度表中的预设维度列。
维度表由多个维度列组成,各个维度列上包含多个成员值,上述步骤筛选出大维度表,在大维度表的基础上,筛选出大维度里粒度比较细的维度列,如如Url等比较密集型的维度列,这些维度列最容易导致剖析时出现性能问题。将筛选出的维度列经过后续处理,当析数据库在对维度进行剖析时,提升剖析速度。
步骤S103,创建与预设维度列对应的共享维度。
共享维度是在分析数据库内创建的维度,可以由该分析数据库内的任意多维数据集使用。共享维度物理存储是一个维度,但逻辑上是多个维度,通过在分析数据库中建立共享维度与筛选出的预设维度列一一对应,在对大维度表中粒度比较细的维度列进行剖析时,映射在共享维度中进行剖析。此步骤能绕过AutoExists的判定。AutoExists是SSAS维度剖析里的一个特性,对于大维度而言,若里面的多个属性同时进行剖析,则SSAS会对该大维度表里的各属性进行AutoExists的判定,并且仅找出符合各列过滤条件下,都存在的值,此举会导致性能问题,进行此AutoExists的过滤会扫描多次维度表进行判定,从而导致了剖析速度巨慢。此步骤绕过AutoExists的判定,对大维度多个属性同时进行剖析,提升了剖析速度。
步骤S104,对第一维度表中多个属性同时进行剖析时,通过第一维度表中预设维度列对应的共享维度进行剖析。
根据用户输入的过滤条件,对维度表属性进行剖析,获得符合过滤条件,用户想得到的数据。在大维度表中,对多个属性同时进行剖析时,获取到大维度表中粒度比较细的维度列,粒度比较细的维度列经过转换获得共享维度中对应的维度列,直接对共享维度中的维度进行剖析,避开了AutoExists处理的问题,因为在对共享维度进行剖析时,共享维度物理存储是一个维度,但逻辑上是多个维度。不会进行AutoExists的判定,从而不会调用AutoExists进行剖析。从而大大提升了剖析速度。
通过本发明提供的分析数据库的维度剖析方法,通过获取分析数据库中第一维度表,其中,第一维度表是分析数据库中数据量大于第一预设阈值的维度表;获取第一维度表中的预设维度列;创建与预设维度列对应的共享维度;对第一维度表中多个属性同时进行剖析时,通过第一维度表中预设维度列对应的共享维度进行剖析,解决了分析数据库中的维度在多属性同时剖析时,剖析速度慢的问题,达到了分析数据库中的维度在多属性同时剖析时,大大加快了剖析速度的效果。
图2是根据本发明的分析数据库的维度剖析方法的第二实施例的流程图。如图2所示,该分析数据库的维度剖析方法包括:
步骤S201,获取分析数据库中第一维度表,其中,第一维度表是分析数据库中数据量大于第一预设阈值的维度表。
该步骤同上述步骤S101。
步骤S202,获取第一维度表中的预设维度列。
该步骤同上述步骤S102。
步骤S203,创建与预设维度列对应的共享维度。
该步骤同上述步骤S103。
步骤S204,获取第一维度表中维度与指标的映射关系。
事实表编辑每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务。所产生的数据,事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据,并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性维度表的主键,而维度表包含事实记录的特性。事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与维度表中对应项的相关索引字段之外的任何数据。包含在事实数据表中的“度量值”有两种:一种是可以累计的度量值,另一种是非累计的度量值。最有用的度量值是可累计的度量值,其累计起来的数字是非常有意义的。用户可以通过累计度量值获得汇总信息,例如。可以汇总具体时间段内一组商店的特定商品的销售情况。非累计的度量值也可以用于事实数据表,单汇总结果一般是没有意义的,例如,在一座大厦的不同位置测量温度时,如果将大厦中所有不同位置的温度累加是没有意义的,但是求平均值是有意义的。
一般来说,一个事实数据表都要和一个或多个维度表相关联,用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。
步骤S205,根据映射关系,对共享维度设置相应映射关系。
映射指两个元素的集之间元素相互“对应”的关系,亦指“形成对应关系”。将获取事实表中指标与第一维度表建立映射关系,对共享维度设置相应映射关系。
步骤S206,通过映射关系,在共享维度中进行剖析,得到剖析结果。
通过维度表与指标建立对应关系,在共享维度中对维度进行剖析时,通过维度表能够相应的映射到其对应的指标。剖析结束,从而才会成功的返回剖析结果。
通过本发明提供的分析数据库的维度剖析方法,通过获取分析数据库中第一维度表,获取第一维度表中的预设维度列,创建与预设维度列对应的共享维度,获取第一维度表中维度与指标的映射关系;根据映射关系,对共享维度设置相应映射关系;其中,对第一维度表中多个属性同时进行剖析时,通过第一维度表中预设维度列对应的共享维度进行剖析包括:通过映射关系,在共享维度中进行剖析,得到剖析结果,解决了分析数据库中的维度在多属性同时剖析时,剖析速度慢的问题,达到了分析数据库中的维度在多属性同时剖析时,大大加快了剖析速度并且及时返回剖析结果的效果。
图3是根据本发明的分析数据库的维度剖析方法的第三实施例的流程图。如图3所示,该分析数据库的维度剖析方法包括:
步骤S301,获取分析数据库中第一维度表,其中,第一维度表是分析数据库中数据量大于第一预设阈值的维度表。
该步骤同上述步骤S101。
步骤S302,检测第一维度表中维度列的成员值总数,其中,在第一维度表中,不同的成员值用于表示不同的数值,成员值总数用于表示成员值的总数量。
检测上述筛选出的大维度表中成员值的总数量,获取各个大维度表的成员值总数量。
步骤S303,判断第一维度表中维度列的成员值总数是否大于第二预设阈值的维度列。
步骤S304,在第一维度表中维度列的成员值总数大于第二预设阈值的维度列的情况下,获取第一维度表中维度列。
在大维度表的基础上,筛选出大维度里粒度比较细的维度列,如如Url等比较密集型的维度列,这些维度列最容易导致剖析时出现性能问题。将筛选出的维度列经过后续处理,当析数据库在对维度进行剖析时,提升剖析速度。
步骤S305,创建与预设维度列对应的共享维度。
该步骤同上述步骤S103。
步骤S306,对第一维度表中多个属性同时进行剖析时,通过第一维度表中预设维度列对应的共享维度进行剖析。
该步骤同上述步骤S104。
通过本发明提供的分析数据库的维度剖析方法,通过获取分析数据库中第一维度表,检测第一维度表中维度列的成员值总数,判断第一维度表中维度列的成员值总数是否大于第二预设阈值的维度列,在第一维度表中维度列的成员值总数大于第二预设阈值的维度列的情况下,获取第一维度表中维度列,创建与预设维度列对应的共享维度,对第一维度表中多个属性同时进行剖析时,通过第一维度表中预设维度列对应的共享维度进行剖析,解决了分析数据库中的维度在多属性同时剖析时,剖析速度慢的问题,达到了分析数据库中的维度在多属性同时剖析时,获取出分析数据库中成员值较多的维度列,应用相应的共享维度中进行剖析,大大加快了剖析速度的效果。
图4是根据本发明的分析数据库的维度剖析方法的第四实施例的流程图。如图4所示,该分析数据库的维度剖析方法包括:
步骤S401,获取分析数据库中第一维度表,其中,第一维度表是分析数据库中数据量大于第一预设阈值的维度表。
该步骤同上述步骤S101。
步骤S402,获取第一维度表中的预设维度列。
该步骤同上述步骤S102。
步骤S403,创建与预设维度列对应的共享维度。
该步骤同上述步骤S103。
步骤S404,获取第三维度表,其中,第三维度表是分析数据库中需要进行剖析的维度表。
步骤S405,获取第三维度表中的第一维度列,其中,第一维度列是第三维度表维度列的成员值总数大于第三预设阈值的维度列,其中,在第三维度表中,不同的成员值用于表示不同的数值,成员值总数用于表示成员值的总数量。
步骤S406,从共享维度中,获取与第一维度列相对应的第二维度列。
第一维度列经过转换机制在共享维度中对应相应的共享维度,获取对应的共享维度。例如第一维度中为DimTableurl的维度,经过转换机制对应到共享维度为DimTableurl.url。应用DimTableurl.url进行剖析。
步骤S407,获取剖析的过滤条件。
步骤S408,通过剖析的过滤条件,对第二维度列进行剖析。
通过本发明提供的分析数据库的维度剖析方法,通过获取分析数据库中第一维度表,其中,第一维度表是分析数据库中数据量大于第一预设阈值的维度表。获取第一维度表中的预设维度列,创建与预设维度列对应的共享维度,获取第三维度表,其中,第三维度表是分析数据库中需要进行剖析的维度表,获取第三维度表中的第一维度列,其中,第一维度列是第三维度表维度列的成员值总数大于第三预设阈值的维度列,其中,在第三维度表中,不同的成员值用于表示不同的数值,成员值总数用于表示成员值的总数量,从共享维度中,获取与第一维度列相对应的第二维度列,获取剖析的过滤条件,通过剖析的过滤条件,对第二维度列进行剖析,解决了分析数据库中的维度在多属性同时剖析时,剖析速度慢的问题,达到了分析数据库中的维度在多属性同时剖析时,获取出分析数据库中成员值较多的维度列,应用相应的共享维度中进行剖析,大大加快了剖析速度的效果。
图5是根据本发明的分析数据库的维度剖析方法的第五实施例的流程图。如图5所示,该分析数据库的维度剖析方法包括:
步骤S501,获取分析数据库中第一维度表,其中,第一维度表是分析数据库中数据量大于第一预设阈值的维度表。
该步骤同上述步骤S101。
步骤S502,获取第一维度表中的预设维度列。
该步骤同上述步骤S102。
步骤S503,创建与预设维度列对应的共享维度。
该步骤同上述步骤S103。
步骤S504,获取第一维度表中维度与指标的映射关系;
该步骤同上述步骤S204。
步骤S505,根据映射关系,对共享维度设置相应映射关系;
该步骤同上述步骤S205。
步骤S506,获取剖析的过滤条件;
步骤S507,通过剖析的过滤条件,对事实表中的指标进行剖析,得到剖析结果,其中,事实表用于存储所有指标数据;
步骤S508,通过事实表中的维度与指标建立映射关系,找到剖析结果中指标所在的维度。
步骤S509,判断剖析结果中指标所在的维度是否建立共享维度;
步骤S510,在剖析结果中指标所在的维度建立共享维度的情况下,获取剖析结果中指标所在的维度对应的共享维度。
步骤S511,通过剖析的过滤条件,对剖析结果中指标所在的维度相对应的共享维度进行剖析。
通过本发明提供的分析数据库的维度剖析方法,获取分析数据库中第一维度表,其中,第一维度表是分析数据库中数据量大于第一预设阈值的维度表,获取第一维度表中的预设维度列,创建与预设维度列对应的共享维度,获取第一维度表中维度与指标的映射关系;根据映射关系,对共享维度设置相应映射关系;获取剖析的过滤条件;通过剖析的过滤条件,对事实表中的指标进行剖析,得到剖析结果,其中,事实表用于存储所有指标数据;通过第一维度表中维度与指标的映射关系,找到剖析结果中指标所在的维度;判断剖析结果中指标所在的维度是否建立共享维度;在剖析结果中指标所在的维度建立共享维度的情况下,获取剖析结果中指标所在的维度对应的共享维度;通过剖析的过滤条件,对剖析结果中指标所在的维度相对应的共享维度进行剖析,解决了分析数据库中的维度在多属性同时剖析时,剖析速度慢的问题,达到了使分析数据库中维度的剖析性能大大提升的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图6是根据本发明的分析数据库的维度剖析装置的第一实施例的示意图。如图6所示,该分析数据库的维度剖析装置包括:第一获取单元10、第二获取单元20、创建单元30和剖析单元40。
第一获取单元10,用于获取分析数据库中第一维度表,其中,第一维度表是分析数据库中数据量大于第一预设阈值的维度表。
第二获取单元20,用于获取第一维度表中的预设维度列。
创建单元30,用于创建与预设维度列对应的共享维度。
剖析单元40,用于对第一维度表中多个属性同时进行剖析时,通过第一维度表中预设维度列对应的共享维度进行剖析。
通过本发明提供的分析数据库的维度剖析装置,该装置包含第一获取单元10获取分析数据库中第一维度表,第二获取单元20获取第一维度表中的预设维度列,创建单元30创建与预设维度列对应的共享维度,剖析单元40对第一维度表中多个属性同时进行剖析时,通过第一维度表中预设维度列对应的共享维度进行剖析,解决了分析数据库中的维度在多属性同时剖析时,剖析速度慢的问题,达到了分析数据库中的维度在多属性同时剖析时,大大加快了剖析速度的效果。
图7是根据本发明的分析数据库的维度剖析装置的第二实施例的示意图。如图7所示,该分析数据库的维度剖析装置包括:第一获取单元10、第二获取单元20、创建单元30和剖析单元40。其中创建单元30包括:第一获取模块301、第一创建模块302和第一剖析模块303。
第一获取单元10、第二获取单元20、创建单元30和剖析单元40的作用与上述实施例中作用相同,在此不再赘述。
第一获取模块301,用于获取事实表中的指标,其中,事实表是在分析数据库中存储指标的维度表。
第一创建模块302,用于将第一维度表与事实表中的指标建立映射关系。
第一剖析模块303,用于通过映射关系,在共享维度中进行剖析,得到剖析结果。
图8是根据本发明的分析数据库的维度剖析装置的第三实施例的示意图。如图8所示,该分析数据库的维度剖析装置包括:第一获取单元10、第二获取单元20、创建单元30和剖析单元40。其中第二获取单元20包括:检测模块201、第一判断模块202和第二获取模块203。
第一获取单元10、第二获取单元20、创建单元30和剖析单元40的作用与上述实施例中作用相同,在此不再赘述。
检测模块201,用于检测第一维度表中维度列的成员值总数,其中,在第一维度表中,不同的成员值用于表示不同的数值,成员值总数用于表示成员值的总数量。
第一判断模块202,用于判断第一维度表中维度列的成员值总数是否大于第二预设阈值的维度列。
第二获取模块203,用于在第一维度表中维度列的成员值总数大于第二预设阈值的维度列的情况下,获取第一维度表中维度列。
图9是根据本发明的分析数据库的维度剖析装置的第四实施例的示意图。如图9所示,该分析数据库的维度剖析装置包括:第一获取单元10、第二获取单元20、创建单元30和剖析单元40。其中,剖析单元40包括:第三获取模块401、第四获取模块402、第五获取模块403、第六获取模块404和第二剖析模块405。
第一获取单元10、第二获取单元20、创建单元30和剖析单元40的作用与上述实施例中作用相同,在此不再赘述。
第三获取模块401,用于获取第三维度表,其中,第三维度表是分析数据库中需要进行剖析的维度表。
第四获取模块402,用于获取第三维度表中的第一维度列,其中,第一维度列是第三维度表维度列的成员值总数大于第三预设阈值的维度列,其中,在第三维度表中,不同的成员值用于表示不同的数值,成员值总数用于表示成员值的总数量。
第五获取模块403,用于从共享维度中,获取与第一维度列相对应的第二维度列。
第六获取模块404,用于获取剖析的过滤条件。
第二剖析模块405,用于通过剖析的过滤条件,对第二维度列进行剖析。
图10是根据本发明的分析数据库的维度剖析装置的第五实施例的示意图。如图10所示,该分析数据库的维度剖析装置包括:第一获取单元10、第二获取单元20、创建单元30和剖析单元40。其中,剖析单元40还包括:第七获取模块406、第二创建模块407、第八获取模块408、第三剖析模块409、第九获取模块410、第二判断模块411、第十获取模块412和第四剖析模块413。
第一获取单元10、第二获取单元20、创建单元30和剖析单元40的作用与上述实施例中作用相同,在此不再赘述。
第七获取模块406,用于获取第一维度表中维度与指标的映射关系。
第二创建模块407,用于根据映射关系,对共享维度设置相应映射关系。
第八获取模块408,用于获取剖析的过滤条件。
第三剖析模块409,用于通过剖析的过滤条件,对事实表中的指标进行剖析,得到剖析结果,其中,事实表用于存储所有指标数据。
第九获取模块410,用于通过第一维度表中维度与指标的映射关系,找到剖析结果中指标所在的维度。
第二判断模块411,用于判断剖析结果中指标所在的维度是否建立共享维度。
第十获取模块412,用于在剖析结果中指标所在的维度建立共享维度的情况下,获取剖析结果中指标所在的维度对应的共享维度。
第四剖析模块413,用于通过剖析的过滤条件,对剖析结果中指标所在的维度相对应的共享维度进行剖析。
通过本发明提供的分析数据库的维度剖析装置,该装置通过第七获取模块406获取第一维度表中维度与指标的映射关系;第二创建模块407根据映射关系,对共享维度设置相应映射关系;第八获取模块408获取剖析的过滤条件;第三剖析模块409通过剖析的过滤条件,对事实表中的指标进行剖析,得到剖析结果,其中,事实表用于存储所有指标数据;第九获取模块410通过第一维度表中维度与指标的映射关系,找到剖析结果中指标所在的维度;第二判断模块411判断剖析结果中指标所在的维度是否建立共享维度;第十获取模块412在剖析结果中指标所在的维度建立共享维度的情况下,获取剖析结果中指标所在的维度对应的共享维度;第四剖析模块413通过剖析的过滤条件,对剖析结果中指标所在的维度相对应的共享维度进行剖析,解决了分析数据库中的维度在多属性同时剖析时,剖析速度慢的问题,达到了使分析数据库中维度的剖析性能大大提升的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。