基于数据源定义标准维度类型
标准维度是指其属性绑定到数据源视图的一个或多个表中的列的维度。通常,首先定义数据源视图,然后基于此数据源视图定义维度。使用数据源定义维度时,请指定定义维度所基于的数据源视图。选择此选项后,维度结构将基于现有数据源视图中的维度表、维度表中的列以及表中各列之间的任何关系。
使新维度基于现有数据源时,可以使用自动生成功能来帮助定义维度及其属性。在禁用自动生成功能的情况下,Business Intelligence Development Studio 将从源表和相关表中抽取样本数据。Business Intelligence Development Studio 使用该数据来定义基于维度表中的列的属性列,并且定义属性的层次结构(称为“用户定义”**层次结构)。无论是否使用自动生成功能,完成维度向导后都可以使用维度设计器来添加、删除和配置维度中的属性和层次结构。
选择维度类型并定义维度表
接下来,指定是要定义服务器时间维度还是标准类型维度。有关服务器时间维度的详细信息,请参阅定义服务器时间维度。
将标准维度定义为时间维度
当您在维度向导中将维度定义为**“时间维度”**时,将要定义维度类型为“时间”的标准维度,此维度绑定到的维度表包含要在时间维度中使用的时间属性的列。
在数据源视图中指定此维度表之后,便可在 Analysis Services 中将基础时间维度表中的列映射到时间属性名称。例如,可以将 CalendarYear 时间表列映射到**“年”时间属性,将 CalendarSemester 时间表列映射到“半年”**时间属性,依此类推。映射到时间属性的每列将变成新定义的维度中的特性,并且只有可在维度向导中针对时间维度定义的特性才是映射到时间属性的特性。有关维度类型和属性类型的详细信息,请参阅时间 (SSAS)、定义维度类型和配置特性类型。
最后,基于已映射到时间属性的列,向导将针对日历层次结构和会计层次结构等定义一个或多个时间层次结构。随后,您可以使用维度设计器添加其他时间维度属性。例如,当您针对日历时间特性和会计时间特性定义时间属性时,最好定义其他特性,从而可以针对营销日历和生产日历等定义其他时间层次结构。有关定义属性和用户定义层次结构的详细信息,请参阅定义和配置维度属性和定义和配置用户定义层次结构。
定义标准维度
在维度向导中将维度定义为标准维度时,将会定义标准维度而不定义其维度类型。随后在向导中定义其维度类型。
选择主维度表
首先为要定义的维度定义主维度表。该表直接链接到事实数据表。例如,为“产品”维度指定 Product 表,或为“雇员”维度指定 Employee 表。在该表中,指定将该表链接到事实数据表的键列。例如,将 ProductKey 定义为“产品”维度的键列。如果指定了自动生成功能,则将基于在数据源视图中定义的主键来定义此键。键列确定维度的成员。
或者,您可以定义包含成员名称的列。默认情况下,向用户显示的成员名称将是列中的值。键列中的值(例如 ProductID 或 EmployeeID)通常是系统生成的唯一键,对用户而言毫无意义。您可以将向用户显示的值更改为维度其他列中的相应值。成员名称列可提供更有意义的值,例如产品名称或雇员姓名。浏览维度的用户将可以看到键属性成员的更有意义的信息(例如产品名称而非 ID 号),但查询仍将使用键列值,以正确区分使用相同名称的成员。如果为键列指定组合键,则必须指定可为键属性提供成员值的列,才能继续进入向导的下一页。有关在维度设计器中配置特性属性的详细信息,请参阅定义和配置维度属性。
指定相关表
接下来,如果要生成雪花型维度,则指定用以定义其他属性的相关表。例如,如果生成要在其中定义客户所在地域表的客户维度,则可能要将地域表定义为相关表。
注意: |
---|
如果主维度表与其他维度表之间没有在数据源视图中定义的任何关系,则向导将跳过此步骤。 |
选择维度属性
定义了维度将基于的所有维度表之后,便可根据这些表定义要包含在维度中的属性。如果指定了自动生成功能,则会将所有这些表中的所有基础列都定义为维度属性。对于列表中的每个属性,您可以指定名称、键列和名称列。您可以在向导中更改属性名称,也可以稍后使用维度设计器进行更改。当某一属性基于维度表中的说明性列时,可以将键列设置和名称列设置都设置为相同列。但是,如果属性针对维度表的键列,最好指定更有意义的列作为名称列。例如,如果“产品”维度中的产品类别属性使用 ProductCategoryKey 列作为键列,则可以指定 ProductCategoryName 列作为名称列。对此属性的后续查询将正确区分同名的成员,同时向用户显示有意义的名称。
注意 如果在向导的**“选择维度属性”**页上读取任何列的值时遇到问题,则请将向导窗口最大化,并更改每个列标题的宽度,直到可读取值为止。
选择维度类型
接下来,指定维度类型以将维度属性映射到标准属性类型。默认情况下,所有标准维度的维度类型均为**“常规”。在向导中指定的维度类型和特性类型将设置维度和特性的“类型”**属性。
首先,在**“维度类型”下,选择一个维度类型来定义维度“类型”属性设置。“类型”属性设置可为服务器和客户端应用程序提供有关维度内容的信息。在某些情况下,“类型”设置只为客户端应用程序提供指导信息,并且为可选项。在其他情况下,例如对于“帐户”、“时间”或“货币”维度,维度及其特性的“类型”属性设置可确定基于服务器的特定行为,并且可能是实现多维数据集中的某些行为所必需的。“维度类型”的默认设置是“常规”,该设置不对维度内容进行任何假设。如果没有为“维度类型”**列出合适的类型,则请使用此设置。
选择维度类型后,**“维度属性”下的表将列出适用于该维度类型的属性类型。可以将该维度中存在的任何标准属性映射到这些标准属性类型。若要进行映射,请选中任意标准属性类型(在维度中存在与其对应的属性)旁边的“包含”下的复选框。然后,在“维度属性”**下,选择对应的属性。
例如,Adventure Works DW 示例数据库中的 dbo.DimAccount 表包含下列项:AccountDescription 列(提供帐户名称)、AccountCodeAlternateKey 列(提供帐户号)和 AccountType 列(提供帐户类型)。如果基于此表创建“帐户”维度,则需先选择**“帐户”作为“维度类型”。然后,“维度属性”下的表将列出“帐户”类型维度的四个标准属性类型,即“帐户图表”、“帐户名”、“帐号”和“帐户类型”。在表的“包含”**列下,选中下列三个帐户类型旁边的复选框,然后为每个属性类型选择维度属性,如以下列表所示。
属性类型 | 维度属性 |
---|---|
帐户名 |
帐户说明 |
帐号 |
帐号代码备用键 |
帐户类型 |
帐户类型 |
注意: |
---|
如果创建维度时未进行这些设置,还可以使用商业智能向导设置维度类型并为任何现有维度指定标准属性类型。有关详细信息,请参阅向维度添加维度智能或(对于帐户类型的维度)向维度中添加帐户智能。 |
有关维度类型和属性类型的详细信息,请参阅定义维度类型和配置特性类型。
定义帐户智能
注意: |
---|
维度向导只为“帐户”类型维度显示此步骤,并且仅当在向导的“指定维度类型”页上定义“帐户类型”维度属性时,才显示此步骤。 |
使用维度向导的**“定义帐户智能”**页将 Analysis Services 支持的标准帐户类型映射到维度中帐户类型属性的成员。服务器使用这些映射为每种类型的帐户数据提供单独的聚合函数和别名。
本页向导中的表列出了来自数据源表中**“源表帐户类型”下的帐户类型。在“内置帐户类型”**下,选择服务器支持的相应标准帐户类型。如果源数据使用标准名称,则此列已填充,并且您可以查看向导所提供的映射。
注意: |
---|
如果创建“帐户”维度时未进行这些设置,则可以使用商业智能向导来配置已有的“帐户”维度。有关详细信息,请参阅向维度中添加帐户智能。 |
定义父子关系
使用向导的**“定义父子关系”**页指定维度中是否存在父子关系。当父属性引用维度的键属性成员时,即存在父子关系。此关系定义层次结构关系以及维度的叶成员之间的聚合路径。如果启用自动生成功能,则将检测父子关系。
注意: |
---|
不能使用多部分键定义父子关系。 |
如果确实存在父子关系,则请选中**“此维度包含的属性之间有父子关系”**复选框,然后标识该关系中的父属性。例如,如果“雇员”维度中的键属性是“雇员”,则可能将“主管”标识为父属性。预览窗格可显示子属性和父属性的示例值。
有关父子层次结构的详细信息,请参阅使用父子层次结构中的属性。
检测并查看层次结构
如果使用自动生成功能,则向导将扫描维度表以检测用以生成层次结构的关系。当向导完成对维度表的扫描时,您可以查看检测到的层次结构,确定它是否表示了您要在维度中包含的业务逻辑。层次结构表示基于数据源视图结构所做的最佳猜测,所以任何特定的层次结构可能对您的业务问题有所帮助,也可能毫无用处。可以查看新建层次结构,并清除对您的组织没有意义的一些级别或整个层次结构。完成向导后,还可以使用维度设计器的**“维度结构”**选项卡查看并配置层次结构。有关详细信息,请参阅定义和配置用户定义层次结构。
请参阅
概念
不使用数据源定义标准类型维度
定义服务器时间维度
介绍架构生成向导
定义和配置维度属性