SSIS控制流与数据流

Pau*_*aul 16 ssis control-flow

我并不完全理解SSIS包中控制流的目的.在我创建的所有软件包中,我只需添加一个数据流组件来控制流,然后其余逻辑就位于数据流中.

我已经看到了更复杂的控制流的示例(EX:foreach循环容器,它迭代Excel文件中的行.),但我正在寻找一个无法在数据流中实现的示例.我可以轻松地在数据流中创建与excel文件的连接.

我试图更好地理解何时需要(或应该)在控制流中实现逻辑与使用数据流来完成所有操作.

是什么促使我开始研究控制流程,其目的是为了重构SSIS数据流以及将包拆分为更小的包,以便更容易支持并发开发.

我试图围绕如何使用控制流来实现这些目的.

Jam*_*man 20

数据流定义从源到目标的数据流.您不是从一个数据流任务开始并转到下一个.数据在您选择的实体(来源,转换,目的地)之间流动.

此外,在数据流任务中,您无法执行迭代,组件执行等任务.

控制流定义要执行的任务的工作流,通常是特定的顺序(假设您包含的优先约束).循环示例是控制流要求的一个很好的示例,但您也可以执行独立的SQL脚本,调用COM接口,执行.NET组件或发送电子邮件.控制流任务本身实际上可能与数据库或文件无关.

控制流任务本身对数据没有任何作用.它正在执行一些本身可能(或可能不)对某些地方的数据采取行动的行为.数据流任务正在对数据做一些事情.它定义了它的运动和转变.

应该明白何时执行控制流逻辑和数据流逻辑,因为这将是唯一的方法.在您的示例中,您引用了foreach容器,并声明您可以连接到数据流中的电子表格.当然,对于一个电子表格,但是如何在文件夹中为多个电子表格执行此操作?在数据流逻辑中,你根本做不到!

希望这可以帮助.


Sta*_*agg 13

数据流 - 仅用于将数据从一个源移动到另一个源.

控制流 - 提供运行数据流组件及其运行方式的逻辑.控制流还可以:执行循环,调用存储过程,移动文件,管理错误处理,检查条件并根据结果调用不同的任务(包括数据流),处理多维数据集,触发另一个过程等.

如果您将数据从一个位置移动到另一个位置并且每次都是相同的,而不是基于任何其他条件,那么您可以使用仅具有数据流任务的包来逃避,但在大多数情况下,包比这更复杂.