在Azure数据工厂中,如何在其他管道成功完成之后触发管道?
我试图在其他管道成功完成之后触发SSIS程序包。我已经知道我可以将SSIS包另存为管道,并像其他管道一样使用触发器来运行它。但是,如何确保SSIS程序包管道仅在其他管道完成之后才启动? Azure中是否有此功能?我是否需要某种解决方法?
预先感谢〜
答案 0 :(得分:2)
您始终可以创建使用execute pipeline和execute SSIS package活动的父管道。 ADF V2具有dependencies的概念,因此在执行管道活动和执行SSIS包活动之间具有依赖性。确保选中“等待完成”框以查看执行管道活动,以便它们按顺序而不是并行运行。一个活动可以具有多个依赖关系,因此,如果您需要SSIS等待3个软件包而不是仅等待3个,则仍然可以使用。
然后,您可以仅触发父管道,而不是分别触发其他管道和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。