一. 创建 Analysis Services 项目
-
单击“开始”,依此指向“所有程序”和 Microsoft SQL Server 2008,再单击 SQL Server Business Intelligence Development Studio。
将打开 Microsoft Visual Studio 开发环境
-
在 Visual Studio 的“文件”菜单上,指向“新建”,然后单击“项目”。
-
在“新建项目”对话框中,从“项目类型”窗格中选择“商业智能项目”,再在“模板”窗格中选择“Analysis Services 项目”
-
将项目名称更改为 Analysis Services Tutorial,这也将更改解决方案名称,然后单击“确定”。
您已经基于 Analysis Services 项目模板,在同样命名为 Analysis Services Tutorial 的新解决方案中成功创建了 Analysis Services Tutorial 项目。
二、定义数据源
-
在解决方案资源管理器中,右键单击“数据源”,然后单击“新建数据源”。
-
在“欢迎使用数据源向导”页上,单击“下一步”可打开“选择如何定义连接”页。
-
在“选择如何定义连接”页上,可以基于新连接、现有连接或以前定义的数据源对象来定义数据源。在本教程中,将基于新连接定义数据源。确保已选中“基于现有连接或新连接创建数据源”,再单击“新建”。
-
在“连接管理器”对话框中,为数据源定义连接属性。在“提供程序”列表中,确保已选中“本机 OLE DB\SQL Server Native Client 10.0”。
Analysis Services 还支持“提供程序”列表中显示的其他访问接口。
-
在“服务器名称”文本框中,键入 localhost。
要连接到本地计算机上的命名实例,请键入 localhost\<实例名>。若要连接到特定的计算机而不是本地计算机,请键入该计算机名称或 IP 地址。
-
确保已选中“使用 Windows 身份验证”。在“选择或输入数据库名称”列表中,选择 AdventureWorksDW2008。
-
单击“测试连接”以测试与数据库的连接。
-
单击“确定”,然后单击“下一步”。
-
在该向导的“模拟信息”页上,可以定义 Analysis Services 用于连接数据源的安全凭据。在选中“Windows 身份验证”时,模拟会影响用于连接数据源的 Windows 帐户。Analysis Services 不支持使用模拟功能来处理 OLAP 对象。选择“使用服务帐户”,然后单击“下一步”。
-
在“完成向导”页上,键入名称 Adventure Works DW,然后单击“完成”以创建新数据源。
三、定义数据源视图
-
在解决方案资源管理器中,右键单击“数据源视图”,再单击“新建数据源视图”。
-
在“欢迎使用数据源视图向导”页中,单击“下一步”。
-
此时将显示“选择数据源”页。“关系数据源”下的 Adventure Works DW 数据源已被选中。单击“下一步”。
-
在“选择表和视图”页上,可以从选定的数据源提供的对象列表中选择表和视图。可以筛选此列表,为选择表和视图提供帮助。
在“可用对象”列表中,选择下列对象。在按住 Ctrl 键的同时单击各个表可以选择多个表:
- DimCustomer (dbo)
- DimDate (dbo)
- DimGeography (dbo)
- DimProduct (dbo)
- FactInternetSales (dbo)
-
单击 “>” 符号,将选中的表添加到“包含的对象”列表中。
-
单击“下一步”。
-
在“名称”字段中,键入 Adventure Works DW,然后单击“完成”以定义 Adventure Works DW 数据源视图。
-
此时,Adventure Works DW 数据源视图将显示在解决方案资源管理器的“数据源视图”文件夹中。数据源视图的内容还将显示在 Business Intelligence Development Studio 的数据源视图设计器中。此设计器包含以下元素:
- “关系图”窗格,其中将以图形方式显示各个表及其相互关系。
- “表”窗格,其中将以树的形式显示各个表及其架构元素。
- “关系图组织程序”窗格,可在其中创建子关系图,用于查看数据源视图的子集。
- 一个特定于数据源视图设计器的工具栏。
-
现在,即可在“关系图”窗格中查看所有表及其相互关系了。注意,在 FactInternetSales 表和 DimDate 表之间存在三种关系。每个销售都具有三个与其关联的日期:订单日期、到期日期和发货日期。若要查看某种关系的详细信息,可双击“关系图”窗格中的关系箭头。
四、修改表的默认名字,提供更友好的名字
-
在数据源视图设计器的“表”窗格中,右键单击 FactInternetSales 表,然后单击“属性”以便在 Adventure Works Tutorial 数据源视图中显示 FactInternetSales 对象的属性,打开属性工具边栏。
-
将 FactInternetSales 对象的 FriendlyName 属性更改为 InternetSales。
-
在“表”窗格中单击 DimProduct。在“属性”窗口中,将 FriendlyName 属性更改为“产品”。
-
使用同样的方法更改数据源视图中剩余的各个表的 FriendlyName 属性,删除“Dim”前缀。
-
在“文件”菜单上,或者在 BI Development Studio 的工具栏上,单击“全部保存”,以保存截至目前已在 Analysis Services Tutorial 项目中进行的更改。您可以根据需要在此处停止教程学习,并在以后继续。
定义维度
-
在解决方案资源管理器中,右键单击“维度”,然后单击“新建维度”。
-
在“欢迎使用维度向导”页上,单击“下一步”。
-
在“选择创建方法”页上,验证是否选择了“使用现有表”选项,然后单击“下一步”。
-
在“指定源信息”页上,验证是否选择了 Adventure Works DW 数据源视图。
-
单击“下一步”。
-
在“选择维度属性”页上,选中下列属性旁的复选框:
-
将“完整日期备用键”属性的“属性类型”列的设置从“定期”更改为“日期”。为此,请单击“属性类型”列中的“定期”。然后单击箭头展开选项。接下来,单击“日期”>“日历” > “日期”。单击“确定”。 重复这些步骤来如下更改下列属性的属性类型:
-
单击“下一步”。
-
在“完成向导”页的“预览”窗格中,可以看到“日期”维度及其属性。
-
单击“完成”按钮以完成向导。
定义多维数据集及其属性
-
在解决方案资源管理器中,右键单击“多维数据集”,然后单击“新建多维数据集”。
-
在“欢迎使用多维数据集向导”页上,单击“下一步”。
-
在“选择度量值组表”页上,确认已选中 Adventure Works DW 数据源视图。
-
单击“建议”允许多维数据集向导建议要用来创建度量值组的表。
多维数据集向导会检查这些表并建议将 InternetSales 作为度量值组表。度量值组表(又称为事实数据表)包含您感兴趣的度量值(如已销售的单位数)。
-
单击“下一步”。
-
在“选择度量值”页上,查看在“Internet 销售”度量值组中选择的度量值,然后清除下列度量值的复选框:
默认情况下,该向导会选择将事实数据表中未链接到维度的所有数值列作为度量值。但这四列不是实际的度量值。前三列是将事实数据表与未在此多维数据集的初始版本中使用的维度表链接起来的键值。
-
单击“下一步”。
-
在“选择现有维度”页上,选择您以前创建的“日期”维度,然后单击“下一步”。
-
在“选择新维度”页上,选择要创建的新维度。为此,请确认已选中“客户”、“地域”和“产品” 复选框并清除 InternetSales 复选框。
-
单击“下一步”。
-
在“完成向导”页上,将多维数据集的名称更改为 Analysis Services Tutorial。在“预览”窗格中,可以看到 InternetSales 度量值组及其度量值,还可以看到“日期”、“客户”和“产品”维度。
-
单击“完成”按钮以完成向导。
在解决方案资源管理器的 Analysis Services Tutorial 项目中,Analysis Services Tutorial 多维数据集显示在“多维数据集”文件夹中,而数据库维度则显示在“维度”文件夹中。此外,多维数据集设计器在开发环境的中央显示 Analysis Services Tutorial 多维数据集。
-
在多维数据集设计器的工具栏上,将“缩放”级别更改为 50 %,以便更轻松地查看多维数据集内的维度和事实数据表。注意,事实数据表是黄色的,维度表是蓝色的。
-
在“文件”菜单上,单击“全部保存”。
向“客户”维度中添加属性
添加属性
-
打开“客户”维度的维度设计器。为此,请在解决方案资源管理器的“维度”节点中双击“客户”维度。
-
在“属性”窗格中,请注意多维数据集向导已经创建的“客户关键字”和“地域关键字”属性。
-
在“维度结构”选项卡的工具栏上,使用“缩放”图标以 100 % 的缩放比例查看“数据源视图”窗格中的表。
-
将“数据源视图”窗格中的以下各列拖到“属性”窗格中:
- BirthDate
- MaritalStatus
- Gender
- EmailAddress
- YearlyIncome
- TotalChildren
- NumberChildrenAtHome
- EnglishEducation
- EnglishOccupation
- HouseOwnerFlag
- NumberCarsOwned
- Phone
- DateFirstPurchase
- CommuteDistance
-
将“数据源视图”窗格内“地域”表中的以下各列拖到“属性”窗格中:
- City
- StateProvinceName
- EnglishCountryRegionName
- PostalCode
-
在“文件”菜单上,单击“全部保存”。
向“产品”维度中添加属性
添加属性
-
打开“产品”维度的维度设计器。
-
在“属性”窗格中,请注意多维数据集向导创建的“产品密钥”属性。
-
在“维度结构”选项卡的工具栏上,使用“缩放”图标以 100 % 的缩放比例查看“数据源视图”窗格中的表。
-
将“数据源视图”窗格内“产品”表中的以下各列拖到“属性”窗格中:
- StandardCost
- Color
- SafetyStockLevel
- ReorderPoint
- ListPrice
- Size
- SizeRange
- Weight
- DaysToManufacture
- ProductLine
- DealerPrice
- Class
- Style
- ModelName
- StartDate
- EndDate
- Status
-
在“文件”菜单上,单击“全部保存”。
在多维数据集设计器中检查多维数据集和维度的属性
-
若要打开多维数据集设计器,请双击解决方案资源管理器中“多维数据集”节点中的 Analysis Services Tutorial 多维数据集。
-
在多维数据集设计器中的“多维数据集结构”选项卡的“度量值”窗格中,展开“Internet 销售”度量值组以显示所定义的度量值。
-
将度量值拖到所需的顺序中可以更改它们的顺序。所创建的度量值顺序将影响某些客户端应用程序对这些度量值进行排序的方式。度量值组及其包含的每个度量值都有属性,在“属性”窗口中可以编辑这些属性。
-
在多维数据集设计器中,在“多维数据集结构”选项卡的“维度”窗格中,检查 Analysis Services Tutorial 多维数据集中的多维数据集维度。
-
请注意,尽管在数据库级别只创建了三个维度(如解决方案资源管理器所示),但在 Analysis Services Tutorial 多维数据集内却有五个多维数据集维度。该多维数据集包含的维度比数据库多,其原因是,根据事实数据表中与日期相关的不同事实数据,“日期”数据库维度被用作三个与日期相关的单独多维数据集维度的基础。这些与日期相关的维度也称为“角色扮演维度”。使用三个与日期相关的多维数据集维度,用户可以按照下列三个与每个产品销售相关的单独事实数据在多维数据集中组织维度:产品订单日期、履行订单的到期日期和订单发货日期。通过将一个数据库维度重复用于多个多维数据集维度,Analysis Services 简化了维度管理,降低了磁盘空间使用量,并减少了总体处理时间。
-
在“多维数据集结构”选项卡的“维度”窗格中,展开“客户”,然后单击“编辑客户”,以便在维度设计器中打开该维度。
-
维度设计器包含以下选项卡:“维度结构”、“属性关系”、“翻译”和“浏览器”。请注意,“维度结构”选项卡包含以下三个窗格:“属性”、“层次结构”和“数据源视图”。“维度”中包含的属性将出现在“属性”窗格中。有关详细信息,请参阅:定义维度特性、创建用户定义的层次结构、定义属性关系
-
在解决方案资源管理器中右键单击“多维数据集”节点中的 Analysis Services Tutorial 多维数据集,然后单击“视图设计器”,可以切换到多维数据集设计器。
-
在多维数据集设计器中,单击“维度用法”选项卡。
在此 Analysis Services Tutorial 多维数据集视图中,可以看到“Internet 销售”度量值组所用的多维数据集维度。此外,可以定义每个维度及使用该维度的每个度量值组之间的关系类型。
-
单击“分区”选项卡。
-
多维数据集向导可以使用不带聚合的多维联机分析处理 (MOLAP) 存储模式,为多维数据集定义单个分区。通过 MOLAP,所有叶级别数据和所有聚合均存储在多维数据集中,以便最大限度地提高性能。聚合是预先计算好的数据汇总,聚合可以在问题提出之前准备好答案,从而可以缩短查询响应时间。可在“分区”选项卡上定义其他分区、存储设置和写回设置。有关详细信息,请参阅分区(Analysis Services - 多维数据)、聚合和聚合设计 和设计分区存储和聚合。
-
单击“浏览器”选项卡。
-
注意,由于浏览多维数据集尚未部署到 Analysis Services 实例中,因此无法对其进行浏览。此时,Analysis Services Tutorial 项目中的多维数据集只是一个可以部署到任何 Analysis Services 实例的多维数据集定义。部署和处理多维数据集时,将在 Analysis Services 实例中创建定义的对象,然后用基础数据源的数据填充这些对象。
-
在解决方案资源管理器中,右键单击“多维数据集”节点中的 Analysis Services Tutorial,然后单击“查看代码”。
-
此时在 Analysis Services Tutorial.cube [XML] 选项卡上将显示 Analysis Services Tutorial 多维数据集的 XML 代码。这是在部署期间在 Analysis Services 实例中创建多维数据集所用的实际代码。有关详细信息,请参阅如何 查看 Analysis Services 项目的 XML
-
关闭 XML 代码选项卡。
部署 Analysis Services 项目
-
在解决方案资源管理器中,右键单击“Analysis Services Tutorial”项目,然后单击“属性”。
将出现“Analysis Services Tutorial 属性页”对话框,并显示活动(开发)配置的属性。可以定义多个配置,每个配置可以具有不同的属性。例如,开发人员可能需要将同一项目配置为部署到不同的开发计算机,并具有不同的部署属性,如数据库名称或处理属性。注意“输出路径”属性的值。该属性指定生成项目时保存项目的 XMLA 部署脚本的位置。这些脚本用于将该项目中的对象部署到 Analysis Services 实例。
-
在左窗格的“配置属性”节点中,单击“部署”。
-
查看项目的部署属性。默认情况下,Analysis Services 项目模板将 Analysis Services 项目配置为将所有项目增量部署到本地计算机上的默认 Analysis Services 实例,以创建一个与此项目同名的 Analysis Services 数据库,并在部署后使用默认处理选项处理这些对象。相关主题: 配置 Analysis Services 项目属性
注意:如果要将项目部署到本地计算机上的命名 Analysis Services 实例或远程服务器上的实例,请将“服务器”属性更改为相应的实例名,如 <服务器名>\<实例名>。
-
单击“确定”。
-
在解决方案资源管理器中,右键单击 Analysis Services Tutoria 项目,然后单击“部署”。
Business Intelligence Development Studio 将生成 Analysis Services Tutorial 项目,然后使用部署脚本将其部署到指定的 Analysis Services 实例中。部署进度将在下列两个窗口中显示:“输出”窗口和“部署进度 – Analysis Services Tutorial”窗口。打开“输出”窗口,如果需要,可通过单击“视图”菜单上的“输出”实现。“输出”窗口显示部署的整体进度。“部署进度 – Analysis Services Tutorial”窗口显示部署过程中每个步骤的详细信息。相关主题: 生成 Analysis Services 项目、部署 Analysis Services 项目
-
查看“输出”窗口和“部署进度 – Analysis Services Tutorial”窗口的内容,验证是否已生成、部署和处理多维数据集,并且没有出现错误。
-
通过单击窗口中工具栏上的“自动隐藏”图标来隐藏“部署进度 - Analysis Services Tutorial”窗口。
-
通过单击窗口中工具栏上的“自动隐藏”图标来隐藏“输出”窗口。
提示:很奇怪,居然在部署的时候出错误,错误如下
错误的详细内容如下:
分析器: ImpersonationInfo 对象的语法不正确。如果 ImpersonateAccount 值用于 ImpersonationInfo,那么 Account 属性不能为空。
故障产程原因:
这个问题是由数据源的模拟信息(Impersonation Information)引起的。
解决方法:
双击“数据源”,切换到“Impersonation Information”选项进行设置,选择“default”即可
您已经将 Analysis Services Tutorial 多维数据集成功部署到 Analysis Services 的本地实例,并已对部署的多维数据集进行了处理。
浏览已部署的多维数据集
-
切换到 Business Intelligence Development Studio 中的“产品”维度的“维度设计器”。为此,请双击解决方案资源管理器的“维度”节点的“产品”维度。
-
单击“浏览器”选项卡可显示 Product Key 属性层次结构的“所有”成员。在第 3 课中,您将定义“产品”维度的用户层次结构,利用此结构可浏览该维度。
-
切换到 Business Intelligence Development Studio 中的“多维数据集设计器”。为此,双击解决方案资源管理器的“多维数据集”节点的 Analysis Services Tutorial 多维数据集。
-
选择“浏览器”选项卡,然后在设计器的工具栏上单击重新连接图标。
该设计器的左窗格会显示 Analysis Services Tutorial 多维数据集中的对象。在“浏览器”选项卡的右侧有两个窗格:上部窗格是“筛选器”窗格,下部是“数据”窗格。在接下来的课程中,您将使用多维数据集浏览器进行分析。
可以使用 FormatString 属性来定义格式设置以控制如何向用户显示度量值。在此任务中,您将为 Analysis Services Tutorial 多维数据集中的货币和百分比度量值指定格式设置属性。
-
切换到 Analysis Services Tutorial 多维数据集的多维数据集设计器的“多维数据集结构”选项卡,在“度量值”窗格中展开“Internet 销售”度量值组,右键单击“订单数量”,然后单击“属性”。
-
在“属性”窗口中,单击“自动隐藏”以阻止“属性”窗口打开。
当“属性”窗口处于打开状态时,同时更改多维数据集中多个项的属性将更加容易。
-
在“属性”窗口的 FormatString 列表中,键入 #,#。
-
在“多维数据集结构”选项卡的工具栏上,单击“显示度量值网格”。
通过网格视图,您可以同时选择多个度量值。
-
选择下列度量值之一:可以通过在按住 Ctrl 键的同时单击各个度量值的方式来选择多个度量值:
- Unit Price
- Extended Amount
- Discount Amount
- Product Standard Cost
- Total Product Cost
- Sales Amount
- Tax Amt
- Freight
- Unit Price
-
在“属性”窗口的 FormatString 列表中,选择 Currency。
-
在“属性”窗口顶部的下拉列表框中,选择 Unit Price Discount Pct 度量值,然后在 FormatString 列表中选择 Percent。
-
在“属性”窗口中,将 Unit Price Discount Pct 度量值的 Name 属性更改为“单价折扣百分比”。
-
在“度量值”窗格中,单击 Tax Amt,然后将此度量值的名称更改为 Tax Amount。
-
在“属性”窗口中,单击“自动隐藏”以隐藏“属性”窗口,然后在“多维数据集结构”选项卡的工具栏上单击“显示度量值树”。
-
在“文件”菜单上,单击“全部保存”。
有许多不同的方式可用来增加多维数据集中维度的用户友好性和功能。在本主题的各任务中,您将修改“客户”维度。
可以向数据源视图的表中添加命名计算,命名计算是一个表示为计算列的 SQL 表达式。该表达式的显示形式和工作方式类似于表中的列。通过命名计算,不必修改基础数据源中的表即可扩展数据源视图中现有表的关系架构。有关详细信息,请参阅在数据源视图中定义命名计算 (Analysis Services)。
-
在解决方案资源管理器中双击“数据源视图”文件夹中的 Adventure Works DW 数据源视图,将其打开。
-
在“表”窗格中,右键单击 Customer,然后单击“新建命名计算”。
-
在“创建命名计算”对话框中,在“列名”框中键入 FullName,然后在“表达式”框中键入下列 CASE 语句:
CASE WHEN MiddleName IS NULL THEN FirstName + ' ' + LastName ELSE FirstName + ' ' + MiddleName + ' ' + LastName END
CASE 语句将 FirstName、MiddleName 和 LastName 列串联为一个列,该列将在“客户”维度中用作“客户”属性的显示名称。
-
单击“确定”,然后展开“表”窗格中的 Customer。
FullName 命名计算显示在 Customer 表中列的列表中,并由一个图标指示它是命名计算。
-
在“文件”菜单上,单击“全部保存”。
-
在“表”窗格中,右键单击 Customer,并选择“浏览数据”。
-
查看“浏览 Customer 表”视图中的最后一列。
注意,FullName 列显示在数据源视图中,正确串联基础数据源中多个列的数据,而不修改原始数据源。
-
关闭“浏览 Customer 表”视图。
可以使用显示文件夹将用户和属性层次结构分组为文件夹结构,以增加用户友好性。
-
打开“客户”维度的“维度结构”选项卡。
-
在“属性”窗格中,在按住 Ctrl 键的同时单击下列各个属性,将它们选中:
- 市/县
- 国家/地区-区域
- 邮政编码
- 省/市/自治区
- 市/县
-
在“属性”窗口中,单击 AttributeHierarchyDisplayFolder 属性字段,并键入“位置”。
-
在“层次结构”窗格中,单击“客户所在地域”,然后在“属性”窗口中选择“位置”作为 DisplayFolder 属性的值。
-
在“属性”窗格中,在按住 Ctrl 键的同时单击下列各个属性,将它们选中:
- 上下班路程
- 教育
- 性别
- 户主标志
- 婚姻状况
- 拥有的汽车数
- 家中子女数目
- 职业
- 子女总数
- 年收入
- 上下班路程
-
在“属性”窗口中,单击 AttributeHierarchyDisplayFolder 属性字段并键入 Demographic。
-
在“属性”窗格中,在按住 Ctrl 键的同时单击下列各个属性,将它们选中:
- 电子邮件地址
- 电话
- 电子邮件地址
-
在“属性”窗口中,单击 AttributeHierarchyDisplayFolder 属性字段,并键入“联系人”。
-
在“文件”菜单上,单击“全部保存”。
KeyColumns 属性中包含表示特性键的一个或多个列。在本课中,您会为“市县”和“省/市/自治区”属性创建组合键。需要唯一标识属性时,组合键可能会有帮助。例如,在本教程的稍后部分定义属性关系时,“市县”属性必须唯一确定“省/市/自治区”属性。但是,在不同的省/自治区可能有些城市会重名。为此,将创建由“市县”属性的 StateProvinceName 和 City 列组成的组合键。有关详细信息,请参阅如何修改特性的 KeyColumn 属性。
-
打开“客户”维度的“维度结构”选项卡。
-
在“属性”窗格中,单击“市县”属性。
-
在“属性”窗口中,在 KeyColumns 字段中单击,然后单击浏览 (...) 按钮。
-
在“键列”对话框的“可用列”列表中,选择 StateProvinceName 列,然后单击 > 按钮。
现在,City 和 StateProvinceName 列会显示在“键列”列表中。
-
单击“确定”。
-
若要设置“市县”特性的 NameColumn 属性,请在“属性”窗口的 NameColumn 字段中单击,然后单击浏览 (...) 按钮。
-
在“名称列”对话框的“源列”列表中,选择 City,然后单击“确定”。
-
在“文件”菜单上,单击“全部保存”。
-
打开“客户”维度的“维度结构”选项卡。
-
在“属性”窗格中,单击“省/市/自治区”属性。
-
在“属性”窗口中,在 KeyColumns 字段中单击,然后单击浏览 (...) 按钮。
-
在“键列”对话框的“可用列”列表中,选择 EnglishCountryRegionName 列,然后单击 > 按钮。
现在,EnglishCountryRegionName 和 StateProvinceName 列会显示在“键列”列表中。
-
单击“确定”。
-
若要设置“省/市/自治区”特性的 NameColumn 属性,请在“属性”窗口的 NameColumn 字段中单击,然后单击浏览 (...) 按钮。
-
在“名称列”对话框的“源列”列表中,选择 StateProvinceName,然后单击“确定”。
-
在“文件”菜单上,单击“全部保存”。
如果基础数据支持,则应定义属性间的属性关系。定义属性关系可加快维度、分区和查询处理的速度。有关详细信息,请参阅定义属性关系和属性关系。
-
在“客户”维度的维度设计器中,单击“属性关系”选项卡。
-
在关系图中,右键单击“市县”属性,然后选择“新建属性关系”。
-
在“创建属性关系”对话框中,“源属性”是“市县”。将“相关属性”设置为“省/市/自治区”。
-
在“关系类型”列表中,将关系类型设置为“刚性”。
因为各成员之间的关系不会随时间变化,所以此关系类型为“刚性”。例如,某个市县不太可能成为另一个省/市/自治区的一部分。
-
单击“确定”。
-
在关系图中,右键单击“省/市/自治区”属性,然后选择“新建属性关系”。
-
在“创建属性关系”对话框中,“源属性”是“省/市/自治区”。将“相关属性”设置为“国家/地区-区域”。
-
在“关系类型”列表中,将关系类型设置为“刚性”。
-
单击“确定”。
-
在“文件”菜单上,单击“全部保存”。
更改属性和层次结构后,必须部署更改并重新处理相关对象,然后才能查看这些更改。
-
在 BI Development Studio 的“生成”菜单上,单击“部署 Analysis Services 教程”。
-
在收到“部署成功完成”消息后,单击“客户”维度的维度设计器的“浏览器”选项卡,然后单击设计器工具栏上的重新连接图标。
-
确保在“层次结构”列表中选择了“客户所在地域”,然后在浏览器中依次展开“全部”、Australia、New South Wales 和 Coffs Harbour。
浏览器会将客户显示在市县中。
-
切换到 Analysis Services 教程多维数据集的“多维数据集设计器”。为此,请在解决方案资源管理器的“多维数据集”节点中,双击“Analysis Services Tutorial”多维数据集。
-
单击“浏览器”选项卡,然后在设计器的工具栏上单击重新连接图标。
-
在“度量值组”窗格中,展开“客户”。
注意,“客户”下只出现没有显示文件夹值的显示文件夹和属性,而不显示属性的较长列表。
-
在“文件”菜单上,单击“全部保存”。
在本主题下的任务中,将使用命名计算为产品系列提供更具说明性的名称,在“产品”维度中定义一个层次结构,并为该层次结构指定“(全部)”成员名称。还可以按显示文件夹组合各个属性。
您可以向数据源视图内的表中添加命名计算。在下面的任务中,将创建一个用来显示产品系列完整名称的命名计算。
-
在解决方案资源管理器中双击“数据源视图”文件夹中的 Adventure Works DW 数据源视图,将其打开。
-
在关系图窗格中,右键单击 Product 表,再单击“新建命名计算”。
-
在“创建命名计算”对话框中的“列名”框中,输入 ProductLineName。
-
在“表达式”框中,输入下面的 CASE 语句:
CASE ProductLine WHEN 'M' THEN 'Mountain' WHEN 'R' THEN 'Road' WHEN 'S' THEN 'Accessory' WHEN 'T' THEN 'Touring' ELSE 'Components' END
此 CASE 语句可以为多维数据集内的每个产品系列创建用户友好的名称。
-
单击“确定”即可创建名为 ProductLineName 的命名计算。
-
在“文件”菜单上,单击“全部保存”。
-
切换到“产品”维度的维度设计器。为此,请在解决方案资源管理器的“维度”节点中双击“产品”维度。
-
在“维度结构”选项卡的“属性”窗格中,选择“产品系列”。
-
在“属性”窗口中的 NameColumn 属性字段中单击,然后单击浏览 (…) 按钮以打开“名称列”对话框。
-
选择“源列”列表中的 ProductLineName,然后单击“确定”。
NameColumn 字段中现在包含 Product.ProductLineName (WChar) 文本。“产品系列”属性层次结构的成员现在将显示产品系列的完整名称,而不会显示缩写形式的产品系列名称。
-
在“维度结构”选项卡的“属性”窗格中,选择“产品密钥”。
-
在“属性”窗口中的 NameColumn 属性字段中单击,然后单击省略号 (…) 按钮以打开“名称列”对话框。
-
选择“源列”列表中的 EnglishProductName,然后单击“确定”。
NameColumn 字段中现在包含 Product.EnglishProductName (WChar) 文本。
-
在“属性”窗口中,将“产品密钥”属性的 Name 属性值更改为“产品名称”。
-
在“属性”窗格中,在按住 Ctrl 键的同时单击下列各个属性,将它们选中:
- Class
- Color
- Days To Manufacture
- Reorder Point
- Safety Stock Level
- Size
- Size Range
- Style
- Weight
- Class
-
在“属性”窗口的 AttributeHierarchyDisplayFolder 属性字段中,键入 Stocking。
此时即将这些属性分组放到单独的显示文件夹中。
-
在“特性”窗格中,选择下列特性:
- 经销价格
- 标价
- 标准成本
- 经销价格
-
在“属性”窗口的 AttributeHierarchyDisplayFolder 属性单元中,键入“财务”。
此时即将这些属性分组放到第二个显示文件夹中。
-
在“特性”窗格中,选择下列特性:
- 结束日期
- 开始日期
- 状态
- 结束日期
-
在“属性”窗口的 AttributeHierarchyDisplayFolder 属性单元中,键入“历史记录”。
此时即将这些属性分组放到第三个显示文件夹中。
-
在“层次结构”窗格中选择“产品型号系列”层次结构,然后在“属性”窗口中将 AllMemberName 属性更改为“所有产品”。
-
单击“层次结构”窗格的空白区域,再将 AttributeAllMemberName 属性更改为“所有产品”。
单击空白区域,即可修改“产品”维度自身的属性。您还可以单击“属性”窗格中位于属性列表顶部的“产品”维度图标。
-
在“文件”菜单上,单击“全部保存”。
在本主题的各任务中,您将创建用户定义的层次结构,并更改为“日期”、“月份”、“日历季度”以及“日历半期”等属性显示的成员名称。您还将为属性定义组合键,控制维度成员的排序顺序以及定义属性关系。
可以向数据源视图的表中添加命名计算,命名计算是一个表示为计算列的 SQL 表达式。该表达式的显示形式和工作方式类似于表中的列。通过命名计算,不必修改基础数据源中的表即可扩展数据源视图中现有表的关系架构。有关详细信息,请参阅在数据源视图中定义命名计算 (Analysis Services)。
-
在解决方案资源管理器中双击“数据源视图”文件夹中的 Adventure Works DW 数据源视图,将其打开。
-
在“表”窗格中,右键单击“日期”,然后单击“新建命名计算”。
-
在“创建命名计算”对话框中,在“列名”框中键入 SimpleDate,然后在“表达式”框中键入以下 CASE 语句:
DATENAME(mm, FullDateAlternateKey) + ' ' + DATENAME(dd, FullDateAlternateKey) + ', ' + DATENAME(yy, FullDateAlternateKey)
该 CASE 语句从 FullDateAlternateKey 列中提取年、月和日的值。将此新列用作 FullDateAlternateKey 属性的显示名称。
-
单击“确定”,然后展开“表”窗格中的“日期”。
SimpleDate 命名计算显示在 Customer 表中列的列表中,由一个图标指示它是命名计算。
-
在“文件”菜单上,单击“全部保存”。
-
在“表”窗格中,右键单击“日期”,并选择“浏览数据”。
-
查看“浏览 Customer 表”视图中的最后一列。
注意,SimpleDate 列显示在数据源视图中,正确串联基础数据源中多个列的数据,而无需修改原始数据源。
-
关闭“浏览 Customer 表”视图。
通过将属性从“属性”窗格拖至“层次结构”窗格可以创建新的层次结构。
-
在“日期”维度的维度设计器中,将“日历年”属性从“属性”窗格拖动到“层次结构”窗格中。
-
将“日历半期”属性从“属性”窗格拖动到“层次结构”窗格中“日历年”级别下面的 <新级别> 单元格中。
-
将“日历季度”属性从“属性”窗格拖动到“层次结构”窗格中“日历半期”级别下面的 <新级别> 单元格中。
-
将“英语月份名称”属性从“属性”窗格中拖动到“层次结构”窗格中“日历季度”级别下面的 <新级别> 单元格中。
-
将“日期键”属性从“属性”窗格拖动到“层次结构”窗格中“英文月份名称”级别下方的 <新级别> 单元格中。
-
在“层次结构”窗格中,右键单击“层次结构”层次结构的标题栏,选择“重命名”,并键入 Calendar Date。
-
在“日历日期”层次结构中,将“英文月份名称”级别重命名为 Calendar Month,并将“日期键”级别重命名为 Date。
-
因为不需要使用 FullDateAlternateKey 属性,将其从“属性”窗格中删除。
-
在“文件”菜单上,单击“全部保存”。
如果基础数据支持,则应定义属性间的属性关系。定义属性关系可加快维度、分区和查询处理的速度。
-
在“日期”维度的维度设计器中,单击“属性关系”选项卡。
-
在关系图中,右键单击“英语月份名称”属性,然后选择“新建属性关系”。
-
在“创建属性关系”对话框中,“源属性”是“英语月份名称”。将“相关属性”设置为“日历季度”。
-
在“关系类型”列表中,将关系类型设置为“刚性”。
因为各成员之间的关系不会随时间变化,所以此关系类型为“刚性”。
-
单击“确定”。
-
在关系图中,右键单击“日历季度”属性,然后选择“新建属性关系”。
-
在“创建属性关系”对话框中,“源属性”是“日历季度”。将“相关属性”设置为“日历半期”。
-
在“关系类型”列表中,将关系类型设置为“刚性”。
-
单击“确定”。
-
在关系图中,右键单击“日历半期”属性,然后选择“新建属性关系”。
-
在“创建属性关系”对话框中,“源属性”是“日历半期”。将“相关属性”设置为“日历年”。
-
在“关系类型”列表中,将关系类型设置为“刚性”。
-
单击“确定”。
-
在“文件”菜单上,单击“全部保存”。
在此任务中,您将创建由 EnglishMonthName、CalendarQuarter 和 CalendarSemester 属性使用的用户友好名称列。
-
在解决方案资源管理器的“数据源视图”文件夹中双击 Adventure Works DW 数据源视图,切换到该视图。
-
在“表”窗格中,右键单击“日期”,然后单击“新建命名计算”。
-
在“创建命名计算”对话框中,在“列名”框中键入 MonthName,然后在“表达式”框中键入下列语句:
EnglishMonthName+' '+ CONVERT(CHAR (4), CalendarYear)
该语句将表中每月的月份和年份连接成一个新列。
-
单击“确定”。
-
在“表”窗格中,右键单击“日期”,然后单击“新建命名计算”。
-
在“创建命名计算”对话框的“列名”框中键入 CalendarQuarterDesc,然后在“表达式”框中键入以下 SQL 脚本:
'Q' + CONVERT(CHAR (1), CalendarQuarter) +' '+ 'CY ' + CONVERT(CHAR (4), CalendarYear)
该 SQL 脚本将表中每季度的日历季度和年份连接成一个新列。
-
单击“确定”。
-
在“表”窗格中,右键单击“日期”,然后单击“新建命名计算”。
-
在“创建命名计算”对话框的“列名”框中键入 CalendarSemesterDesc,然后在“表达式”框中键入以下 SQL 脚本:
CASE WHEN CalendarSemester = 1 THEN 'H1' + ' ' + 'CY' + ' ' + CONVERT(CHAR(4), CalendarYear) ELSE 'H2' + ' ' + 'CY' + ' ' + CONVERT(CHAR(4), CalendarYear) END
该 SQL 脚本将表中每半期的日历半期和年份连接成一个新列。
-
单击“确定”。
-
在“文件”菜单上,单击“全部保存”。
KeyColumns 属性中包含表示特性键的一个或多个列。在本任务中,您将定义组合的 KeyColumns。
-
打开“日期”维度的“维度结构”选项卡。
-
在“属性”窗格中,单击“英语月份名称”属性。
-
在“属性”窗口中,在 KeyColumns 字段中单击,然后单击浏览 (...) 按钮。
-
在“键列”对话框的“可用列”列表中,选择 CalendarYear 列,然后单击 > 按钮。
-
现在,EnglishMonthName 和 CalendarYear 列会显示在“键列”列表中。
-
单击“确定”。
-
若要设置 EnglishMonthName 特性的 NameColumn 属性,请在“属性”窗口的 NameColumn 字段中单击,然后单击浏览 (...) 按钮。
-
在“名称列”对话框的“源列”列表中,选择 MonthName,然后单击“确定”。
-
在“文件”菜单上,单击“全部保存”。
-
在“属性”窗格中,单击“日历季度”属性。
-
在“属性”窗口中,在 KeyColumns 字段中单击,然后单击浏览 (...) 按钮。
-
在“键列”对话框的“可用列”列表中,选择 CalendarYear 列,然后单击 > 按钮。
现在,CalendarQuarter 和 CalendarYear 列会显示在“键列”列表中。
-
单击“确定”。
-
若要设置“日历季度”特性的 NameColumn 属性,请在“属性”窗口的 NameColumn 字段中单击,然后单击浏览 (...) 按钮。
-
在“名称列”对话框的 Source Column 列表中,选择 CalendarQuarterDesc,然后单击“确定”。
-
在“文件”菜单上,单击“全部保存”。
-
在“属性”窗格中,单击“日历半期”属性。
-
在“属性”窗口中,在 KeyColumns 字段中单击,然后单击浏览 (...) 按钮。
-
在“键列”对话框的“可用列”列表中,选择 CalendarYear 列,然后单击 > 按钮。
现在,CalendarSemester 和 CalendarYear 列会显示在“键列”列表中。
-
单击“确定”。
-
若要设置“日历半期”特性的 NameColumn 属性,请在“属性”窗口的 NameColumn 字段中单击,然后单击浏览 (...) 按钮。
-
在“名称列”对话框的“源列”列表中,选择 CalendarSemesterDesc,然后单击“确定”。
-
在“文件”菜单上,单击“全部保存”。
更改属性和层次结构后,必须部署更改并重新处理相关对象,然后才能查看这些更改。
-
在 BI Development Studio 的“生成”菜单上,单击“部署 Analysis Services 教程”。
-
在收到“部署成功完成”消息后,单击“日期”维度的维度设计器的“浏览器”选项卡,然后单击设计器工具栏上的重新连接图标。
-
从“层次结构”列表中选择“日历季度”。查看“日历季度”属性层次结构的成员。
注意,由于您创建了要用作名称的命名计算,“日历季度”属性层次结构的成员的名称更具用户友好性。现在,“日历季度”属性层次结构中存在每年中每季度的成员,这些成员并不按照时间顺序进行排序。相反,它们先按季度然后按年份进行排序。在本主题的下一个任务中,您将修改此行为,以先按年然后按季度对此属性的层次结构成员进行排序。
-
查看“英语月份名称”和“日历半期”属性层次结构的成员。
注意,这些层次结构的成员也不是按时间顺序排序的。相反,它们先分别按月或半期然后按年份进行排序。在本主题的下一个任务中,您将修改此行为以更改这种排序顺序。
在本任务中,您将通过更改组成组合键的键顺序来更改排序顺序。
-
在“日期”维度的维度设计器中选择“维度结构”选项卡,然后在“属性”窗格中选择“日历半期”。
-
在“属性”窗口中,查看 OrderBy 属性的值。它被设置为“键”。
“日期半期”属性层次结构的成员按其键值进行排序。使用组合键,成员键首先基于第一个成员键的值,然后基于第二个成员键的值进行排序。换言之,“日历半期”属性层次结构的成员首先按半期、然后按年份进行排序。
-
在“属性”窗口中,单击省略号按钮 (...),以更改 KeyColumns 属性值。
-
在“键列”对话框的“键列”列表中,验证是否选中了 CalendarSemester,然后单击向下箭头以反转该组合键成员的顺序。单击“确定”。
现在,属性层次结构成员首先按年份、然后按半期进行排序。
-
在“特性”窗格中,选择“日历季度”,然后单击“属性”窗口中 KeyColumns 属性内的省略号按钮 (...)。
-
在“键列”对话框的“键列”列表中,验证是否选择了 CalendarQuarter,然后单击向下箭头以反转该组合键成员的顺序。单击“确定”。
现在,属性层次结构成员首先按年份、然后按季度进行排序。
-
在“特性”窗格中,选择“英语月份名称”,然后单击“属性”窗口中 KeyColumns 内的省略号按钮 (...)。
-
在“键列”对话框的“键列”列表中,验证是否选中了 EnglishMonthName,然后单击向下箭头以反转该组合键成员的顺序。单击“确定”。
现在,属性层次结构成员首先按年份、然后按月份进行排序。
-
在 BI Development Studio 的“生成”菜单上,单击“部署 Analysis Services 教程”。部署成功完成后,在“日期”维度的维度设计器中单击“浏览器”选项卡。
-
在“浏览器”选项卡的工具栏上,单击重新连接图标。
-
查看“日历季度”和“日历半期”属性层次结构的成员。
注意,这些层次结构的成员现在按时间顺序排序,首先按年份、然后分别按季度或半期排序。
-
查看“英语月份名称”属性层次结构的成员。
注意,层次结构成员首先按年份然后按月份的字母顺序排序。这是因为数据源视图中 EnglishCalendarMonth 列的数据类型是字符串列,它基于基础关系数据库中的 nvarchar 数据类型。有关如何对每年内的月份按时间顺序进行排序的信息,请参阅根据辅助属性对属性成员进行排序。
在下面的任务中,您将浏览 Analysis Services Tutorial 多维数据集。
-
单击 Analysis Services Tutorial 多维数据集可切换到 BI Development Studio 中的多维数据集设计器。
-
选择“浏览器”选项卡,然后在设计器的工具栏上单击“重新连接”。
该设计器的左窗格显示了 Analysis Services Tutorial 多维数据集的元数据。您会看到“透视”和“语言”选项显示在“浏览器”选项卡的工具栏上。另请注意,“浏览器”选项卡上的元数据窗格右侧包含两个窗格:上部窗格是筛选器窗格,下部窗格是数据窗格。
下图突出显示了多维数据集设计器中的各个窗格。
-
在元数据窗格中,依次展开“度量值”和“Internet 销售”,然后将“销售额”度量值拖到“数据”窗格的“将汇总或明细字段拖至此处”区域。
-
在元数据窗格中,展开“产品”。
请注意,属性层次结构和用户层次结构被组织到“产品”元数据列表中的显示文件夹。
-
将“产品型号系列”用户层次结构拖到数据窗格的“将列字段拖至此处”区域,然后展开该用户层次结构的“产品系列”级别的 Road 成员。
请注意,该用户层次结构提供了到产品名称级别的路径。
-
在元数据窗格中,依次展开“客户”和“位置”,然后将“客户所在地域”层次结构从“客户”维度中的“位置”显示文件夹拖到数据窗格的“将行字段拖至此处”区域。
-
在行轴上,展开“美国”以便按美国的区域查看销售详细信息。
-
展开“地区”以便按俄勒冈州的城市查看销售详细信息。
-
在元数据窗格中,展开“订购日期”,然后将 Order Date.Calendar Date 层次结构拖到“数据”窗格的“将筛选器字段拖至此处”区域。
-
在数据窗格中,单击 Order Date.Calendar Date 筛选器右边的箭头,清除与“(全部)”级别相对应的复选框,依次展开 2002、H1 CY 2002 和 Q1 CY 2002,选中与“2002 年 2 月”相对应的复选框,然后单击“确定”。
此时会按区域和产品系列显示 2002 年 2 月份的 Internet 销售,如下图所示。
-
在元数据窗格中,依次展开“客户”、“人口统计”、“上下班路程”属性层次结构、“成员”和“全部”。
-
右键单击“超过 10 英里”成员,然后单击“添加到子多维数据集区域”。
“上下班路程”显示在数据窗格上方的筛选器窗格中。显示在数据窗格中的值现在进行了筛选,可显示上下班路程超过 10 英里的客户的数据。这等效于多维表达式 (MDX) 查询语句中的 WHERE 子句。有关详细信息,请参阅 MDX 查询基础知识 (MDX)。
-
在“文件”菜单上,单击“全部保存”。