SSIS 控制流和数据流

本文深入探讨SSIS的控制流和数据流。控制流由Task、容器和优先约束构成,负责协调包内组件执行顺序。数据流是控制流核心,用于数据提取、转换和加载。异步转换可能导致数据流组件创建新的缓冲区,同步转换则复用输入缓冲区,减少资源消耗。了解转换的同步输出与异步输出特性,有助于优化SSIS Package设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在SSIS的体系结构中,Package是SSIS的最重要的部分,从本质上来讲,Package是一个有序地执行任务的单元。Package的核心是控制流(Control Flow),用于协调包中所有组件的执行顺序。数据流(Data Flow)是控制流中的核心组件,用于把数据提取到服务器内存中,转换数据并把数据写入到目标结构中。

一,控制流

控制流用于协调包中所有组件的执行顺序,这些组件由Task和容器构成,并且受到优先约束的控制。

控制流由三大组件构成,分别是Task,容器和优先约束。

  • 容器用于把Task集合到一起,除了视觉上的分组外,容器还允许用户定义作用域在容器范围内的变量和事件处理程序。
  • Task是一个独立的工作单元,为包提供了实现特定功能的接口。
  • 优先约束不仅把Task连接到一起,而且指定Task执行的顺序。

Task按照优先约束(Precedence Constraint)规定的顺序执行下去。在一个Task工作之前,Package必须完成其前面Task,不管前面的Task执行的结果是成功、失败或者完成。

1,优先约束

优先约束是把Task连接到一起的连接器,而且定义了Task的执行顺序。优先约束定义了Task的执行路径和条件,只有满足优先约束的条件时,才能按照连接路径继续执行下一个Task。例如,在下图所示的控制流中,优先约束把Execute SQL Task和 Data Flow Task连接到一起,并且规定只有Execute SQL Task都执行完成之后,才会执行Data Flow Task。

 

为两个Task创建优先约束,必须设置约束值或表达式,当约束值或表达式为True时,满足约束条件。

优先约束的求值运算(Evaluation operation)有四种:

  • 约束(Constraint),根据约束的结果来确定约束的状态
  • 表达式(Expression),根据表达式的结果来确定约束的状态
  • 表达式和约束(Expression and Constraint),根据表达式和约束结果的组合来确定约束的状态
  • 表达式或约束(Expression or Constraint),根据表达式或约束的结果之一来确定约束的状态

根据约束选项的不同,约束值有Value和表达式两种类型:

  • 当求值选项为约束时,约束值有:成功(Success)、失败(Failure)和完成(Completion);
  • 当求值选项为表达式时,需要用户编写表达式;

约束值共有三种有效值,他们的含义是:

  • 成功约束:表示只有在前置任务或容器成功时,才会执行当前的任务;
  • 失败约束:表示只有在前置任务或容器失败时,才会执行当前的任务;
  • 完成约束:表示只有在前置任务或容器完成(不管失败或成功)时,才会指定当前的任务

当一个Task上创建了多个约束时,必须设置多个约束的逻辑组合。当设置为逻辑与时,多个优先约束同时为True,才满足优先约

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悦光阴

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值