如何链接Azure Data Factory管道

Ven*_*nky 5 workflow azure azure-table-storage azure-data-factory

我有一个带有多个管道的数据工厂,每个管道都有大约20个复制活动,可以在2个存储帐户之间复制azure表。

每个管道都会处理每个azure表的快照,因此我想按顺序运行管道,以避免用旧数据覆盖最新数据的风险。

我知道,将第一条管道输出作为第二条管道的输入,就可以实现这一点。但是由于我有许多活动正在筹备中,所以我不确定哪个活动会最后完成。

无论如何,我是否知道管道已完成,或者一个管道已完成状态触发下一个管道?

在活动中,inputs是一个数组。那么可以提供多个输入吗?如果是,则所有输入将异步运行还是一个接一个地运行?

在多个输入的上下文中,我已经阅读了有关计划依赖性的内容。那么外部输入可以充当调度依赖性还是仅内部数据集?

Pau*_*rew 2

我认为目前您有几种选择来处理这个问题。两者都不是真正理想的,但就目前的形式而言,ADF 中没有任何东西是理想的!所以...

\n\n

选项1

\n\n

对第二个管道活动实施时间片延迟偏移。延迟更容易更改,无需重新配置切片,并且可以添加到活动中。这不是事件驱动的,但会给您更多的控制权以避免重叠。

\n\n
"policy": {\n    "timeout": "1.00:00:00",\n    "delay": "02:00:00",  // <<<< 2 hour delay\n    "concurrency": 1,\n
Run Code Online (Sandbox Code Playgroud)\n\n

检查此页面以获取有关这两个属性以及在何处使用它们的更多信息:https://learn.microsoft.com/en-us/azure/data-factory/data-factory-scheduling-and-execution

\n\n

选项2

\n\n

打破 PowerShell 并使用更高级别的东西来控制它。

\n\n

例如,使用Get-\xe2\x80\x8bAzure\xe2\x80\x8bRm\xe2\x80\x8bData\xe2\x80\x8bFactory\xe2\x80\x8bActivity\xe2\x80\x8bWindow 检查第一个管道状态。然后,如果完成,请使用Set-AzureRmDataFactorySliceStatus将第二个管道数据集更新为准备就绪。

\n\n

或者

\n\n

使用Suspend-\xe2\x80\x8bAzure\xe2\x80\x8bRm\xe2\x80\x8bData\xe2\x80\x8bFactory\xe2\x80\x8bPipeline在管道级别执行此操作

\n\n

有关 ADF PowerShell cmdlet 的更多信息,请访问:https://learn.microsoft.com/en-gb/powershell/module/azurerm.datafactories/Suspend-AzureRmDataFactoryPipeline ?view=azurermps-4.0.0

\n\n

正如我所说,这两种选择都不理想,并且您已经在问题中提到了数据集链接。

\n\n

希望这可以帮助。

\n