保捱科技网
您的当前位置:首页数据仓库与数据挖掘实验指导

数据仓库与数据挖掘实验指导

来源:保捱科技网


数 据 仓 库 与 数 据 挖 掘

实验 指导

By TMS 

目录

第 1 课:创建SQL server2005的DT项目和基本包 ................................................................. 3

1.1 创建新的 Integration Services 项目 ....................................................................... 5 1.2 添加和配置平面文件连接管理器 .................................................................................... 6 1.3添加和配置 OLE DB 连接管理器 .................................................................................. 8 1.4在包中添加数据流任务 ..................................................................................................... 8 1.5添加并配置平面文件源 ..................................................................................................... 9 1.6添加并配置查找转换 ......................................................................................................... 9 1.7添加和配置 OLE DB 目标 ............................................................................................ 10 1.8测试 Lesson 1 教程包 ................................................................................................. 11 第 2 课:添加循环 ....................................................................................................................... 12

2.1 创建 Lesson 2 包 ........................................................................................................ 13 2.2添加和配置 Foreach 循环容器 ...................................................................................... 13

一、 添加 Foreach 循环容器 ...................................................................................... 13 三、将枚举器映射为用户定义的变量 ......................................................................... 14 四、将数据流任务添加到循环中 ................................................................................. 14 2.3修改平面文件连接管理器 ............................................................................................ 14 2.4 测试 Lesson 2 教程包 ................................................................................................... 15 第 3 课:在 Analysis Services 项目中定义数据源视图及数据集................................... 16

一、 创建 Analysis Services 项目 ................................................................................ 16 二、定义新的数据源 ............................................................................................................. 18 三、定义数据源视图 ............................................................................................................. 22 四、修改表的默认名称 ......................................................................................................... 25 五、定义数据集 ............................................................................................................. 27 五、检查数据集和维度属性 ......................................................................................... 32 六、部署 Analysis Services 项目 ........................................................................................ 40

第 1 课:创建SQL server2005的DT项目和基本包

在本课中,您将创建一个简单 ETL 包,该包可以从单个平面文件源提取数据,使用两个查找转换组件转换该数据,然后将该数据写入 AdventureWorksDW 中的 FactCurrencyRate 事实数据表。在本课中,您还将学习如何创建新包、添加和配置数据源和目标连接以及使用新的控制流和数据流组件。

重要事项:

本教程需要 AdventureWorksDW 示例数据库。有关安装和部署 AdventureWorksDW 的详细信息,请参阅:

了解包要求

在创建包之前,需要充分了解在源数据和目标数据中使用的格式。了解了这些数据格式后,便可定义将源数据映射到目标数据所需的转换。

查看源

对于本教程,源数据是平面文件 SampleCurrencyData.txt 中包含的一组历史货币数据。源数据包括以下四列:平均汇率、货币键、日期键和当天汇率。

下面是 SampleCurrencyData.txt 文件中所包含的源数据示例:

1.00010001 ARS 9/3/2001 0:00 0.99960016

1.00010001 ARS 9/4/2001 0:00 1.001001001

1.00020004 ARS 9/5/2001 0:00 0.99990001

1.00020004 ARS 9/6/2001 0:00 1.00040016

1.00050025 ARS 9/7/2001 0:00 0.99990001

1.00050025 ARS 9/8/2001 0:00 1.001001001

1.00050025 ARS 9/9/2001 0:00 1

1.00010001 ARS 9/10/2001 0:00 1.00040016

1.00020004 ARS 9/11/2001 0:00 0.99990001

1.00020004 ARS 9/12/2001 0:00 1.001101211

在使用平面文件源数据时,需要了解平面文件连接管理器如何解释平面文件数据,这一点很重要。如果平面文件源是 Unicode 编码的,则平面文件连接管理将所有列定义为 [DT_WSTR],默认列宽为 50。如果平面文件源是 ANSI 编码的,则将列定义为 [DT_STR],默认列宽为 50 。您可能必须更改这些默认设置,才能使字符串列类型与所使用的数据更相符。为此,您需要查看将写入数据的目标的数据类型,然后在平面文件连接管理器中选择正确的类型。

查看目标

源数据的最终目标是 AdventureWorksDW 中的 FactCurrencyRate 事实数据表。FactCurrencyRate 事实数据表有四列,并且与两个维度表有关系,如下表所示。 列名称 AverageRate CurrencyKey TimeKey 数据类型 查找表 float 无 查找列 无 int (FK) DimCurrency CurrencyKey (PK) Int (FK) DimTime 无 TimeKey (PK) 无 EndOfDayRate float 将源数据映射为与目标兼容

对源数据和目标数据的分析指出需要查找 CurrencyKey 和 TimeKey 值。将执行这些查找的转换通过使用 DimCurrency 和 DimTime 维度表中的备用键来获取 CurrencyKey 和 TimeKey 值。

平面文件表名 列名称 数据类型 列 0 1 2 3 FactCurrencyRate AverageRate DimCurrency DimTime Float CurrencyAlternateKey nchar(3) FullDateAlternateKey Datetime Float FactCurrencyRate EndOfDayRate 本课程包含以下任务:

·创建新的 Integration Services 项目

·添加和配置平面文件连接管理器

·添加和配置 OLE DB 连接管理器

·在包中添加数据流任务

·添加并配置平面文件源

·添加并配置查找转换

·添加和配置 OLE DB 目标

·使 Lesson 1 包更易理解

·测试 Lesson 1 教程包

1.1 创建新的 Integration Services 项目

创建新的 Integration Services 项目 2 在“开始”菜单中,依次指向“所有程序”、“Microsoft SQL Server 2005”,再单击 SQL

Server Business Intelligence Development Studio。 3

在“文件”菜单中,指向“新建”,再单击“项目”,以创建一个新的 Integration Services 项目。

在“新建项目”对话框的“模板”窗格中,选择“Integration Services 项目”。

4

5

在“名称”框中,将默认名称更改为 SSIS Tutorial。或者,清除“创建解决方案的目录”复选框。

接受默认位置,或单击“浏览”,以浏览并找到要使用的文件夹。 在“项目位置”对话框中,单击文件夹,再单击“打开”。 单击“确定”。

默认情况下,将创建一个名为 Package.dtsx 的空包,并将该包添加到项目中。

6 7 8

9

在解决方案资源管理器工具栏中,右键单击 Package.dtsx,再单击“重命名”,将默认包重命名为 Lesson 1.dtsx。

当系统提示重命名包对象时,单击“是”。

10

设置受区域设置影响的属性 1. 在“视图”菜单中,单击“属性窗口”。 2.

在“属性”窗口中,将 LocaleID 属性设置为“英语(美国)“。

1.2 添加和配置平面文件连接管理器

添加一个平面文件连接管理器 1. 右键单击“连接管理器”区域中的任意位置,再单击“新建平面文件连接”。 2.

在“平面文件连接管理器编辑器”对话框的“连接管理器名称”字段中,键入 Sample

Flat File Source Data。 单击“浏览”。

在“打开”对话框中,浏览并找到示例数据文件夹,再打开 SampleCurrencyData.txt 文件。默认情况下,教程示例数据安装在 c:\\Program Files\\Microsoft SQL

Server\\90\\Samples\\Integration Services\\Tutorial\\Creating a Simple ETL Package\\Sample Data 文件夹中(如果没有,请找老师提供)。

3. 4.

设置受区域设置影响的属性 1. 在“平面文件连接管理器编辑器”对话框中,单击“常规”。 2.

将“区域设置”设置为“英语(美国)”,并将“代码页”设置为 1252。

重命名平面文件连接管理器中的列 1. 在“平面文件连接管理器编辑器”对话框中,单击“高级”。 2.

 

在“属性”窗格中,进行如下更改:

将 Column 0 名称属性更改为 AverageRate。 将 Column 1 名称属性更改为 CurrencyID。

 

将 Column 2 名称属性更改为 CurrencyDate。 将 Column 3 名称属性更改为 EndOfDayRate。

注意: 默认情况下,所有四个列最初都设置为字符串数据类型 [DT_STR],其 OutputColumnWidth 为 50。 重新映射列数据类型 1. 在“平面文件连接管理器编辑器”对话框中,单击“建议类型”。

Integration Services 将根据前 100 行数据自动建议数据类型,但您可以通过更改建议

选项来增加和减少取样数据,指定整数数据或布尔数据的默认数据类型,或添加作为填充量添加到字符串列中的空格。

但现在,请不要进行任何更改,单击“取消”返回“平面文件连接管理器编辑器”对话框的“高级”窗格,查看建议的列数据类型。如果单击“确定”,则针对列元数据给出建议。 在本教程中,Integration Services 为 SampleCurrencyData.txt 文件中的数据建议了下表第二列中显示的数据类型。但是,目标中的列要求的数据类型(将在以后的步骤中定义)显示在下表的最后一列。 平面文件列 AverageRate 建议的类型 目标列 Float [DT_R4] String [DT_STR] FactCurrencyRate.AverageRate 目标类型 Float CurrencyID DimCurrency,CurrencyAlternateKey nchar(3) CurrencyDate Date DimTime.FullDateAlternateKey [DT_DATE] FactCurrencyRate.EndOfDayRate datetime EndOfDayRate Float [DT_R4] Float 为 CurrencyID 和 CurrencyDate 列建议的数据类型与目标表中的字段的数据类型不相容。由于 DimCurrency.CurrencyAlternateKey 的数据类型为 nchar (3),CurrencyID 需要从字符串类型 [DT_STR] 更改为字符串类型 [DT_WSTR]。另外,字段

DimTime.FullDateAlternateKey 被定义为 DataTime 数据类型,因此 CurrencyDate 需要从日期类型 [DT_Date] 更改为数据库时间戳类型 [DT_DBTIMESTAMP]。 2.

在“属性”窗格中,将列 CurrencyID 的数据类型从字符串类型 [DT_STR] 更改为 Unicode 字符串类型 [DT_WSTR]。

在“属性”窗格中,将列 CurrencyDate 的数据类型从日期类型 [DT_DATE] 更改为数据库时间戳类型 [DT_DBTIMESTAMP]。 单击“确定”。

3.

4.

1.3添加和配置 OLE DB 连接管理器

1. 2. 3.

右键单击连接管理器区域中的任意位置,再单击“新建 OLE DB 连接”。 在“配置 OLE DB 连接管理器”对话框中,单击“新建”。

在“服务器名称”中,输入 localhost(注意:如果此步不成功,请联系老师,要求新的数据库地址,你们的客户机可能没有安装此服务器)。

将 localhost 指定为服务器名称时,连接管理器将连接到本地计算机上 Microsoft SQL Server 2005 的默认实例。若要使用 SQL Server 2005 的远程实例,请将 localhost 替换为要连接到的服务器的名称。 4. 5.

在“登录到服务器”组中,确认选择了“使用 Windows 身份验证”。 在“连接到数据库”组的“选择或输入数据库名称”框中,键入或选择 AdventureWorksDW。

单击“测试连接”,验证指定的连接设置是否有效。 单击“确定”。 单击“确定”。

在“配置 OLE DB 连接管理器”对话框的“数据连接”窗格中,确认选择了 localhost.AdventureWorksDW。 单击“确定”。

6. 7. 8. 9.

10.

1.4在包中添加数据流任务

1. 2.

单击“控制流”选项卡。

在“工具箱”中,展开“控制流项”,并将一个数据流任务拖到“控制流”选项卡的设计图面上。

在“控制流”设计图面中,右键单击新添加的数据流任务,再单击“重命名”,将名称更改为 Extract Sample Currency Data。

好的做法是为添加到设计图面的所有组件提供唯一的名称。考虑到易用性和可维护性,名称应说明每个组件执行的功能。按照这些命名指南,Integration Services 包可以进行自我说明。

3.

1.5添加并配置平面文件源

1.

打开“数据流”设计器,方法是双击 Extract Sample Currency Data 数据流任务或单击“数据流”选项卡。

在“工具箱”中,展开“数据流源”,然后将“平面文件源”拖动到“数据流”选项卡的设计图面上。

在“数据流”设计图面上,右键单击新添加的“平面文件源”,单击“重命名”,然后将该名称更改为 Extract Sample Currency Data。 右键单击此平面文件源,打开“平面文件源编辑器”对话框。

在“平面文件连接管理器”框中,键入或选择 Sample Flat File Data。 单击“列”并验证列名是否正确。

2.

3.

4. 5. 6.

7. 单击“确定”

1.6添加并配置查找转换

对于本教程,您将向包中添加以下两个查找转换组件并对其进行配置:

一个转换是根据平面文件中匹配的 CurrencyID 列值对 DimCurrency 维度表的 CurrencyKey 列中的值执行查找。

一个转换是根据平面文件中匹配的 CurrencyDate 列值对 DimTime 维度表的 TimeKey 列中的值执行查找。

无论在哪种情况下,查找转换都将使用前面创建的 OLE DB 连接管理器。

添加并配置 CurrencyKey 查找转换

1.

在“工具箱”中,展开“数据流转换”,然后将“查找”拖动到“数据流”选项卡的设计图面上。

单击 Extract Sample Currency Data 平面文件源,并将绿色箭头拖动到新添加的“查找”转换中,以连接这两个组件。

在“数据流”设计图面上,右键单击新添加的“查找”转换,单击“重命名”,然后将该名称更改为 Lookup Currency Key。 双击 Lookup Currency Key 转换。

2.

3.

4.

5.

在“查找转换编辑器”对话框的“OLE DB 连接管理器”框中,确保显示 localhost.AdventureWorksDW。

在“使用表或视图”框中,键入或选择 [dbo].[DimCurrency]。 单击“列”选项卡。

在“可用输入列”面板中,将 CurrencyID 拖放到“可用查找列”面板的 CurrencyAlternateKey 上。 选择 CurrencyKey。

6. 7. 8.

9.

10. 单击“确定”。

添加并配置 DateKey 查找转换

1. 2.

在“工具箱”中,将“查找”拖动到“数据流”设计图面上。

单击 Lookup Currency Key 转换,并将绿色箭头拖动到新添加的“查找”转换中,以连接这两个组件。

在“数据流”设计图面上,右键单击新添加的“查找”转换,单击“重命名”,然后将该名称更改为 Lookup Date Key。 双击 Lookup Date Key 转换。

在“查找转换编辑器”对话框的“OLE DB 连接管理器”框中,确保显示了 localhost.AdventureWorksDW。

在“使用表或视图”框中,键入或选择 [dbo].[DimTime]。 单击“列”选项卡。

在“可用输入列”面板中,将 CurrencyDate 拖放到“可用查找列”面板的 FullDateAlternateKey 上。 选择 TimeKey。

3.

4. 5.

6. 7. 8.

9.

10. 单击“确定”。

1.7添加和配置 OLE DB 目标

1.

在“工具箱”中,展开“数据流目标”,并将“OLE DB 目标”拖到“数据流”选项卡的设计图面上。

单击“查找日期键”转换,并将绿色箭头拖到新添加的“OLE DB 目标”上,以便将两个组件连接在一起。

2.

3.

在“数据流”设计图面上,右键单击新添加的“OLE DB 目标”组件,单击“重命名”,然后将名称更改为 Sample OLE DB Destination。 双击 Sample OLE DB Destination。

在“OLE DB 目标编辑器”对话框中,确保已在“OLE DB 连接管理器”框中选中 localhost.AdventureWorksDW。

在“表或视图的名称”框中,键入或选择 [dbo].[FactCurrencyRate]。 单击“映射”。

确保输入列已正确映射到目标列。 单击“确定”。

4. 5.

6. 7. 8. 9.

1.8测试 Lesson 1 教程包

1.

在“调试”菜单上,单击“启动调试”。

包将开始运行,结果有 1097 个行被成功添加到 AdventureWorksDW 中的 FactCurrency 事实数据表中。 2.

当包运行完毕后,在“调试”菜单上,单击“停止调试”。

第 2 课:添加循环

在第 1 课:创建简单 ETL 包中,创建了从单个平面文件源提取数据的包,然后使用查找转换功能对数据进行了转换,最后将数据加载到 AdventureWorksDW 示例数据库的 FactCurrency 事实数据表中。

但是,提取、转换和加载 (ETL) 过程很少使用单个平面文件。典型的 ETL 过程从多个平面文件源提取数据。从多个源提取数据需要采用迭代控制流。Microsoft SQL Server 2005 Integration Services (SSIS) 的一项最有可能出现的功能是您将很容易向包中添加迭代或循环。

Integration Services 为循环遍历包提供了两种容器类型:Foreach 循环容器和 For 循环容器。Foreach 循环容器使用枚举器执行循环,而 For 循环则通常使用变量表达式。本课使用 Foreach 循环容器。

Foreach 循环容器使包能够对指定枚举器的每个成员重复执行控制流。使用 Foreach 循环容器,可以枚举:

   

ADO 记录集行和架构信息 文件和目录结构 系统、包和用户变量 SQL 管理对象 (SMO)

在本课中,您将修改在第 1 课中创建的简单 ETL 包,以便利用 Foreach 循环容器。还将设置用户定义的包变量,以便使该教程包能够迭代遍历文件夹中的所有平面文件。

课程任务

本课程包含以下任务:

   

复制 Lesson 1 包

添加和配置 Foreach 循环容器 修改平面文件连接管理器 测试 Lesson 2 教程包

2.1 创建 Lesson 2 包

1.

如果 Business Intelligence Development Studio 尚未打开,请单击“开始”,指向“所有程序”,指向 Microsoft SQL Server 2005,再单击 Business Intelligence Development Studio。

在“文件”菜单上,依次单击“打开”、“项目/解决方案”、SSIS Tutorial 文件夹,然后再次单击“打开”,最后双击 SSIS Tutorial.sln。 在解决方案资源管理器中,右键单击 Lesson 1.dtsx,再单击“复制”。 在解决方案资源管理器中,右键单击“SSIS 包”,再单击“粘贴”。 默认情况下,复制的包将命名为 Lesson 2.dtsx。 5.

在解决方案资源管理器中,双击 Lesson 2.dtsx 打开该包

2.

3. 4.

2.2添加和配置 Foreach 循环容器

一、 添加 Foreach 循环容器 1.

在 Business Intelligence Development Studio 中,单击“控制流”选项卡。

在“工具箱”中,展开“控制流项”,然后将“Foreach 循环容器”拖到“控制流”选项卡的设计图面上。

右键单击新添加的“Foreach 循环容器”,并选择“编辑”。 在“Foreach 循环编辑器”对话框的“常规”页上,为“名称”输入 Foreach File in Folder。

2.

3. 4.

二、为 Foreach 循环容器配置枚举器

1. 2. 3. 4.

单击“集合”。

在“集合”页上,选择“Foreach 文件枚举器”。 在“枚举器配置”组中,单击“浏览”。

在“浏览文件夹”对话框中,找到包含教程示例数据的示例数据文件夹。

默认情况下,教程示例数据安装在 c:\\Program Files\\Microsoft SQL Server\\90\\Samples\\Integration Services\\Tutorial\\Creating a Simple ETL Package\\Sample Data 文件夹中(如果找不到,请联系联系老师)。 5.

在“文件”框中,键入 Currency_*.txt。

三、将枚举器映射为用户定义的变量 1. 2.

单击“变量映射”。

在“变量映射”页的“变量”列中,单击空单元格并选择“<新建变量„>”。

在“添加变量”对话框中,为“名称”键入 varFileName。 单击“确定”。

再次单击“确定”,退出“Foreach 循环编辑器”对话框。

3. 4. 5.

四、将数据流任务添加到循环中

将“提取示例货币”数据流任务拖到现已重命名为 Foreach File in Folder 的 Foreach 循环容器中。

2.3修改平面文件连接管理器

在本任务中,您将修改在第 1 课中创建和配置的平面文件连接管理器。平面文件连接管理器在最初创建时配置为静态加载单个文件。若要启用平面文件连接管理器以重复加载文件,您必须修改连接管理器的 ConnectionString 属性以接受用户定义的变量 User:varFileName,该变量包含要在运行时加载的文件的路径。

通过将连接管理器修改为使用用户定义的变量 User::varFileName 的值并填充连接管理器的 ConnectionString 属性,连接管理器将能够连接到不同的平面文件。在运行时,Foreach 循环容器的每次迭代都将动态更新 User::varFileName 变量。更新变量时,还会使连接管理器连接到不同的平面文件,并使数据流任务处理其他数据集。

配置平面文件连接管理器以使用连接字符串的变量

1、在“连接管理器”窗格中,单击 SampleCurrencyData。

2、在“属性”窗口中,针对“表达式”,单击空单元,然后单击省略号按钮“(„)”。

3、在“属性表达式编辑器”对话框的“属性”列中,键入或选择 ConnectionString。

4、在“表达式”列中,单击省略号按钮“(„)”以打开“表达式生成器”对话框。

5、在“表达式生成器”对话框中,展开“变量”节点。将变量 User::varFileName 拖到“表

达式”框中。单击“确定”关闭“表达式生成器”对话框。再次单击“确定”关闭“属性表达式编辑器”对话框。

2.4 测试 Lesson 2 教程包

使用现在配置的 Foreach 循环容器和平面文件连接管理器,Lesson 2 包可以迭代遍历示例数据文件夹中由 14 个平面文件组成的集合。每次找到与指定的文件名条件匹配的文件名时,Foreach 循环容器都将用该文件名填充用户定义的变量。该变量又会更新平面文件连接管理器的 ConnectionString 属性,并与新平面文件建立连接。然后,在连接到文件夹中的下一个文件之前,Foreach 循环容器将对新平面文件中的数据运行未修改的数据流任务。

使用以下过程可以测试已添加到包中的新循环功能。 测试 Lesson 2 教程包 1.

在“调试”菜单上,单击“启动调试”。

包将运行。可以在“输出”窗口中或单击“进度”选项卡来验证每个循环的

状态。例如,可以看到 1097 行从文件 Currency_VEB.txt 添加到目标表中。 2.

当包运行完毕后,在“调试”菜单上,单击“停止调试”。

第 3 课:在 Analysis Services 项目中定义数据源视图及数据集

在以下任务中,将打开 Business Intelligence Development Studio,并基于 Analysis Services 项目模板创建名为 Analysis Services Tutorial 的新 Microsoft SQL Server 2005 Analysis Services (SSAS) 项目。项目是相关对象的集合。项目存在于解决方案中,而解决方案包括一个或多个项目。

一、 创建 Analysis Services 项目

1.

单击“开始”,指向“所有程序”,再指向 Microsoft SQL Server 2005,

再单击 SQL Server Business Intelligence Development Studio。 将打开 Microsoft Visual Studio 2005 开发环境。 2.

关闭“起始页”选项卡。在 Visual Studio 的“文件”菜单上,指向“新建”,再单击“项目”。

可以使用 Business Intelligence Development Studio 从与 Visual Studio 一起安装的模板或从您定义的模板创建几种不同类型的项目。安装哪些模板取决于所安装的 Microsoft SQL Server 2005 组件。 3.

在“新建项目”对话框中,从“项目类型”窗格中选择“商业智能项目”,再在“模板”窗格中选择“Analysis Services 项目”。

注意位于对话框底部的默认项目名称、默认解决方案名称和默认项目位置。默认情况下,将为解决方案创建新的目录。 4.

将项目名称更改为 Analysis Services Tutorial,这也将更改解决方案名称,然后单击“确定”。

至此,您已经在同样名为 Analysis Services Tutorial 的新解决方案中基于 Analysis Services 项目模板成功创建了 Analysis Services Tutorial 项目。 下图显示在 Visual Studio 开发环境中的 Analysis Services Tutorial 项目

二、定义新的数据源

1.

在解决方案资源管理器中,右键单击“数据源”,然后单击“新建数据源”。 将打开数据源向导。 2.

在“欢迎使用数据源向导”页上,单击“下一步”。

将显示“选择如何定义连接”页。在该页上,可以基于新连接、现有连接或以前定义的数据源对象来定义数据源。以前定义的数据源对象是当前项目中或当前解决方案的其他项目中的现有数据源定义。在本教程中,将基于新连接定义新数据源。 3.

在“选择如何定义连接”页上,单击“新建”。

将显示“连接管理器”对话框。在此对话框中,可定义数据源的连接属性。连接管理器是将在运行时使用的连接的逻辑表示形式。例如,连接管理器包括一个在设计时设置的连接字符串属性;在运行时,将通过使用连接字符串属性中的值创建一个物理连接。 4.

在“提供程序”列表中,确保已选中“本机 OLE DB\\Microsoft OLE DB Provider for SQL Server”。

Analysis Services 还支持“提供程序”列表中显示的其他访问接口。 5.

在“服务器名称”文本框中,键入 localhost。

要连接到本地计算机上的命名实例,请键入 localhost\\<实例名>。将项目部署到 Analysis Services 的特殊实例时,Analysis Services 引擎将连接到 Microsoft SQL Server 的默认实例(位于 Analysis Services 实例所在的计算机上)的 Adventure Works DW 数据库。如果在定义数据源时指定特定的计算机名或 IP 地址,则项目或部署的应用程序将与指定计算机而不是本地计算机建立连接。通过 Analysis Services 部署向导,可以在部署时指定源数据的实际服务器名。 6.

确保已选中“使用 Windows 身份验证”。在“选择或输入数据库名称”列表中,选择 AdventureWorksDW。

下图显示了包含到目前为止已定义设置的“连接管理器”。

7.

单击“确定”,然后单击“下一步”。

将显示“模拟信息”页。在该向导的此页上,可以定义 Analysis Services 用于连接数据源的安全凭据。在本教程中,您将选择 Analysis Services 服务帐户,因为该帐户具有访问 Adventure Works DW 数据库所需的权限。 8.

选择“使用服务帐户”,然后单击“下一步”。 下图显示了随后出现的“完成向导”页。

9.

在“完成向导”页上,单击“完成”以创建名为 Adventure Works DW 的新数据源。 下图显示了解决方案资源管理器的“数据源”文件夹中的新数据源。

注意: 若要修改现有数据源的属性,请在“数据源”文件夹中双击该数据源,以在“数据源设计器”中显示数据源属性。 您已经为 Analysis Services Tutorial 项目成功定义了 Adventure Works DW 数据源。

三、定义数据源视图

1.

在解决方案资源管理器中,右键单击“数据源视图”,再单击“新建数据源视图”。 此时将打开数据源视图向导。 2.

在“欢迎使用数据源视图向导”页中,单击“下一步”。

此时将显示“选择数据源”页。“关系数据源”下的 Adventure Works DW 数据源已被选中。 提示: 若要创建一个基于多数据源的数据源视图,必须先定义一个基于单一数据源的数据源视图。此数据源将被称为主数据源。随后,可以添加来自辅助数据源的表和视图。异类查询要求至少有一个数据源是 Microsoft SQL Server 数据源。 3.

单击“下一步”。

此时将显示“选择表和视图”页。在此页中,可以从选定的数据源提供的对象列表中选择表和视图。可以筛选此列表,为选择表和视图提供帮助。 4.

    

在“可用对象”列表中,选择下列表(同时按下 Ctrl 键可选择多个表):

DimCustomer DimGeography DimProduct DimTime FactInternetSales

单击 >,将选中的表添加到“包含的对象”列表中。

下图显示了将表添加到“包含的对象”列表后的“选择表和视图”页。

5.

6.

单击“下一步”,再单击“完成”以定义 Adventure Works DW 数据源视图。 此时,数据源视图 Adventure Works DW 将在解决方案资源管理器的“数据源视图”文件夹中显示。同时,数据源视图的内容也将在 Business Intelligence Development Studio 的数据源视图设计器中显示。此设计器包含以下元素:

  

“关系图”窗格,其中将以图形方式显示各个表及其相互关系。 “表”窗格,其中将以树的形式显示各个表及其架构元素。

“关系图组织程序”窗格,可在其中创建子关系图,用于查看数据源视图的子

集。

 一个特定于数据源视图设计器的工具栏。

下图显示了数据源视图设计器中的 Adventure Works DW 数据源视图。

7. 8.

单击“最大化”按钮,最大化 Microsoft Visual Studio 开发环境。

在沿数据源视图设计器顶部显示的工具栏上,使用“缩放”图标,将“关系图”窗格中的表缩小 50% 进行查看。这将隐藏每个表的列详细信息。

单击“自动隐藏”按钮,该按钮是解决方案资源管理器的标题栏上的图钉图标。 此时解决方案资源管理器被最小化,成了位于开发环境右侧的一个选项卡。若要再次查看解决方案资源管理器,请将指针指向解决方案资源管理器选项卡。若要取消隐藏解决方案资源管理器,请再次单击“自动隐藏”按钮。 10.

如果“属性”窗口没有默认为隐藏,请单击该窗口标题栏上的“自动隐藏”。 现在,可以在“关系图”窗格中轻松查看所有表及其相互关系了。请注意,在

FactInternetSales 表和 DimTime 表之间存在三种关系。每个销售都具有三个与其关联的日期:订单日期、到期日期和发货日期。若要查看某种关系的详细信息,可双击“关系图”窗格中的关系箭头。

下图显示了数据源视图设计器中的“关系图”窗格。

9.

您已经成功创建了 Adventure Works DW 数据源视图,该视图包括来自 Adventure Works DW 数据源的五个表的元数据。在下一课中,将根据这五个表定义 Analysis Services Tutorial 数据集的初始版本。 提示: 若要向现有数据源视图添加表,请右键单击“关系图”窗格或“表”窗格,再单击“添加/删除表”。为了简便起见,请仅将要在项目中使用的表和视图添加到数据源视图中。

四、修改表的默认名称

1.

在数据源视图设计器的“关系图”窗格中,右键单击 FactInternetSales 表,再单击“属性”。

此时将出现隐藏的“属性”窗口,其中显示了 Adventure Works Tutorial 数据源视图中 FactInternetSales 对象的属性。 2.

单击“属性”窗口标题栏上的“自动隐藏”按钮,使该窗口保持未隐藏状态。 在“属性”窗口保持打开状态时,更容易更改数据源视图中各个表的属性。如果不使用“自动隐藏”按钮使窗口保持打开状态,则在“关系图”窗格中单击其他对象时,该窗口将会关闭。 3.

将 FactInternetSales 对象的 FriendlyName 属性更改为 InternetSales。

如果在 FriendlyName 属性单元格外单击,则应用此更改。在下一课中,将定义基于此事实数据表的度量值组;由于在本课程中进行了更改,事实数据表的名称将是 InternetSales 而不是 FactInternetSales。 4.

在“关系图”窗格中单击 DimProduct,或在“属性”窗口的列表框中选择 dbo.DimProduct DataTable,再将 FriendlyName 属性更改为 Product。

在下一课中,将定义基于 DimProduct 表的维度;由于在本课程中进行了更改,此维度的名称将是 Product 而不是 DimProduct。 5.

用同样的方法更改数据源视图中剩余的各个表的 FriendlyName 属性,删除“Dim”前缀。

完成更改后,单击“自动隐藏”按钮,重新隐藏“属性”窗口。

下图显示了数据源视图设计器中的数据源视图,以及新修改的对象名称。

6.

7.

在“文件”菜单上,或者在 BI Development Studio 的工具栏上,单击“全部保存”。 这将保存到目前为止您在 Analysis Services Tutorial 项目中所做的更改,您可以根据需要在此处停止教程,以后再继续。

您已成功地更改了数据源视图中的表的默认名称,提高了将基于这些表定义的维度和度量值组的用户友好特性。

五、定义数据集

1. 2. 3.

在解决方案资源管理器中,右键单击“数据集”,然后单击“新建数据集”。 在“欢迎使用数据集向导”页上,单击“下一步”。

在“选择生成方法”页上,确认已选中“使用数据源生成数据集”选项和“自动生成”选项,然后单击“下一步”。

在“选择数据源视图”页上,确认已选中 Adventure Works DW 数据源视图,然后单击“下一步”。 注意: 在使用数据集向导生成数据集时,可以在“选择数据源视图”页上单击“完成”,以让该向导定义数据集的其余属性。在这种情况下,该向导将直接进入“完成向导”页,您可以在该页为数据集指定名称并可以查看其结构。该向导通过使用默认设置和它从基础数据源对象中查询到的数据来定义数据集。不过,为了实现本教程教学目的,请单击“下一步”继续向导的其他页,以查看和更改该向导指定的数据集定义。 5.

该向导扫描在数据源对象中定义的数据库中的表,以标识事实数据表和维度表。事实数据表包含相关的度量值,如售出的部件数等。维度表包含有关这些度量值的信息,如售出产品、售出该产品的月份等。

在向导标识完事实数据表和维度表后,请在“检测事实数据表和维度表”页上单击“下一步”。

在“标识事实数据表和维度表页上,将显示该向导所标识的事实数据表和维度表。 对于 Analysis Services Tutorial 项目,该向导标识四个维度表和一个事实数据表。为该事实数据表定义了一个度量值组。

每个维度表必须链接到数据集中的一个事实数据表。维度表具有下列关系类型之一:

 

4.

6.

7.

与事实数据表的直接主键-外键关系。这称为“星型架构”。

通过某个其他表与事实数据表的间接主键-外键关系。这称为“雪花型架构”。

请注意,表既可以用作事实数据表,又可以用作维度表。在第 5 课中,您将基于事实

数据表定义维度。

在“标识事实数据表和维度表”页上,还可以指定时间维度表,然后将时间属性与指定维度表中的列相关联。时间属性与指定时间维度表中的列相关联是基于时间的表达式 (MDX) 计算(如 YTD 和 ParallelPeriod)所必需的,而且时间智能向导将使用这一关联定义与时间相关的计算成员。

下图显示了该向导的“标识事实数据表和维度表”页,其中为 Analysis Services Tutorial 项目选择了事实数据表和维度表。

8.

在“标识事实数据表和维度表”页的“时间维度表”列表中,选择 Time,然后单击“下一步”。

在“选择时间段”页上,将时间属性名称映射到以指定为“时间”维度的维度为基础的维度表中的相应列。根据以下列表映射这些属性:

    

9.

将 Year 属性映射到 CalendarYear 列。 将 Half Year 属性映射到 CalendarSemester 列。 将 Quarter 属性映射到 CalendarQuarter 列。 将 Month 属性映射到 EnglishMonthName 列。 将 Date 属性映射到 FullDateAlternateKey 列。

下图演示了该向导中的这些列映射。

10.

单击“下一步”按钮进入向导的下一页。

随即会出现“选择度量值”页,其中显示了该向导所选择的度量值。该向导选择它标识为事实数据表的表中的各数值数据类型列作为度量值。在本课中,只定义了一个度量值组。但在后面的课程中,您将使用多个度量值组。 11.

在“选择度量值”页上,查看在“Internet 销售”度量值组中选择的度量值,然后清除下列度量值的复选框:

   

促销关键字 货币关键字 销售区域关键字 修订号

该向导选择事实数据表中未链接到维度的所有数值列作为度量值。但这四列不是实际的度量值。前三列是将事实数据表与未在此数据集的初始版本中使用的维度表链接起来的键值。

下图显示了“选择度量值”页上已清除的复选框和其余选定维度。

12.

单击“下一步”。

由于您前面已在该向导选择了“自动生成”选项,因此该向导将扫描层次结构。 该向导对定义为维度表的表中的各列记录进行采样,以确定列之间是否存在层次结构关系。层次结构关系是多对一关系,例如“市/县”和“省/市/自治区”之间的关系。 13.

在该向导完成对维度的扫描和对层次结构的检测后,请在“检测层次结构”页上单击“下一步”。

在“查看新建维度”页上,通过展开树控件显示该向导检测到的三个维度的层次结构和属性,查看其中每个维度的维度层次结构。 下图显示了“查看新建维度”页上的这三个维度。

14.

15.

依次展开“产品” 维度和“属性”,然后清除 Large Photo 复选框。单击“下一步”。 Large Photo 列在本教程项目的数据集中不是很有用,并且由于它可能会占用大量空间,因此最好将其从数据集中删除。 16.

在“完成向导”页上,将数据集的名称更改为 Analysis Services Tutorial。在该页上,也可以查看数据集的度量值组、度量值、维度、层次结构和属性。 单击“完成”按钮以完成向导。

在解决方案资源管理器的 Analysis Services Tutorial 项目中,Analysis Services Tutorial 数据集显示在“数据集”文件夹中,而三个数据库维度则显示在“维度”文件夹中。此外,数据集设计器在开发环境的显示 Analysis Services Tutorial 数据集。请注意,在 Business Intelligence Development Studio 的其他选项卡上也已打开数据源视图设计器。 18.

在数据集设计器的工具栏上,将缩放级别更改为 50%,以便轻松查看数据集中的维度表和事实数据表。

下图显示了该设计器中的维度表和事实数据表。请注意,事实数据表是黄色的,维度表是蓝色的。

17.

19.

在“文件”菜单上,或者在 BI Development Studio 的工具栏上,单击“全部保存”。 这将保存到目前为止您在 Analysis Services Tutorial 项目中所做的更改,您可以根据需要在此处停止教程,以后再继续。

五、检查数据集和维度属性

在数据集设计器中,可以查看和编辑数据集的各种属性。设计器包含下列选项卡,这些选项卡可显示数据集的不同视图。 数据集结构

使用此选项卡,可以修改数据集的体系结构。

维度用法

使用此选项卡,可以定义维度和度量值组之间的关系,以及每个维度在每个度量值组中的粒度。如果使用多个事实数据表,可能需要标识度量值是否不适用于一个或多个维度。每个单元格表示相交的度量值组和维度之间的潜在关系。

计算

使用此选项卡,可以查看为数据集定义的计算,为整个数据集或子数据集定义新计算,为现有计算重新排序,以及使用断点分步调试计算。使用计算(如利润计算)可以根据现有值定义新成员和度量值,还可以定义命名集。

KPI

使用此选项卡,可以创建、编辑和修改数据集中的关键性能指标 (KPI)。通过使用 KPI,开发人员可以快速确定有关某个值的有用信息,如定义的值是超过目标还是未达到目标,或者定义的值的走势是在变好还是变差。

操作

使用此选项卡,可以创建或修改针对选定的数据集的钻取、报告和其他操作。操作可以向客户端应用程序提供最终用户可以访问的序上下文相关信息、命令和报告。

分区

使用此选项卡,可以创建和管理数据集的分区。通过分区,可以使用不同的属性(如聚合定义)将数据集的各部分存在不同的位置。

透视

使用此选项卡,可以创建和管理数据集中的透视。透视是数据集的一个定义的子集,用于降低数据集对于业务用户的主观复杂性。

翻译

使用此选项卡,可以创建和管理数据集对象的翻译名称(如月份名或产品名称)。

浏览器

使用此选项卡,可以查看数据集中的数据。

1.

在数据集设计器中,在“数据集结构”选项卡的“度量值”窗格中,展开“Internet 销售”度量值组。

此时将显示为“Internet 销售”度量值组定义的度量值。可以将这些度量值拖到所需的顺序中,以此更改这些度量值的顺序。度量值的顺序将影响某些客户端应用程序对这些度量值进行排序的方式。度量值组被命名为 Internet Sales,这是因为基础事实数据表在数据源视图中的友好名称为 InternetSales。请注意,大写字母“S”前自动添加了一个空格,以增加该名称的用户友好特性。度量值组及其包含的每个度量值都有属性,在“属性”窗口中可以编辑这些属性。在后面的课程中,将学习如何修改这些度量值的属性。 下图显示了数据集设计器的“度量值”窗格中的度量值组和度量值。

2.

在数据集设计器中,在“数据集结构”选项卡的“维度”窗格中,检查 Analysis Services Tutorial 数据集中的数据集维度。

请注意,尽管在数据库级别只创建了三个维度(如解决方案资源管理器所示),但在 Analysis Services Tutorial 数据集中却有五个数据集维度。该数据集包含的维度比数据库多,其原因是,根据事实数据表中与时间相关的不同事实数据,“时间”数据库维度被用作三个与时间相关的单独数据集维度的基础。这些与时间相关的维度也称为“角色扮演维度”。使用三个与时间相关的数据集维度,用户可以按照下列三个与每个产品销售相关的单独事实数据在数据集中组织维度:产品订单日期、履行订单的到期日期和订单发货日期。通过将一个数据库维度重复用于多个数据集维度,Analysis Services 简化了维度管理,降低了磁盘空间使用量,并减少了总体处理时间。 3.

在“数据集结构”选项卡的“维度”窗格中,展开“客户”,再单击“编辑„客户‟”。 此时,在维度设计器中将显示 Customer 维度。(请注意,数据源视图设计器和数据集设计器仍处于打开状态。)维度设计器包含下列三个选项卡:“维度结构”、“翻译”和“浏览器”。请注意,“维度结构”选项卡包含下列三个窗格:“属性”、“层次结构和级别”和“数据源视图”。“属性”窗格显示数据集向导设计的属性,“层次结构和级别”窗格显示数据集向导定义的用户层次结构。

在维度设计器的“维度结构”选项卡上,可以添加、删除和编辑层次结构、级别和属性。在第 3 课中,将学习如何执行这些任务。

下图显示了维度设计器的“维度结构”选项卡。

4.

在设计环境中单击选项卡,或在解决方案资源管理器中右键单击数据集后单击视图设计器,可以切换到数据集设计器。 在数据集设计器中,单击“维度用法”选项卡。

在此 Analysis Services Tutorial 数据集视图中,可以看到“Internet 销售”度量值组所用的数据集维度。如果数据集包含多个度量值组,则数据集维度可能只用于其中有些度量值组,而不用于其他度量值组。此外,可以定义每个维度及使用该维度的每个度量值组之间的关系类型。在后续课程中,将进一步学习维度用法以及维度与度量值组关系。

下图显示了数据集设计器的“维度用法”选项卡。

5.

6.

在“Internet 销售”度量值组和“客户”维度的相交处,单击“客户”旁边的“全名”字段,再单击省略号按钮(...)。

此时将出现“定义关系”对话框。在此对话框中,可以定义特定度量值组中的自定义维度属性。默认情况下,维度在各个度量值组中的行为均相同。但是,在不同的度量值组中它们可能会有不同的行为。请注意,“客户”维度与“Internet 销售”度量值的关系是常规关系,即,DimCustomer 维度表直接与 FactInternetSales 度量值组表联接。另请注意,此维度的粒度位于最低级别(即“客户”级别),但可以定义不同的粒度级别。在后续课程中,将学习如何定义自定义粒度级别。 下图显示了“定义关系”对话框。

7.

单击“高级”。

此时将显示“度量值组绑定”对话框,可在该对话框中更改每个属性的绑定以及定义空值处理设置。属性绑定可以指定属性绑定到的基础维度表中的列。默认情况下,此设置继承自维度;很少在度量值组级别更改此设置。通过空值处理设置,可以定义 Analysis Services 在处理期间在度量值组级别处理空值的方式;这些设置将覆盖维度级别的任何设置。

下图显示了“度量值组绑定”对话框。

8. 单击“取消”,再次单击“取消”,返回数据集设计器。

在本任务中,我们不会检查“计算”、“KPI”、“操作”、“透视”和“翻译”选项卡,因为在教程项目中尚未定义相关对象。

9. 单击“分区”选项卡。

数据集向导可以使用不带聚合的联机分析处理 (MOLAP) 存储模式,为数据集定义单个分区。通过 MOLAP,所有叶级别数据和所有聚合均存储在数据集中,以便最大限度地提高性能。聚合是预先计算好的数据汇总,聚合可以在问题提出之前准备好答案,从而可以缩短查询响应时间。通常在 Analysis Services 项目最后部署到生产服务器之前定义聚合,在开发期间不定义聚合。请注意,在“分区”选项卡上可以定义其他分区、存储设置和写回设置。本教程不包含定义聚合和分区的内容。 下图显示了数据集设计器中的“分区”选项卡。

10.

单击“浏览器”选项卡。

请注意,由于浏览数据集尚未部署到 Analysis Services 实例中,因此无法对其进行浏览。此时,Analysis Services Tutorial 项目中的数据集只是一个可以部署到任何 Analysis Services 实例的数据集定义。部署和处理数据集时,将在 Analysis Services 实例中创建定义的对象,然后用基础数据源的数据填充这些对象。 下图显示了数据集设计器中的“浏览器”选项卡。

11.

在解决方案资源管理器的工具栏上,单击“查看代码”。

此时在 Analysis Services Tutorial.cube [XML] 选项卡上将显示 Analysis Services

Tutorial 数据集的 XML 代码。这是在部署期间在 Analysis Services 实例中创建数据集所用的实际代码。

下图显示了该数据集的 XML 代码。

12.

关闭 XML 代码选项卡。

您已检查了初始的 Analysis Services Tutorial 数据集,现在可以将其部署到 Analysis Services 实例中了。虽然许多数据集和维度元数据在不部署项目的情况下就可以编辑,但在数据集和维度设计器中查看实际数据可以在开发过程提供帮助。例如,必须部署并处理数据集,才能查看对维度成员进行排序的顺序。

六、部署 Analysis Services 项目

1.

在解决方案资源管理器中,右键单击“Analysis Services Tutorial”项目,然后单击“属性”。

将出现“Analysis Services Tutorial 属性页”对话框,并显示活动(开发)配置的属性。可以定义多个配置,每个配置可以具有不同的属性。例如,不同的开发人员可能需要将同一项目配置为部署到不同的开发计算机,并具有不同的部署属性,如不同的数据库名称或处理属性。注意“输出路径”属性的值。该属性指定生成项目时保存项目的 XMLA 部署脚本的位置。这些脚本用于将该项目中的对象部署到 Analysis Services 实例。 2.

在左窗格的“配置属性”节点中,单击“部署”。

查看项目的部署属性。默认情况下,Analysis Services 项目模板将 Analysis Services 项目配置为将所有项目增量部署到本地计算机上的默认 Analysis Services 实例,以创建一个与此项目同名的 Analysis Services 数据库,并在部署后使用默认处理选项处理这些对象。 提示: 如果要将项目部署到本地计算机上的命名 Analysis Services 实例或远程服务器上的实例,请将“服务器”属性更改为相应的实例名,如 <服务器名>\\<实例名>。 下图显示了“Analysis Services Tutorial 属性页”对话框。

3. 4.

如果您不希望更改“服务器”属性的值,则单击“取消”。否则,单击“确定”。 在解决方案资源管理器中,右键单击 Analysis Services Tutorial 项目,再单击“部署”,或者在“生成”菜单上单击“部署 Analysis Services Tutorial”。

Business Intelligence Development Studio 将生成 Analysis Services Tutorial 项目,然后使用部署脚本将其部署到指定的 Analysis Services 实例中。部署进度将在下列两个窗口中显示:“输出”窗口和“部署进度 – Analysis Services Tutorial”窗口。“输出”窗口显示部署的整体进度。“部署进度 – Analysis Services Tutorial”窗口显示部署过程中每个步骤的详细信息。

以下图像显示部署 Analysis Services Tutorial 项目过程中的“部署进度 - Analysis Services Tutorial”窗口和“输出”窗口。

5.

查看“输出”窗口和“部署进度 – Analysis Services Tutorial”窗口的内容,验证是否已生成、部署和处理数据集,并且没有出现错误。

在“部署进度 – Analysis Services Tutorial”窗口中,依次展开“已成功完成维度„客户‟的处理”节点、“已成功完成维度属性„职务‟的处理”节点以及“SQL 查询 1”节点。

6.

7.

双击 SELECT DISTINCT 语句。

用于处理“客户”维度中“职务”属性的查询在“查看详细信息”对话框中显示。 以下图像显示用于处理维度属性的查询。

8. 9.

单击“关闭”。

折叠“已成功完成维度„客户‟的处理”节点,再依次展开“已成功完成数据集 Analysis Services Tutorial 的处理”节点、“已成功完成度量值组„Internet 销售‟的处理”节点、“已成功完成分区„Internet‟销售”的处理”节点以及“SQL 查询 1”节点。

将出现用于处理 Analysis Services Tutorial 数据集中“Internet 销售”分区的查询。 10.

通过单击窗口中工具栏上的“自动隐藏”图标来隐藏“部署进度 - Analysis Services Tutorial”窗口。

通过单击窗口中工具栏上的“自动隐藏”图标来隐藏“输出”窗口

11.

因篇幅问题不能全部显示,请点此查看更多更全内容