SQL Server Integration Services (SSIS) 教程

SQL Server Integration Services (SSIS) 是一个用于数据仓库应用的ETL(提取、转换和加载)工具。SSIS 可以执行基于需求的数据加载、对数据进行不同的转换操作(如求和、平均值等),并定义工作流以执行日常活动的任务。

在SSIS之前,SQL Server 2000中的Data Transformation Services (DTS) 执行任务时功能较少。随着SQL Server 2005中SSIS的引入,可以使用许多新功能。要开发SSIS包,需要安装SQL Server Business Intelligence Development Studio,该工具在安装SQL Server Management Studio (SSMS) 时作为客户端工具提供。

SSMS 和 BIDS

SSMS 提供了多种选项来开发SSIS包,从导入和导出向导开始,可以通过这些向导将数据从一个服务器复制到另一个服务器,或者从一个数据源复制到另一个数据源。通过这些向导,可以创建数据流的结构,并根据需要创建包并部署以在任何环境中执行。

Business Intelligence Development Studio (BIDS) 是一个工具,可以用来开发SSIS包。BIDS 作为SQL Server的界面提供,使开发人员可以逐步工作在流程的工作流上。一旦BIDS与SQL Server安装一起安装,可以定位它并开始流程,如下步骤所示。

步骤

现在让以从文本文件导入数据到SQL Server数据库为例,使用SSIS来完成这个任务的逐步过程。

转到“开始”->“程序”->“Microsoft SQL Server 2005”->“SQL Server Business Intelligence Development Studio”,如下面的图所示:

它将打开BIDS,如下面的图所示。这将类似于通常根据需求启动项目的Visual Studio IDE。

一旦BIDS工作室打开,现在需要根据要求创建一个解决方案。由于将从集成服务开始,继续转到“文件”->“新建项目”或Ctrl + Shift + N。它将打开一个弹出窗口,需要选择“集成服务项目”并给出项目名称,如下屏幕所示:

创建这个新项目后,可以看到,默认情况下,当创建一个集成服务项目时,会添加一个新的SSIS包(Package.dtsx);可以右键单击它并重命名它。现在设计器将显示空的工作流选项卡,如下所示:

由于任务是将文本文件加载到数据库中,需要创建一个新的连接,或者用简单的话说,需要创建一个数据源。右键单击连接管理器窗格并选择“新建平面文件连接”,如下所示:

它将打开一个窗口,如下所示。需要填写文本文件的路径和格式等详细信息。如果文本文件的第一行包含列,则需要选择“第一行数据包含列名”,复选框,如下所示:

可以通过转到列选项卡或预览选项卡来查看尝试从文本文件导入的列,如下所示。在预览选项卡中,可以看到按照要求的数据,比如源中有大量的数据,比如100万条记录。在预览选项卡中,它一次只显示100条记录。要查看从500到600的记录,需要在预览选项卡中指定“跳过的数据行”= 500。因此可以看到从501到600的记录。单击“确定”按钮以完成此任务。

现在已经定义了源部分,需要执行类似的步骤来制作目标部分。现在右键单击连接管理器窗格并选择“新建OLEDB连接”。它将弹出一个窗口以获取连接详细信息,如下所示。填写所有连接详细信息并测试连接。

单击“确定”后,将在连接管理器中看到连接详细信息,如下屏幕所示。

现在需要创建数据流任务以实现要求,将数据从文本文件导入数据库。SSIS使用工作流任务来按步骤处理请求。大部分任务将在这里完成,编写代码以完成它。因此,在左侧窗格的工具箱中,单击“数据流任务”项,将其拖到屏幕上。将看到一个图标,如下所示。双击该图标以打开它。

双击数据流任务,它将重定向到数据流选项卡,需要放置逻辑,根据要求数据流。由于要求是导入文本文件,从工具箱拖放“平面文件源”到数据流选项卡屏幕。再次双击平面文件源任务,它将弹出一个窗口,其中包含在初始阶段设置的连接,如下所示:

如果注意到有一个选项“保留源中的空值作为数据流中的空值。”默认情况下这是禁用的,这意味着源中定义的空值将被视为空字符串。可以单击“预览”按钮以再次检查结构。

现在,需要设置目标流,即到目前为止已经读取了数据,现在需要根据要求将其插入到数据库中。转到工具箱并单击数据流目标部分,然后拖放“OLE DB目标”。现在,需要映射源和目标,以告诉SSIS映射如何工作。因此,单击平面文件源并将绿色箭头拖到Ole DB目标,如下所示:

现在单击目标任务以配置它。双击目标任务以配置它。请注意,这也允许保留空值。在示例中,将创建一个新表,但如果已经创建了表,可以从可用的表下拉菜单中选择它。在执行上述步骤之前在数据库中创建了一个新的表,如下结构所示。因此,可以在列表中看到表名,如下所示:

CREATE TABLE tNewApplication ( [intApplication] INT IDENTITY(1,1), AppID UNIQUEIDENTIFIER DEFAULT NEWID(), AppName VARCHAR(100), AppType VARCHAR(100), AppOwner VARCHAR(100), AppCompany VARCHAR(100), AppState VARCHAR(100), AppCountry VARCHAR(100) ); GO
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485