欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Expert Cube Development with Microsoft SQL Server 2008 Analy

程序员文章站 2022-04-08 17:55:47
...

度量值表示包含可以聚合的可计量数据(通常是数值)的列。度量值通常映射到事实数据表中的列。 还可以使用度量值表达式,基于由多维表达式修改的事实数据表中的列来定义度量值。度量值表达式支持对度量值的值设置权重;例如,可以用货币换算按汇率来设置销售

度量值表示包含可以聚合的可计量数据(通常是数值)的列。度量值通常映射到事实数据表中的列。

还可以使用“度量值表达式”,基于由多维表达式修改的事实数据表中的列来定义度量值。度量值表达式支持对度量值的值设置权重;例如,可以用货币换算按汇率来设置销售额度量值的权重。

维度表中的属性列可以用于定义度量值,但是这些度量值通常在聚合行为方面具有半累加性或非累加性。有关半累加性行为的详细信息,请参阅定义半累加性行为。

还可以使用多维表达式 (MDX) 将度量值定义为“计算成员”,从而为基于多维数据集中其他度量值的度量值提供计算值。计算成员会增加 Analysis Services 中多维数据集的灵活性,并提高其分析能力。有关计算的详细信息,请参阅计算和定义和配置计算。

度量值组

在多维数据集中,度量值按照其基础事实数据表分组为多个度量值组。度量值组用于使维度和度量值相互关联。度量值组还可用于将非重复计数作为其聚合行为的度量值。将每个非重复计数度量值放入自己的度量值组后,可优化聚合处理。

下面的关系图表示 FactSalesQuota 事实数据表和两个与其关联的维度表:DimTime 和 DimEmployee。

Expert Cube Development with Microsoft SQL Server 2008 Analy

FactSalesQuota 事实数据表定义 Adventure Works 多维数据集的“销售配额”度量值组,香港虚拟主机,DimTime 和 DimEmployee 维度表定义 Adventure Works DW 示例 Analysis Services 项目中的“时间”和“雇员”维度。

事实数据表包含两种基本类型的列:属性列和度量值列。属性列用于创建维度表的外键关系,因此度量值列中的可计量数据可以按照维度表中包含的数据进行组织。属性列还用于定义事实数据表的粒度及其度量值组。度量值列定义度量值组包含的度量值。在 FactSalesQuota 事实数据表中,SalesAmountQuota 列用来定义“销售配额”度量值。该度量值包含在“销售配额”度量值组中,并按照“时间”和“雇员”维度进行组织。

粒度

粒度引用事实数据表支持的详细信息的级别。例如,FactSalesQuota 事实数据表与 DimEmployee 表具有外键关系(通过 EmployeeKey 主键列)。换而言之,香港服务器,FactSalesQuota 表中的每项记录都与单个雇员相关;因此,从“雇员”维度来查看,该度量值组的粒度位于单个雇员级别。

度量值组的粒度绝对不能设置为比从中查看该度量值组的维度的最低级别还细,但可以使用其他属性将该粒度设置为更粗。例如,FactSalesQuota 事实数据表使用三列(TimeKey、CalendarYear 和 CalendarQuarter)来建立与 DimTime 表的关系的粒度。因此,从“时间”维度来查看,度量值组的粒度是按日历季度(而不是按“时间”维度的最低级别,即“天”)来确定的。

您可以通过使用多维数据集设计器的“维度用法”选项卡来指定与特定维度相关的度量值组的粒度。有关维度关系的详细信息,请参阅维度关系。

聚合函数

使用维度来组织度量值组中的度量值时,网站空间,这些度量值将按照该维度中包含的层次结构进行汇总。汇总行为取决于为度量值指定的聚合函数。例如,“雇员”维度有名为“雇员部门”的层次结构,其结构级别如以下关系图所示:

Expert Cube Development with Microsoft SQL Server 2008 Analy

FactSalesQuota 事实数据表中的每项记录都直接通过 EmployeeKey 列的外键关系与 DimEmployee 维度表中的单项记录关联。因此,“销售配额”度量值中的每个值都与“雇员所在部门”层次结构的“全名”级别中的单个叶成员关联,并且可以直接从事实数据表 进行加载。但是,“全名”上面各级别中成员的“销售配额”度量值不能直接加载,因为每个成员表示多项记录。换而言之,“职务”级别中的单个成员可以具有数 个与其关联的雇员,因此也包括“全名”级别中的几个成员。这些非叶成员的度量值不能从数据源直接加载,但是可以通过在层次结构中位于其下级的成员进行聚 合。

不是所有的度量值都是直接从存储在事实数据表列中的值派生而来的。例如,在 Adventure Works DW 示例 Analysis Services 项目中 Adventure Works 多维数据集的“销售配额”度量值组中定义的“销售人员计数”度量值实际上基于 FactSalesQuota 事实数据表的 EmployeeKey 列中的唯一计数值(或非重复计数)。

每个度量值的聚合行为都由与该度量值关联的聚合函数确定。有关聚合函数的详细信息,请参阅定义半累加性行为。