原文:实例学习SSIS(一)--制作一个简单的ETL包

导读:

实例学习SSIS(一)--制作一个简单的ETL包

实例学习SSIS(二)--使用迭代

实例学习SSIS(三)--使用包配置

实例学习SSIS(四)--使用日志记录和错误流重定向

实例学习SSIS(五)--理论介绍SSIS

参考内容:SQLServer2005的帮助文档。

ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/sqltut9/html/d6d5bb1f-4cb1-4605-9cd6-f60b858382c4.htm

ETL包:数据的提取、转换和加载;

通过制作第一个包,可以了解以下内容:

1、配置连接管理器(平面文件和OLE DB);

2、添加数据流任务;

3、配置平面文件源和OLE DB目标;

4、使用查找转换。

详细制包过程:

准备工作:

(1)文件源:创建一个txt文件:userinfo.txt。

内容如下:1|张三|我是张三|男,2|李四|我是李四|女

(2)创建目标数据表:

下面是我创建的数据库(SSIS)和表(userinfo、usersex):

userinfo.sql

USE [SSIS]GO/****** 对象:  Table [dbo].[userinfo]    脚本日期: 10/16/2009 10:31:54 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[userinfo](    [uid] [int] NOT NULL,    [uname] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,    [udesc] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL,    [sid] [int] NULL) ON [PRIMARY]GOSET ANSI_PADDING OFF

  usersex.sql

USE [SSIS]GO/****** 对象:  Table [dbo].[usersex]    脚本日期: 10/16/2009 10:32:21 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[usersex](    [sid] [int] NOT NULL,    [sex] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL) ON [PRIMARY]GOSET ANSI_PADDING OFF

创建SSIS项目:

在“开始”、“Microsoft
SQL Server 2005”,找到 SQL Server Business Intelligence Development Studio,创建Integration
Services 项目;

制包过程:

(1)配置连接管理器(平面文件和OLE DB)

平面文件:

在“连接管理器”区域“新建平面文件连接”,起个名子,选好userinfo.txt。

选择行、列分割符,如下图所示:

实例学习SSIS(一)--制作一个简单的ETL包-LMLPHP

在“高级”中重命名各个列名,并选择相应数据类型,分别是:DT_I4和三个DT_STR。

OLE DB:

实例学习SSIS(一)--制作一个简单的ETL包-LMLPHP

(2)在数据流选项卡中创建平面文件源。

从左侧“数据流源”中拖拽即可,确认一下列:

实例学习SSIS(一)--制作一个简单的ETL包-LMLPHP

(3)使用查找转换

从左侧“数据流转换”中拖拽“查找”。

因为userinfo.txt中性别是男/女,所以需要转换成对应的性别id才能插入到数据表中。

如下图配置,指定连接列和选择查找列:

实例学习SSIS(一)--制作一个简单的ETL包-LMLPHP

(4)配置OLE DB目标

从左侧“数据流目标”中拖拽OLE
DB目标。

在映射中确认一下输入和目标列是否对应好,同时要确认一下数据类型是否一样。

实例学习SSIS(一)--制作一个简单的ETL包-LMLPHP

调试包:

点击调试,如果全变绿就哦了,某一个环境出现错误会变成红色,可在执行结果中查看错误原因。

实例学习SSIS(一)--制作一个简单的ETL包-LMLPHP

执行结果:

  select * from userinfo

实例学习SSIS(一)--制作一个简单的ETL包-LMLPHP

04-14 18:39