多维数据集是什么

电子说

1.2w人已加入

描述

使用多维数据集向导,可以在 SQL Server 2005 中轻松定义简单的多维数据集。该向导可以帮助您为多维数据集定义度量值和维度。在该向导中,可以基于数据源定义多维数据集,也可以在不使用现有数据源的情况下定义多维数据集。如果在不使用现有数据源的情况下定义多维数据集,则使用该向导将生成基础数据源架构。在本教程中,您将基于现有数据源定义多维数据集。有关详细信息,请参阅使用关系架构和介绍架构生成向导。

在基于现有数据源定义多维数据集时,该向导将连接到在数据源对象中定义的数据库,并读取指定表中的数据,以帮助您定义度量值和维度。所定义的这些度量值和维度基于标识为事实数据表、维度表或这两者的表。在使用此方法时,可以启用“自动生成”,这样多维数据集向导将自动定义维度表中各列的属性。也可以让该向导自动尝试生成多级层次结构。如果未启用“自动生成”,则可以在多维数据集向导中手动创建属性并生成层次结构,也可以以后在多维数据集设计器中创建这些属性。

多维数据集

多维数据集最简单的结构是一个事实表和多个维度表,事实表主要是由维度外键和度量值组成,维度表由n个键值对组成(如xxID、xxName)

最简单的理解就是立方体,事实表是核心,维度表则包裹事实表组成立体表面,对立方体进行切面则意味着从不同角度看事实

维度是可以被共用的,例如基本上一个多维库只有一个时间维度

维度表其实很纯洁,千万不要将其复杂化,以时间维度为例,大家会认为日期与具体的时分秒就是一个维度,其实千万不要这样做,首先这样做会无形中加大很多的维度数据量,其次分解成两个维度会更适合设计、也更适合业务,做报表时可以查日期维度(年月日)、也可以单独查时间维度(上午/下午。。。)的一些销售记录,拆开来就可以单独看每个时段的销售量,分析客户习惯

关系表设计

主题域:可以理解为一个主题域可以代表一个主题域,所有的主题组成一个整个多维数据库

在需求明确、主题域分解完毕后,最好先直接用模型定好主外键关系,画好最终效果(即fact-dim的效果),这样可以快速看到最终效果,如果不这样做,可能要到做部署项目时才能看到效果,而且有不断修改的风险

要注意的是,直接用模型写好的东西,很多表的结构都不是一个单纯的实体,这样就不符合范式,所以要将不符合范式的结构拆分,拆分成一系列实体与联系

同时要注意的是,其实事实表可以存在重复记录的,因为可能在一个维度下可以同时存在多个属性,所以直接设计成表其实不适合

经过上面的解释,大家其实也想到了,其实多维数据库的很多事实表是建立在视图之上的,通过视图,可以让表通过不同的连接方式实现重复记录的形式

SSAS

概念:Sql Server Analysis Services,其实就是微软推出的可以部署多维数据库的技术工具

通过增加商业智能组件的VS,可以创建SSAS项目,这样就可以开始部署工作

注意:要设计好数据视图,把必要的视图和表放进去,并设计好缺失的关系;最好不要把所有主题放进同一个立方体里,这样的视图可读性很差,不易维护,而且没有必要,而且一个多维库可以承载多个立方体,所以千万不要把鸡蛋放进同一个篮子里

会有特殊的维度设计,除了对称维度外,会有非对称维度的做法,以后再介绍

SSRS

概念:Sql Server Report Services,也是微软推出的可视化快速设计报表工具,不仅支持关系数据库,还支持多维数据库

通过上一个介绍的扩展,就可以创建SSRS项目并部署成网页,通过网页链接,你可以做很多集成

数据集通过其度量值和维度定义。多维数据集中的度量值和维度派生自多维数据集所基于的数据源视图中的表和视图。多维数据集由基于一个或多个事实数据表的度量值和基于一个或多个维度表的维度组成。维度基于属性,而属性映射到数据源视图中的维度表或视图中的一列或多列,然后通过这些属性定义层次结构。

多维数据集示例

请考虑下面的“进口”多维数据集,其中包含“包”和“上一次”两个度量值以及“路线”、“源”和“时间”三个相关维度。

多维数据集周围更小的字母数字值是维度的成员。示例成员为“陆地”(“路线”维度的成员)、“非洲”(“源”维度的成员)以及“第一季度”(“时间”维度的成员)。

度量值

多维数据集中的值表示两个度量值:“包”和“上一次”。“包”度量值表示进口包的数量,使用 Sum 函数聚合其事实数据。“上一次”度量值表示收到的日期,使用 Max 函数聚合其事实数据。

维度

“路线”维度表示进口货物到达目的地的方式。该维度的成员包括“陆地”、“非陆地”、“航空”、“海路”、“公路”或“铁路”。“源”维度表示进口货物的原产地,如“非洲”或“亚洲”。“时间”维度表示一年的四个季度以及上半年和下半年。

聚合

多维数据集的业务用户可以确定多维数据集每个维度的每个成员的度量值,不用考虑维度中成员的级别,因为 Analysis Services 将按需在更高级别中聚合值。例如,上图中的度量值按下面的方式在“时间”维度中的标准日历层次结构内聚合。

除了在一个维度内聚合之外,度量值还可以聚合来自不同维度的成员的各种组合。这样使业务用户得以同时按多个维度中的成员对度量值进行评估。例如,如果业务用户要分析各个季度通过航空运输从东半球和西半球进口的货物,则业务用户可以对多维数据集发出相应的查询以检索以下数据集。

多维数据

定义完多维数据集之后,可以定义聚合以确定处理过程中预先计算的聚合范围与查询时计算的聚合范围。有关详细信息,请参阅聚合和聚合设计 (SSAS)。

映射度量值、属性和层次结构

多维数据集的度量值、属性和层次结构派生自多维数据集事实数据表和维度表中的下列各列。

多维数据

多维数据

一个多维数据集单元中的数据通常派生自事实数据表中的多个行。例如,多维数据集内“航空”成员、“非洲”成员以及“第一季度”成员的单元派生自 ImportsFactTable 事实数据表中的下列行。

多维数据

在上表中,RouteKey、SourceKey 和 TimeKey 列的每一行都具有相同的值,指示这些行分配给相同的多维数据集单元。

上面所示的示例适用于非常简单的多维数据集,此类多维数据集具有一个度量值组,并且所有维度表以星型架构的形式与该组联接。另一个常见的架构为雪花型架构,在该架构中,一个或多个维度表联接到其他维度表,而不是事实数据表。有关进行雪花状化的详细信息,请参阅维度 (SSAS)。

上面所示的示例仅包含一个事实数据表。如果多维数据集具有多个事实数据表,则每个事实数据表中的度量值均被组织到度量值组中,并且通过定义维度关系使得每个度量值组都与特定的一组维度相关。这些关系指定数据源视图中的参与表以及关系的粒度。有关维度关系的详细信息,请参阅Dimension Relationships (SSAS)。

下表说明了您可用于在 SQL Server Management Studio 或 Business Intelligence Development Studio 中编辑多维数据集的方法。

多维数据

多维数据

多维数据集设计器在 SQL Server Management Studio 和 Business

Intelligence Development Studio 中是相同的。多维数据集设计器具有九个不同的选项卡,下表将对其进行说明。

多维数据

使用多维数据集向导可以快速、轻松地创建多维数据集。多维数据集向导可引导您完成在多维数据集中指定数据源视图和度量值的步骤。当您创建多维数据集时,可以添加现有的维度,也可以创建新的维度来构成多维数据集。还可以使用维度向导单独创建维度,然后将其添加到多维数据集中。有关维度向导的详细信息,请参阅创建维度。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分