在 BIDS 中创建 SSIS 项目
开发 ETL 过程的第一步是在 Business Intelligence Development Studio (BIDS) 中创建新项目。SQL Server 2008 附带了 BIDS,在安装过程中选择“工作站组件”选项即可安装 BIDS。BIDS 中提供适用于 SSIS、SSAS 和 SSRS 的项目模板。与 Visual Studio 一样,BIDS 也支持源代码控制集成。
要启动 BIDS,请转到“开始”\“程序”\“Microsoft SQL Server 2008”\“Business Intelligence Development Studio”并选择“文件”\“新建项目”。您会看到如图 3 所示的“新建项目”模板。
图 3 BIDS 2008 中的“新建项目”模板
在“模板”窗格中选择“Integration Services 项目”。在“名称”文本框中,键入“ssis_TECHNET_AW2008”,然后单击“OK”。BIDS 应显示一个打开的 SSIS 项目。
创建公共数据连接
SSIS 2008 中的另一项出色功能是可以在单个数据包之外创建数据源连接。您可以定义数据源连接一次,然后在解决方案中的一个或多个 SSIS 数据包中引用此连接。有关如何创建 BIDS 数据源的更多信息,请参阅“如何:使用数据源向导定义数据源(分析服务)”。
创建两个新的数据源连接:一个用于 TECHNET_AW2008SalesDataMart 数据库,另一个用于 AdventureWorks2008 OLTP 数据库。将这两个数据源连接分别命名为 AW_DM.ds 和 AW_OLTP.ds。
开发维度 ETL
用来加载产品维度的 ETL 非常简单。我需要从 Adventure Works Production.Product 表提取数据,并将这些数据加载到 TECHNET_AW2008SalesDataMart 数据库中。首先,我要重命名 BIDS 为我的 SSIS 项目创建的默认数据包。(数据包就是一个容器,存储 SSIS 将执行的工作流中的所有步骤。)在解决方案资源管理器中右键单击默认数据包,选择“重命名”。键入“DIM_PRODUCT.dtsx”,然后按 Enter。
接下来,我需要使用预建的数据源来创建本地数据包连接管理器。新建两个引用先前生成的数据源的连接管理器。
定义数据流以提取并加载
SSIS 中的一个数据流任务封装了对于简单维度实施 ETL 所需的全部数据。我只需将一个数据流任务从工具箱拖动到控制流设计器图面并将其重命名为 EL(用于提取和加载)。右键单击设计器中的数据流任务,然后选择“编辑”。BIDS 现在显示数据流设计器。
产品维度数据包的提取部分需要查询 AdventureWorks2008 Production.Product 表。为设置此任务,我从工具箱中将一个 OLE DB 源组件拖动到数据流设计器图面上,然后将该 OLE DB 源组件重命名为“AW_OLTP”。
接下来,我定义数据包的加载部分,以便加载到数据市场。我只将 OLE DB 目标组件的新实例拖动到数据流设计器图面,并将其重命名为“AW_OLTP”。然后,我单击 OLE DB 源 (AW_OLTP) 组件并将 OLE DB 源上显示的绿色箭头拖动到 AW_DM OLE DB 目标组件以连接这两个组件。
此时,我已将必需的组件添加到数据流中,但我仍需要配置每个组件,以便 SSIS 知道我要如何提取和加载数据。右键单击 AW_DM OLE DB 目标组件,然后选择“编辑”。打开 OLE DB 目标编辑器后,我确保选择 AW_DM 作为 OLE DB 连接管理器。然后,我展开表名称下拉列表并选择 dbo.DimProduct 表。最后,我单击“映射”选项卡确认映射正确。单击“确定”确认映射。如果您已经有了可以引用的数据映射,此过程就简单多了,特别是在处理大型表时。产品维度的 ETL 数据包现已完成。
在 BIDS 中可以轻松执行该数据包。要测试产品维度数据包,请打开该数据包并按 F5。