SQL Server 2005 Integration Services (SSIS) (4) - 建立一个简单的SSIS Package

来源:互联网 发布:mysql 时间取日期函数 编辑:程序博客网 时间:2024/04/29 18:15
 
四、建立一个简单的SSIS Package
 
上节课我们学习了开发SSIS 应用的主要工具Business Intelligence Development Studio (BIDS) ,在这节课中,我们通过建立一个简单的SSIS Package,来熟悉BIDS各窗口的应用以及开发SSIS Package 的基本步骤和方法。这个SSIS Package的作用同我们在第二节课中通过Import/Export向导建立的SSIS Package 基本上相同,但增加了一些更灵活的控制。
 
首先我们来看看这个SSIS Package实现的机构和功能,如图4-1所示。
 
 
图4-1
 
从图中我们可以看出实现这个SSIS Package的步骤:
 
  • 选择SQL Server 2005中自带的AdventureWorks.Humanresorces.Employee 表作为源数据;选择其中的三个字段:Imployee ID, ManagerID 和Title; 选择前10条记录;
  • 选择SSIS.dbo.Employee 作为目标数据;(为了简化操作,我们假设SSIS 数据库和表Employee已经存在)
  • 删除目标数据表Employee中的所有记录;
  • 从源数据表传输记录到目标表。
  
我们下面就通过建立一个新的SSIS项目,选择适当的任务(Tasks)来建立这个SSIS Package。
 
 
  1. 打开Visual Studio, 选择New - Project… 菜单,在新建项目窗口中选择 Intelligence Services Projects, 并将这个新的项目命名为:SSIS4,按OK 建立这个新的项目并打开BIDS开发环境。
 
  1. 在BIDS 的Solution Explorer 窗口中,系统自动为我们建立了一个Package.dtsx 文件,这就是我们即将工作的SSIS Package 文件,但是我们应该把这个默认的文件名改为具有一定意义的文件名。鼠标单击选择这个文件,在Properties窗口中,选择 File Name 项,将其文件名改为 SSIS4.dtsx, 此时系统会提示:Do you want to rename the package object as well? 选择Yes 将Package 的文件名和对象名全部改为 SSIS4.
 
我们可以在设计区中的 Package Explorer页面下观察当前的Package 对象,Package对象可以看作是一个主容器,它下面可以有很多子容器和节点。经常熟练使用Package Explorer将会对熟悉SSIS Package的设计操作有很大的帮助。
 
  1. 建立SSIS Package的第一步首先要建立连接到数据源的数据连接,当然建立数据连接的操作可以在设置具体的Task的时候同时建立,但是为了使我们的设计思路更为清晰,我们还是首先建立好必要的数据连接。
    • 建立AdventureWorks 连接。鼠标右键单击Connection Managers 区中的空白部分,在右键菜单中选择第一项:New OLE DB Connection… ,打开Configure OLE DB Connection Manager (如果在已经建立的Connection 中已经有了AdventureWorks 的连接,你可以绕过下面的步骤) ,按New … 按钮,打开Connection Manager 窗口,选择安装了AdventureWorks数据库的服务器,选择Windows 验证方式(当然也可以根据你的操作权限和习惯选择SQL Server 验证方式),在连接到数据库列表中选择 AdventureWorks数据库,按OK.
    • 同样的方法建立一个到SSIS数据库的连接。SSIS数据库是我们学习SSIS的主要的练习数据库。
 图4-2中,显示了我们建立的两个数据库连接
 

 
图4-2
 
建立好数据连接后,就可以通过选择合适的任务(Task) 数据转换来完成我们的任务了。关于各个任务所能完成的功能,我们会在下一节详细介绍。我们在本例中使用 Data Flow Task来完成我们的Employee 表中记录的传输工作;使用一个 Execute SQL Task 来执行一条SQL 语句清除 Employee中的数据。
 
  1. 选择设计区中的 Control Flow页面,从工具箱中的Control Flow Items 下选择 Execute SQL Task (执行SQL 任务),并将其托入到 Control Flow 页面中,每一个放置在设计区中的Task 都以一个带名称的矩形框表示,Task 右侧的红色叉表示该Task还没有正确配置。双击表示Task的矩形框打开 Execute SQL Task Editor窗口对其属性进行设置。
    •  在左侧的配置项目中选择General,  在右侧列表中选择描述(Description) ,将其修改为能描述该任务功能的文字:Clear out records in SSIS.dbo.Employee。 描述将出现在该任务的敏感提示框中,即当鼠标移动到该任务的上方时出现的黄色框中;
    •  在属性列表中选择连接(Connection) ,从可选连接项中(在Connection Manager 中添加的连接) 选择 SSIS;
    • 在属性列表中选择SQL 语句(SQL Statement),这个SQL Statement 可以是一条语句,也可以是一段SQL 脚本,这是 Execute SQL Task执行的关键设置。本例中我们输入:truncate table dbo.Employee。如图4-3 所示。
    • 按下Parse Query 按钮可以验证输入的SQL 语句的正确性。确认无误后,按下OK按钮保存当前的设置。
 
 
图4-3
 
 
  1. 从工具箱中选择Data Flow Task,将其托到设计区中放在Execute SQL Task的下方。这个任务将负责从源数据 AdventureWorks.Humanresource.Employee中导出数据到我们的SSIS.dbo.Employee表中。单击设计区中的Execute SQL Task,将矩形框下面的绿色的箭头托到这个Data Flow Task上将两个任务连接起来,表示Execute SQL Task执行成功后执行这个Data Flow Task。我们在上一节中已经简单介绍了这个箭头的含义,它的名字叫Precedence Constraint (优先级条件约束),它是连接SSIS Package各个Task之间的桥梁,是判断是否执行下一个Task的一个逻辑关口,它不仅仅能判断当前的Task执行成功与否,而且还能以一个表达式是否是一个设定的值来作为执行下一Task的条件。我们会在以后的学习详细介绍它的使用。
 
  1. 现在我们需要配置这个 Data Flow Task, 鼠标双击这个这个任务的矩形框,系统会自动将当前页面切换到设计区中的Data Flow,而不是像设置其他任务那样打开一个配置窗口。此时的工具箱只显示可以在Data Flow页面中使用的条目了。
·         从Data Source Items 下选择 OLE DB Source,并将其托到 Data Flow 页面中,我们将使用这一连接方式连接到我们的源数据: AdventureWorks.HumanResourses.Employee表。我们先选择这个表示这个源数据的矩形框并在属性窗口中把这个源数据的名称和描述改为:AdventureWorks_HR_Employee。
·         双击表示源数据矩形框,打开OLE DB Source 配置窗口。左侧的列中选择Connect Manage项,因为我们不是选择全部的Employee表中的记录和字段,所以在Data access mode中选择SQL Command, 并在SQL command text中输入一下SQL 语句来限制数据的输出:
SELECT TOP 10 EmployeeID,ManagerID,Title FROM adventureworks.Humanresources.Employee, 如图4-4所示。单击图中的Parse Query按钮可以验证SQL命令的争取性,单击Preview按钮可以查看即将导出的数据。在此窗口中还有两个非常有用的按钮 Parameters 和Build Query,我们将会在以后的章节中学习它们的使用。单击OK并回到Data Flow页面。
 

 
图4-4
 
·         从Data Flow Destination 项目下选择 OLE DB Destination,并将其托到 Data Flow 页面中,在其属性窗口中将它的名字和描述改为:SSIS_dbo_Employee. 为了将源数据导出到目标数据,我们需要将源数据下面的绿色箭头托到目标数据上,表示源数据的输出要作为目标数据的输入,否则目标数据的属性将不能被设置。双击表示目标数据的矩形框,打开OLE DB Destination 窗口对其进行配置。在Connection Manager 项目下将 Data access mode设置为:Table or View, 选择 dbo.employee 作为 Name of the table or the view的值。单击该窗口左侧列表中的Mapping 项目,可以观察系统已经自动为我们设置好了源数据表和目标数据表中的字段的一对一的对应关系。如图4-5 所示。在本例中我们的输出数据只用到了三个字段EmployeeID、ManagerID、Title,而我们的目标数据表恰好有相同的三个字段,所以系统能够自动建立这个一对一的对应关系,如果目标数据表有比较复杂的或与源数据表完全不同的表结构,我们可以在这个窗口中设置其对应关系。
 

 
图4-5
 
·         点击OK完成配置回到 Data Flow页面,此时的Data Flow页面如图 4-6 所示。
 

 
 图4-6
 
 
  1. 当完成了以上的步骤后,我们这个简单的SSIS就设计完成了,现在我们可以运行这个Package了。运行SSIS Package 最简单的方法是在工具栏中单击绿色的运行按钮,如图 4- 7所示,或按运行的快捷健 F5。
 

图4-7
 
  1. 当这个Package 运行完成后,系统会自动切换到运行模式,如果所有的任务没有错误发生,所有的表示每一步任务的矩形框会被绿色填充,如图 4-8所示。在运行状态时,系统在设计区自动增加了一个 Progress页面,在这个页面中显示了运行Package 的所用时间及执行每一步任务所用的时间等信息,为优化系统设计提供了重要参考。单击工具栏上的停止按钮,或单击图中下方的链接回到设计状态。
 

 图 4-8
小结
 
我们在这节课中学习用BIDS建立了一个最简单的SSIS Package,这个Package包括一个 Execute SQL Task 和一个Data Flow Task。通过建立这个Package,我们了解了一些BIDS 开发环境的基本应用并且学习了一个数据导出的基本步骤,这些步骤包括:
 
1)      建立源数据和目标数据的连接
2)      执行必要的SQL Statement来清理源数据或目标数据
3)      选择合适的Data Flow Task来执行数据传输
 
当然这只是基本的操作步骤。我们将从下一课开始,将详细学习 SQL Server 2005 SSIS 中包括的每一个Task,来建立更为复杂的 SSIS Package。
 
原创粉丝点击