SSIS教程 SQL Server2008R2 (1 ) 创建项目和基本包

第一课(SSIS教程):创建项目和基本包任务

1:创建新的 Integration Services 项目

SQL Server 2008 R2

其他版本

1(共 1)对本文的评价是有帮助 评价此主题

在 Integration Services 中创建包的第一步就是创建一个 Integration Services 项目。此项目包含在数据转换解决方案中使用的数据源、数据源视图和包等对象的模板。

将 在本 Integration Services 教程中创建的包用于解释受区域设置影响的数据的值。如果您的计算机未配置为使用区域选项“英语(美国)”,则需要在包中设置其他属性。第 2 课到第 5 课中使用的包是从第 1课中创建的包复制而来的,因此不需要更新复制的包中受区域设置影响的属性。

创建新的 Integration Services 项目

1.   在“开始”菜单上,依次指向“所有程序”和 Microsoft SQLServer,再单击 SQL Server、Business Intelligence Development Studio。

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

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

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

5.   接受默认位置,或单击“浏览”,以浏览并找到要使用的文件夹。

6.   在“项目位置”对话框中,单击文件夹,再单击“打开”。

7.   单击“确定”。

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

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

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

设置受区域设置影响的属性

1.   在“视图”菜单上,单击“属性窗口”。

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

任务 2:添加并配置平面文件连接管理器

SQL Server 2008 R2

其他版本

0(共 1)对本文的评价是有帮助 评价此主题

在本任务中,将在刚创建 的包中添加一个平面文件连接管理器。通过平面文件连接管理器,包可从平面文件中提取数据。使用平面文件连接管理器,可以指定包从平面文件中提取数据时要应用的文件的名称与位置、区域设置与代码页以及文件格式,其中包括列分隔符。另外,还可以为各个列手动指定数据类型;也可以使用“提供列类型建议”对话框,自动将提取出来的数据列映射到 Integration Services 数据类型。

必须为要使用的每种文件格式创建一个新的平面文件连接管理器。因为本教程从多个数据格式完全相同的平面文件提取数据,所以只需为您的包添加和配置一个平面文件连接管理器。

在本教程中,将在平面文件连接管理器中配置以下属性:

·        Column names 因为平面文件没有列名,因此平面文件连接管理器将创建默认的列名。这些默认名称不能用于标识每个列代表的内容。若要使这些默认名称更有用,需要将默认名称改为要加载平面文件数据的事实数据表匹配的名称。

·        Data mappings 为平面文件连接管理器指定的数据类型映射,将由所有引用该连接管理器的平面文件数据源组件使用。可以使用平面文件连接管理器,或者使用“提供列类型建议”对话框来手动映射数据类型。在本教程中,将查看“提供列类型建议”对话框中建议的映射,然后在“平面文件连接管理器编辑器”对话框中手动设置必要的映射。

平面文件连接管理器提供了有关数据文件的区域设置信息。如果未将您的计算机配置为使用区域设置选项“英语(美国)”,则必须在“平面文件连接管理器编辑器”对话框中设置其他属性。

添加一个平面文件连接管理器

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

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

3.   单击“浏览”。

4.   在“打开”对 话框中,找到示例数据文件夹,再打开SampleCurrencyData.txt 文件。默认情况下,教程示例数据安装在 c:\Program Files\MicrosoftSQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETLPackage\Sample Data 文件夹中。

设置受区域设置影响的属性

1.   在“平面文件连接管理器编辑器”对话框中,单击“常规”。

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

重命名平面文件连接管理器中的列

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

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

o       将 Column 0 名称属性改为 AverageRate。

o       将 Column 1 名称属性改为 CurrencyID。

o       将 Column 2 名称属性改为 CurrencyDate。

o       将 Column 3 名称属性改为 EndOfDayRate。

注意

默认情况下,所有四个列最初都设置为字符串数据类型 [DT_STR],其 OutputColumnWidth 为 50。

重新映射列数据类型

1.   在“平面文件连接管理器编辑器”对话框中,单击“建议类型”。

Integration Services 将根据前 100 行数据自动建议最合适的数据类型。您还可以将这些建议选项改为增加或减少取样数据,以便指定整数数据或布尔数据的默认数据类型,或添加作为填充量添加到字符串列中的空格。

现在,请不要对“提供列类型建议”对话框中的选项进行任何更改,单击“确定”可使 Integration Services 提供列数据类型的建议。这样,您将转到“平面文件连接管理器编辑器”对话框的“高级”窗格,在此可以查看 Integration Services 建议使用的列数据类型。(如果单击“取消”,则不对列元数据提供任何建议,并使用默认字符串 (DT_STR) 数据类型。)

在本教程中,Integration Services 为 SampleCurrencyData.txt 文件中的数据建议了下表第二列中显示的数据类型。但是,目标中的列要求的数据类型(将在以后的步骤中定义)显示在下表的最后一列。

平面文件列

建议的类型

目标列

目标类型

AverageRate

Float [DT_R4]

FactCurrencyRate.AverageRate

Float

CurrencyID

String [DT_STR]

DimCurrency.CurrencyAlternateKey

nchar(3)

CurrencyDate

Date [DT_DATE]

DimTime.FullDateAlternateKey

datetime

EndOfDayRate

Float [DT_R4]

FactCurrencyRate.EndOfDayRate

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]。

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

4.   单击“确定”。

 

任务 3:添加并配置 OLE DB 连接管理器

SQL Server 2008 R2

其他版本

此主题尚未评级评价此主题

添加了用于连接到数据源 的平面文件连接管理器以后,下一个任务是添加用于连接到目标的 OLE DB 连接管理器。通过 OLE DB 连接管理器,包可以在任何 OLE DB 兼容的数据源中提取数据或加载数据。使用 OLE DB 连接管理器,可以为连接指定服务器、身份验证方法和默认数据库。

在本课中,将创建使用 Windows 身份验证的 OLE DB 连接管理器,以连接到AdventureWorksDB 的本地实例。本教程以后要创建的其他组件(如查找转换和 OLE DB 目标)也将引用此处创建的 OLE DB 连接管理器。

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

1.   右键单击连接管理器区域中的任意位置,再单击“新建 OLE DB 连接”。

2.   在“配置 OLE DB 连接管理器”对话框中,单击“新建”。

3.   在“服务器名称”中,输入 localhost。

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

4.   在“登录到服务器”组中,确认选择了“使用 Windows 身份验证”。

5.   在“连接到数据库”组的“选择或输入数据库名称”框中,键入或选择 AdventureWorksDW。

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

7.   单击“确定”。

8.   单击“确定”。

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

10.单击“确定”。

 

任务 4:将数据流任务添加到包

SQL Server 2008 R2

其他版本

此主题尚未评级评价此主题

为源数据和目标数据创建了连接管理器后,下一个任务是在包中添加一个数据流任务。数据流任务将封装在源和目标之间移动数据的数据流引擎,并提供在移动数据时转换、清除和修改数据的功能。大部分的数据提取、转换和加载 (ETL) 进程均在数据流任务中完成。

注意

SQL ServerIntegration Services 将数据流从控制流中分隔开来。将数据流从控制流进行分隔是 Integration Services 与 MicrosoftSQL Server 2000 Data Transformation Services 的重要区别之一。

添加一个数据流任务

1.   单击“控制流”选项卡。

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

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

好的做法是为添加到设计图面的所有组件提供唯一的名称。考虑到易用性和可维护性,名称应说明每个组件执行的功能。按照这些命名指南,Integration Services 包可以进行自我说明。另一个说明包的方法是使用批注。有关批注的详细信息,请参阅在包中使用批注

4.   右键单击“数据流”任务,再单击“属性”,然后在“属性”窗口,确保已将LocaleID 属性设置为“英语(美国)”。

任务 5:添加并配置平面文件源

SQL Server 2008 R2

其他版本

此主题尚未评级评价此主题

在此任务中,将向包中添 加一个平面文件源并对其进行配置。平面文件源是一个数据流组件,它使用平面文件连接管理器定义的元数据来指定转换过程要从此平面文件中提取的数据的格式和结构。可以通过使用平面文件连接管理器提供的文件格式定义将平面文件源配置为从单个平面文件提取数据。

对于本教程,您将把平面文件源配置为使用以前创建的 Sample Flat FileSource Data 连接管理器。

添加平面文件源组件

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

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

3.   在“数据流”设计图面上,右键单击新添加的“平面文件源”,单击“重命名”,然后将该名称改为 ExtractSample Currency Data。

4.   双击此平面文件源,打开“平面文件源编辑器”对话框。

5.   在“平面文件连接管理器”框中,键入或选择 SampleFlat File Source Data。

6.   单击“列”并验证列名是否正确。

7.   单击“确定”。

8.   右键单击平面文件源并单击“属性”。

9.   在“属性”窗口中,验证是否已将LocaleID 属性设置为“英语(美国)”。

任务 6:添加并配置查找转换

SQL Server 2008 R2

其他版本

此主题尚未评级评价此主题

配置了用于从源文件提取数据的平面文件源后,下一个任务是定义获取 CurrencyKeyTimeKey 的值所需的查找转换。查找转换通过将指定输入列中的数据联接到引用数据集中的列来执行查找。引用数据集可以是现有的表或视图,也可以是新表或 SQL 语句的结果。在本教程中,查找转换使用 OLE DB 连接管理器连接到包含引用数据集的源数据的数据库。

注意

还可以配置查找转换,以连接到包含引用数据集的缓存。有关详细信息,请参阅查找转换

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

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

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

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

添加并配置 Lookup Currency Key 转换

1.   在“工具箱”中,展开“数据流转换”,然后将“查找”拖动到“数据流”选项卡的设计图面上。将“查找”直接放置在 Extract SampleCurrency Data 源的下面。

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

3.   在“数据流”设计图面上,单击“查找”转换中的“查找”,然后将该名称更改为 LookupCurrency Key。

4.   双击 LookupCurrencyKey 转换。

5.   在“常规”页上,进行以下选择:

1.   选择“完全缓存”。

2.   在“连接类型”区域,选择“OLE DB 连接管理器”。

6.   在“连接”页上,进行以下选择:

1.   在“OLE DB 连接管理器”对话框中,确保显示 localhost.AdventureWorksDW

2.   选择“使用 SQL 查询的结果”,然后键入或复制以下 SQL 语句:

3.                 select * from (select * from [dbo].[DimCurrency]) as refTable
4.                 where [refTable].[CurrencyAlternateKey] = 'ARS'
5.                 OR
6.                 [refTable].[CurrencyAlternateKey] = 'AUD'
7.                 OR
8.                 [refTable].[CurrencyAlternateKey] = 'BRL'
9.                 OR
10.             [refTable].[CurrencyAlternateKey] = 'CAD'
11.             OR
12.             [refTable].[CurrencyAlternateKey] = 'CNY'
13.             OR
14.             [refTable].[CurrencyAlternateKey] = 'DEM'
15.             OR
16.             [refTable].[CurrencyAlternateKey] = 'EUR'
17.             OR
18.             [refTable].[CurrencyAlternateKey] = 'FRF'
19.             OR
20.             [refTable].[CurrencyAlternateKey] = 'GBP'
21.             OR
22.             [refTable].[CurrencyAlternateKey] = 'JPY'
23.             OR
24.             [refTable].[CurrencyAlternateKey] = 'MXN'
25.             OR
26.             [refTable].[CurrencyAlternateKey] = 'SAR'
27.             OR
28.             [refTable].[CurrencyAlternateKey] = 'USD'
29.             OR
30.             [refTable].[CurrencyAlternateKey] = 'VEB'

7.   在“列”页上,进行以下选择:

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

2.   在“可用查找列”列,选中 CurrencyKey 右侧的复选框。

8.   单击“确定”返回“数据流”设计图面。

9.   右键单击 Lookup Currency Key 转换,再单击“属性”。

10.在“属性”窗口中,验证是否已将 LocaleID 属性设置为“英语(美国)”,将 DefaultCodePage 属性设置为 1252。

添加并配置 Lookup DateKey 转换

1.   在“工具箱”中,将“查找”拖动到“数据流”设计图面上。将“查找”直接放置在Lookup CurrencyKey 转换的下面。

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

3.   在“选择输入输出”对话框中,单击“输出”列表框中的“查找匹配输出”,然后单击“确定”。

4.   在“数据流”设计图面上,在新添加的“查找”转换中单击“查找”,然后将名称更改为 LookupDateKey。

5.   双击 LookupDateKey 转换。

6.   在“常规”页上,选择“部分缓存”。

7.   在“连接”页上,进行以下选择:

1.   在“OLE DB 连接管理器”对话框中,确保显示 localhost.AdventureWorksDW

2.   在“使用表或视图”框中,键入或选择 [dbo].[DimTime]。

8.   在“列”页上,进行以下选择:

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

2.   在“可用查找列”列,选中 TimeKey 右侧的复选框。

9.   在“高级”页上,查看缓存选项。

10.单击“确定”返回“数据流”设计图面。

11.双击 LookupDate Key 转换,再单击“属性”。

12.在“属性”窗口中,验证是否已将 LocaleID 属性设置为“英语(美国)”,将 DefaultCodePage 属性设置为 1252。

任务 7:添加和配置 OLE DB 目标

SQL Server 2008 R2

其他版本

此主题尚未评级评价此主题

您的包现在可以从平面文 件源提取数据,并将数据转换为与目标兼容的格式。下一个任务是将已转换的数据实际加载到目标。若要加载数据,您必须将 OLE DB 目标添加到数据流。OLE DB 目标可以使用数据库表、视图或 SQL 命令将数据加载到各种 OLE DB 兼容的数据库中。

在此过程中,您将添加和配置 OLE DB 目标以使用以前创建的 OLEDB 连接管理器。

添加和配置示例 OLE DB 目标

1.   在“工具箱”中,展开“数据流目标”,并将“OLE DB 目标”拖到“数据流”选项卡的设计图面上。将 OLE DB 目标直接放置在“查找日期键”转换的下面。

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

3.   在“选择输入输出”对话框中,单击“输出”列表框中的“查找匹配输出”,然后单击“确定”。

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

5.   双击 Sample OLEDB Destination。

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

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

8.   单击“映射”。

9.   验证 AverageRate、CurrencyKey、EndOfDayRate 以及 TimeKey 输入列是否已正确映射到目标列。如果映射了同名列,则说明映射正确。

10.单击“确定”。

11.右键单击 Sample OLE DB Destination 目标,再单击“属性”。

12.在“属性”窗口中,验证是否已将 LocaleID 属性设置为“英语(美国)”,将 DefaultCodePage 属性设置为 1252。

任务 8:使 Lesson 1 包更易于理解

SQL Server 2008 R2

其他版本

此主题尚未评级评价此主题

因为您已完成了 Lesson 1 包的配置,所以整理包布局是很必要的。如果控制流和数据流布局中的形状大小不一,或者如果形状未对齐或未进行分组,则可能很难理解包功能。

Business Intelligence Development Studio 提供了可轻松、快速设置包布局格式的工具。格式设置功能包括使形状大小统一,对齐各个形状,并控制形状之间的水平间距和垂直间距。

另一种增进对包功能的了解的方式是添加描述包功能的批注。

在本任务中,您将使用 Business Intelligence Development Studio 中的格式设置功能改善数据流的布局并向数据流中添加批注。

设置数据流布局的格式

1.   如果尚未打开 Lesson 1 包,则请在解决方案资源管理器中双击 Lesson 1.dtsx。

2.   单击“数据流”选项卡。

3.   将游标置于 Extract Sample Currency 转换的右上方,单击并将游标拖过所有的数据流组件。

现在便已选定所有数据流组件。首先选定的形状(该形状选定的指示符为白色)将确定在设置布局格式时所使用的大小和位置。

4.   在“格式”菜单中,指向“使大小相同”,再单击“两者”。

5.   选定数据流对象后,在“格式”菜单中,指向“对齐”,再单击“左对齐”。

向数据流中添加批注

1.   右键单击数据流设计图面背景的任意位置,再单击“添加批注”。

2.   在批注框中键入或粘贴以下文本。

数据流从文件中提取数据,在DimCurrency 表的 CurrencyKey 列中以及DimTime 表的 TimeKey 列中查阅值,并且将数据写入到 FactCurrencyRate 表。

若要在批注框中使文本换行,请将光标置于要开始新行的位置,然后按Ctrl 和 Enter 键。

如果未将文本添加到批注框,则当您在批注框外部单击时,该文本便会消失。

任务 9:测试 Lesson 1 教程包

SQL Server 2008 R2

其他版本

此主题尚未评级评价此主题

在本课中,已经完成了下列任务:

·        创建了一个新的 SSIS 项目。

·        配置了包连接到源数据和目标数据所需的连接管理器。

·        添加了一个数据流,该数据流从平面文件源提取数据,对数据执行必要的查找转换,并为目标配置数据。

包现在已经完成了!该对包进行测试了。

检查包布局


测试包之前,应当确保 Lesson 1 包中的控制流和数据流包含下列关系图中显示的对象。

控制流

数据流

运行 Lesson 1 教程包

1.   在“调试”菜单中,单击“启动调试”。

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

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

posted @ 2012-11-06 13:39  璎Nicole珞  阅读(3483)  评论(0编辑  收藏  举报