Azure数据工厂:如何在成功完成另一个管道之后触发管道

时间:2019-02-26 08:35:14

标签: ssis azure-data-factory azure-data-factory-2

在Azure数据工厂中,如何在其他管道成功完成之后触发管道?

详细信息:

我试图在其他管道成功完成之后触发SSIS程序包。我已经知道我可以将SSIS包另存为管道,并像其他管道一样使用触发器来运行它。但是,如何确保SSIS程序包管道仅在其他管道完成之后才启动? Azure中是否有此功能?我是否需要某种解决方法?

预先感谢〜

2 个答案:

答案 0 :(得分:2)

您始终可以创建使用execute pipelineexecute SSIS package活动的父管道。 ADF V2具有dependencies的概念,因此在执行管道活动和执行SSIS包活动之间具有依赖性。确保选中“等待完成”框以查看执行管道活动,以便它们按顺序而不是并行运行。一个活动可以具有多个依赖关系,因此,如果您需要SSIS等待3个软件包而不是仅等待3个,则仍然可以使用。

enter image description here

然后,您可以仅触发父管道,而不是分别触发其他管道和SSIS包。

答案 1 :(得分:1)

根据您的描述,我认为您可以以编程方式监视Azure数据工厂管道的执行状态。

请添加以下代码,以连续检查管道运行的状态,直到完成RunId

PipelineRun pipelineRun;
while (true)
{
    pipelineRun = client.PipelineRuns.Get(resourceGroup, dataFactoryName, runResponse.RunId);
    Console.WriteLine("Status: " + pipelineRun.Status);
    if (pipelineRun.Status == "InProgress")
        System.Threading.Thread.Sleep(15000);
    else
        break;
}

如果管道成功运行,则启动SSIS程序包。

if (pipelineRun.Status == "Succeeded")
   //..do your business

更多详细信息,请参阅此document