一、控制流(Control Flow):用于协调包中所有组件的执行顺序。这些组件由Task和容器构成,并且受到优先约束的控制。
控制流由三大组件构成,分别是Task,容器和优先约束。
容器用于把Task集合到一起,除了视觉上的分组外,容器还允许用户定义作用域在容器范围内的变量和事件处理程序。
Task是一个独立的工作单元,为包提供了实现特定功能的接口。
优先约束不仅把Task连接到一起,而且指定Task执行的顺序。
二、数据流(Data Flow):是控制流中的核心组件,用于把数据提取到服务器内存中,转换数据并把数据写入到目标结构中。
数据流(Data Flow)是控制流中的核心组件,用于把数据提取到服务器内存中,转换数据并把数据写入到目标结构中。由于数据流任务把数据加载到服务器内存中进行转换,因此,SSIS属于内存中的ETL工具,这使得SSIS可以高效地执行数据的转换操作。数据流的核心功能是把数据提取到服务器的内存中,转换数据之后,把数据写入到另一个目的中。数据从源移动到目的,使用的是内存管道(Pipeline)。当数据在管道中时,你可以使用转换组件对这些数据进行清洗和处理。
数据流具有流的特性,数据的提取,转换和加载是同时进行的。SSIS引擎以流的形式对数据进行并发处理,这意味着数据不是一次性全部加载,而是划分为不重复的多个部分,组成一个流,源源不断地从上游组件流向下游组件。在数据流动的过程中,数据流的所有转换组件同时对数据流进行处理。上游组件处理完一批数据之后,交接给下游组件继续处理,同时,上游组件继续处理下一批数据。数据在组件之间流动,各个组件同时处理数据的不同部分,直到全部数据处理完成。
数据流具有反馈和自动调节的功能,如果下游组件的处理速度存在压力,那么SSIS将会向上游组件施加反向压力,SSIS引擎感受到压力,将启动自动调节机制,使上游组件的数据流动速度减缓,从而达到动态平衡。
数据流任务由四部分组成:源,转换、目的和路径,分别用于把数据加载到内存中,对内存中的数据进行转换,并内存中的数据转移到目标中,数据按照路径来“移动”。