如何在SSIS中控制数据流内的任务序列?

时间:2016-12-12 12:20:37

标签: ssis

我正在创建一个SSIS包,它有一个执行SQL任务和一个数据流任务。

在数据流任务中,数据从不同的源表移动到相应的目标表。

我们可以控制ETL执行的顺序,以便每个表转换在下一个表开始之前完成吗?

我不想创建多个包,需要处理一个包。

例如,在数据流任务中,我们执行以下代码:

  • S1->数据转换transf-> T1
  • S2->数据转换transf-> T2,
  • S3->数据转换transf-> T3,
  • S4->数据转换transf-> T4,...................

数据加载顺序必须如下:

  • S1->数据转换transf-> T1,
  • S4->数据转换transf-> T4,
  • S3->数据转换transf-> T3,
  • S2->数据转换transf-> T2,...............

请让我知道如何实现它。

1 个答案:

答案 0 :(得分:3)

我认为处理不同和受约束的数据流的最佳方法是创建不同的数据流任务来处理每个数据流的需求。您可以使用优先约束将它们放在序列容器中。例如:

enter image description here

您可以按照您希望完成任务的方式定义约束,包括退出状态(失败,成功或完成)和表达(让我们说,您创建一个控制变量)优先约束),例如:

enter image description here

在这种情况下,只有当变量myvar的值评估为真且数据流任务S3到T3以成功退出时,才会执行数据流任务S2到T2。状态

希望这有帮助。