SIS首先是在1997年的SQL Server 7.0中引入的,当时它的名称为数据转换服务(DTS),SSIS属于ETL产品家族。SSIS提供控制流和数据流。控制流也称为工作流或者任务流,它更像工作流,在工作流中每个组件都是一个任务。这些任务是按预定义的顺序执行的。在任务流中可能有分支。当前任务的执行结果决定沿哪条分支前进。
数据流是新的概念。数据流也称为流水线,主要解决数据转换的问题。数据流由一组预定义的转换操作组成。数据流的起点通常是数据源(源表);数据流的终点通 常是数据的目的地(目标表)。可以将数据流的执行认为是一个流水线的过程,在该过程中,每一行数据都是装配线中需要处理的零件,而每一个转换都是装配线中 的处理单元。
SSIS包
包(package)是SSIS项目中基本的部署和执行单元。SSIS任务执行的所有工作都发生在包的上下文中。SSIS包是SSIS流的容器。SSIS项目可以包含多个包。包只包含一个控制流,而该控制流可以包含一个或者多个数据流。
除了控制流和数据流,包还包含了SSIS连接和包的变量。可以有不同作用域的变量,例如,作用域为整个包的全局变量或者作用域为任务序列的局部变量。
任务流
SSIS包包含一个控制流,该控制流由一组任务组成。这些任务定义了包的工作,例如,加载数据、执行SQL语句、处理脚本或者调用其他过程。在任务流中,包通常包含多个任务。多个任务是按优先权约束的顺序来进行组织的。优先权约束按以下顺序连接两个任务:执行第一个任务的结果决定是否运行第二个任务。可以在工作流中使用优先权约束来创建条件分支。可以将多个优先权约束进行组合,然后将其作为一个约束来求值。
容器
容器(container)是向包提供结构的 SSIS对象。每个包都有一个容器,用来存储包的流。包的容器可以包含其他类型的容器,例如序列容器、Foreach循环容器和For循环容器,这些容器 都可以在控制流工具箱中获得。可以在这些容器中定义子流。容器丰富了控制流的运行时执行模型。例如,并不是所有的任务都是顺序执行的。在Foreach循 环容器内部的子流将会基于容器中定义的迭代器而多次执行。
数据流
数据流也称为流水线。可以将数据流认为是装配线,该装配线包含了顺序执行的多个操作。在数据流中的每个节点都称为转换。数据流通常以源转换开始,以目标转换结束。在这两个转换之间,预定义的数据流转换被依序应用到数据上。
一些转换是同步的,例如,查找、条件性拆分和数据转换。这些同步的转换可以并行执行。一旦已经将转换应用到数据行上,则下一个转换可以开始处理该数据行,而无需等到上一级转换处理完整个数据集。一些转换是异步的,例如聚合和排序。这些转换必须从前面的输出中获得所有的行,从而可以处理和产生输出,用于后续转换。
除了预构建的转换清单,SSIS还提供了一些API,可以使用这些API来构建自己的数据流转换。例如,可以构建Numeric Processing转换来将数学计算和转换应用到流水线数据上。
数据流总是包含于任务流中。有一个特殊的任务,其名称为数据流任务,该任务是用于容纳数据流的容器。在构建数据流之前,必须将数据流任务加入到设计器中。
转换
任务是任务流的基本组件,而转换是数据流的基本组件。转换是预定义的数据操作。可以将转换视为装配线中的机器,用于对输入数据进行操作。
查看器
查看器是为了调试数据流而设计的。可以在执行期间使用查看器来查看流水线中的流。可以将查看器附加在转换之间的连线上。要增加查看器,可以在连线上右击, 然后选择“数据查看器”菜单项。默认的查看器是网格图。也可以增加直方图,散点图和圆柱图作为图形查看器。如果这些预定义的查看器还不能满足您的需求,则 您甚至可以构建自己的查看器。
调试
对SSIS控制流进行调试是在SQL Server 2005中引入的新特性。当在设计器中选择了一个任务时,只要按下F9就可以设置断点。通过调试,可以在执行期间检查包的变量的值以及任务的状态。断点可以基于事件来设置。
简单的事例:
http://www.cnblogs.com/gudujianxiao/archive/2012/02/07/2341820.html