[英]How to chain Azure Data Factory pipelines
我有一個帶有多個管道的數據工廠,每個管道有大約 20 個復制活動來在 2 個存儲帳戶之間復制 azure 表。
每個管道處理每個 azure 表的快照,因此我想按順序運行管道以避免用舊數據覆蓋最新數據的風險。
我知道將第一個管道輸出作為第二個管道的輸入我們可以實現這一點。 但由於我有很多活動正在籌備中,我不確定哪個活動會最后完成。
無論如何我可以知道管道已完成或無論如何一個管道完成狀態觸發下一個管道?
在 Activity 中, inputs
是一個數組。 那么是否可以提供多個輸入? 如果是,所有輸入將異步運行還是一個接一個地運行?
在多個輸入的上下文中,我已經閱讀了有關調度依賴的內容。 那么外部輸入可以作為調度依賴還是僅作為內部數據集?
我認為目前您有幾種選擇來處理這個問題。 兩者都不是真正理想的,但 ADF 中沒有任何東西在當前形式下是理想的! 所以...
選項1
對第二個管道活動強制執行時間片延遲或偏移。 延遲將更容易更改而無需重新配置切片,並且可以添加到活動中。 這不會是事件驅動的,但會給你更多的控制以避免重疊。
"policy": {
"timeout": "1.00:00:00",
"delay": "02:00:00", // <<<< 2 hour delay
"concurrency": 1,
查看此頁面以獲取有關這兩個屬性及其使用位置的更多信息: https : //docs.microsoft.com/en-us/azure/data-factory/data-factory-scheduling-and-execution
選項 2
打破 PowerShell 並使用更高級別的東西來控制它。
例如,使用Get-AzureRmDataFactoryActivityWindow檢查第一個管道狀態。 然后,如果完成,請使用Set-AzureRmDataFactorySliceStatus將第二個管道數據集更新為就緒。
或者
使用Suspend- Azure Rm Data Factory Pipeline在管道級別執行此操作
有關 ADF PowerShell cmdlet 的更多信息,請訪問: https : //docs.microsoft.com/en-gb/powershell/module/azurerm.datafactories/Suspend-AzureRmDataFactoryPipeline? view = azurermps-4.0.0
正如我所說,這兩個選項都不理想,您已經在問題中提到了數據集鏈接。
希望這可以幫助。
在管道的所有輸出數據集都處於就緒狀態(管道成功完成時發生)之后,管道就完成了。
此外,一個管道可以有來自多個管道的多個數據集作為輸入(也輸出)。 在這種情況下,只有在所有先前的管道成功完成后,管道才會啟動。 如果您有更多管道的數據集作為輸入,它們將異步運行,具體取決於它們的計划。
外部數據集(輸入)作為調度依賴,因為它們可以有自己的(可能不同的)可用性。
在多個輸入的上下文中,我已經閱讀了有關調度依賴的內容。 那么外部輸入可以作為調度依賴還是僅作為內部數據集?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.