多维数据集由按度量值组和维度组织的单元格组成。 单元格表示多维数据集中一个成员的唯一逻辑交集,该多维数据集来自多维数据集中的每个维度。 例如,下图所述的多维数据集包含一个度量值组,该度量值组具有两个度量值,按名为 Source、Route 和 Time 的三个维度进行组织。
的多
此图中的单个着色单元格是以下成员的交集:
路线维度的空气成员。
“源”维度的非洲成员。
时间维度的第 4 季度成员。
包度量值。
叶和非叶单元格
可以通过多种方式之一获取多维数据集中的单元格的值。 在前面的示例中,可以从多维数据集的事实数据表直接检索单元格中的值,因为用于标识该单元格的所有成员都是 叶成员。 叶成员没有子成员,按层次结构讲,通常引用维度表中的单个记录。 此类单元格称为 叶单元格。
但是,也可以使用 非叶成员标识单元格。 非叶成员是具有一个或多个子成员的成员。 在这种情况下,单元格的值通常派生自与非叶成员关联的子成员的聚合。 例如,以下成员和维度的交集是指由聚合提供值的单元格:
路线维度的空气成员。
“源”维度的非洲成员。
时间维度的后半部分成员。
包成员。
时间维度的后半部分成员是非叶成员。 因此,与它关联的所有值都必须是聚合值,如下图所示。
成员)
假设第三季度和第四季度成员的聚合是求和,则指定单元格的值为 400,这是上图中着色的所有叶单元格的总和。 由于单元格的值派生自其他单元格的聚合,因此指定的单元格被视为 非叶单元格。
除自定义成员外,为使用自定义汇总和成员组的成员派生的单元格值也类似。 但是,为计算成员派生的单元格值完全基于用于定义计算成员的多维表达式 (MDX) 表达式:在某些情况下,可能没有涉及实际单元格数据。 有关详细信息,请参阅 Parent-Child 维度中的自定义汇总运算符、 定义自定义成员公式和 计算。
空单元格
不需要多维数据集中的每个单元格都包含一个值;多维数据集中可能存在没有数据的交集。 这些交集(称为空单元格)经常出现在多维数据集中,因为多维数据集内具有度量值的维度属性的每个交集都包含事实数据表中的对应记录。 多维数据集中空单元格与多维数据集中单元格总数的比率通常称为多维数据集的 稀疏性 。
例如,下图所示的多维数据集的结构类似于本主题中的其他示例。 然而,在此示例中,第三季度或第四季度没有向澳大利亚运送到非洲的空运。 事实数据表中没有数据来支持这些维度和度量值的交集:因此,这些交集上的单元格为空。
在 SQL Server Analysis Services 中,空单元格是具有特殊品质的单元格。 由于空单元格可能会扭曲交叉联接、计数等的结果,因此许多 MDX 函数提供忽略空单元格的功能,以便进行计算。 有关详细信息,请参阅 MDX(Analysis Services)中的多维表达式(MDX)参考和关键概念。
安全
在角色级别的 Analysis Services 中管理对单元格数据的访问,并且可以使用 MDX 表达式进行精细控制。 有关详细信息,请参阅 授予对维度数据的自定义访问权限(Analysis Services),以及 授予对单元格数据(Analysis Services)的自定义访问权限。