定义命名集

命名集是一个多维表达式 (MDX) 表达式,该表达式返回一组维度成员。 可以定义命名集并将其保存为多维数据集定义的一部分;还可以在客户端应用程序中创建命名集。 通过组合多维数据集数据、算术运算符、数字和函数来创建命名集。 命名集可由客户端应用程序中的 MDX 查询中的用户使用,也可用于在子多维数据集中定义集。 子多维数据集是交叉联接集的集合,用于将多维数据集空间限制为为后续操作定义的子空间。 定义受限的立方体空间是 MDX 脚本中的基本概念。

命名集简化了 MDX 查询,并为复杂且通常使用的集表达式提供有用的别名。 例如,可以定义名为“大型经销商”的命名集,该集包含“经销商”维度中具有最多员工的一组成员。 然后,最终用户可以在查询中使用名为“大型经销商”的命名集,也可以使用该命名集在子多维数据集中定义一个集。 命名集的定义存储在数据立方体中,但它们的值只保存在内存中。 若要创建命名集,请使用多维数据集设计器的“计算”选项卡上的“新建命名集”命令。 有关详细信息,请参阅 “计算”、“ 创建命名集”。

在本主题的任务中,你将定义两个命名集:一个名为“核心产品”的命名集和一个名为“大型经销商”的命名集。

定义一个核心产品命名集合

  1. 切换到 Analysis Services 教程多维数据集的多维数据集设计器的 “计算 ”选项卡,然后单击工具栏上的 “窗体视图 ”。

  2. 单击“脚本管理器”窗格中的“总销售额比率与所有产品”,然后单击“计算”选项卡工具栏上的“新建命名集”。

    在“ 计算 ”选项卡上定义新计算时,请记住,计算按照计算 在脚本管理器 窗格中显示的顺序解析。 创建新计算时,该窗格中的焦点决定了计算的执行顺序;将立即定义一个新计算,然后根据所关注的计算进行计算。

  3. 在“ 名称 ”框中,将新命名集的名称更改为 [Core Products]

    “脚本管理器 ”窗格中,请注意唯一的图标,该图标将命名集与脚本命令或计算成员区分开来。

  4. “计算工具”窗格中的“元数据”选项卡上,展开“产品”、“类别”、“展开Members”和“所有产品”。

    注释

    如果无法在 “计算工具 ”窗格中查看任何元数据,请单击工具栏上的“ 重新连接 ”。 如果这没有效果,您可能需要处理该多维数据集或启动分析服务的实例。

  5. 自行车 拖到 “表达式 ”框中。

    现已创建一个集表达式,该表达式将返回产品维度的 Bike 类别中的成员集。

定义名为 Set 的大型经销商

  1. [Core Products]右键单击“脚本管理器”窗格中,然后单击“新建命名集”。

  2. “名称 ”框中,将此命名集的名称更改为 [Large Resellers]

  3. “表达式 ”框中,键入 Exists()

    你将使用 Exists 函数从“经销商名称”属性层次结构中返回一组成员,该层次结构与员工数量最大的员工数的“员工数”属性层次结构中的成员集相交。

  4. “计算工具”窗格中的“元数据”选项卡上,展开“经销商”维度,然后展开“经销商名称”属性层次结构。

  5. “经销商名称” 层级拖到 Exists 集合表达式的括号内。

    你将使用 Members 函数返回此集的所有成员。 有关更多信息,请参阅Members (Set) (MDX)

  6. 在部分集表达式之后,键入句点,然后添加 Members 函数。 表达式应如下所示:

    Exists([Reseller].[Reseller Name].[Reseller Name].Members)
    

    现在,您已经为 Exists 集表达式定义了第一个集,准备好添加第二个集—包含最大员工数量的 Reseller 维度的成员集。

  7. “计算工具”窗格中的“元数据”选项卡上,展开“经销商”维度中的“员工数”,展开Members,然后展开“所有经销商”。

    请注意,此属性层次结构的成员不会分组。

  8. 打开经销商维度的维度设计器,然后单击属性窗格中的员工数

  9. 在“属性”窗口中,将 DiscretizationMethod 属性更改为 “自动”,然后将属性更改为 DiscretizationBucketCount5。 有关详细信息,请参阅组属性成员(离散化)。

  10. 在 SQL Server Data Tools (SSDT) 的“构建”菜单上,单击“部署 Analysis Services 教程”

  11. 部署成功完成后,切换到用于 Analysis Services 教程多维数据集的多维数据集设计器,然后在计算选项卡的工具栏上单击重新连接

  12. “计算工具”窗格中的“元数据”选项卡上,展开“经销商”维度中的“员工数”,展开Members,然后展开“所有经销商”。

    请注意,此属性层次结构的成员现在包含在五个组中,编号为 0 到 4。 若要查看组数,请在该组上悬停鼠标指针以查看信息提示。 对于范围 2 -17,InfoTip 应包含 [Reseller].[Number of Employees].&[0]

    此属性层次结构的成员将分组,因为 DiscretizationBucketCount 属性设置为, 5 并且 DiscretizationMethod 属性设置为 Automatic

  13. “表达式”框中,在 Members 函数之后和右括号之前,在 Exists 集表达式中添加一个逗号,然后从“元数据”窗格中拖动 83 - 100 并将其置于逗号之后。

    现在您已经完成了 Exists 集合表达式,该表达式将返回与这两个指定集合相交的成员集合,拥有 83 到 100 名员工的经销商集合和所有经销商集合,当“大型经销商”命名集合放置在坐标轴上时。

    下图显示了命名集的[Large Resellers]“计算表达式”窗格。

    [大型经销商]的计算表达式窗格

  14. “计算 ”选项卡的工具栏上,单击“ 脚本视图”,然后查看刚刚添加到计算脚本的两个命名集。

  15. 在第一个 CREATE SET 命令之前立即在计算脚本中添加一个新行,然后将以下文本添加到脚本自己的行:

    /* named sets */
    

    现已定义两个命名集,这些集在 脚本管理器 窗格中可见。 您已准备好部署这些命名集合,然后在 Analysis Services 教程多维数据集中浏览这些度量值。

通过使用新的命名集来浏览多维数据集。

  1. 在 SQL Server Data Tools 的“构建”菜单上,单击“分析服务教程部署”

  2. 部署成功完成后,单击 “浏览器 ”选项卡,然后单击“ 重新连接”。

  3. 清除数据窗格中的网格。

  4. Reseller Sales-Sales Amount 度量值添加到数据区域。

  5. 展开“产品”维度,然后将“类别”和“子类别”添加到行区域,如下图所示。

    子类别属性的成员

  6. “元数据 ”窗格中的“ 产品 ”维度中,将 核心产品 拖到筛选区域。

    请注意,只有 Category 属性的 Bike 成员和 Bike 子类别的成员保留在多维数据集中。 这是因为名为核心产品的集合用于定义子立方体。 此子多维数据集将子多维数据集内 Product 维度中的 Category 属性的成员限制为核心产品命名集的成员,如下图所示。

    名为“核心产品”集的成员

  7. “元数据 ”窗格中,展开“ 经销商”,将 大型经销商 添加到筛选区域。

    请注意,“数据”窗格中的“经销商销售额”度量值仅显示大型自行车经销商的销售金额。 另请注意,“筛选器”窗格现在显示用于定义此特定子多维数据集的两个命名集,如下图所示。

    包含两个命名集的筛选器窗格

课程中的下一个任务

第 7 课:定义关键绩效指标(KPI)

另请参阅

计算创建命名集