[英]Azure Data Factory - How can I trigger Scheduled/OneTime Pipelines?
背景:我已安排運行的管道,用於將數據從源復制到目標。 這計划在特定時間每天運行。
問題:管道的輸入數據集是外部的,在特定的時間間隔不可用。 這意味着復制活動必須等到管道中提到的計划開始時間才能啟動。 考慮到數據量,我不想在這里浪費時間。
要求:在任何給定時間,我都可以訪問輸入數據集可用的時間。 有了這個,我想知道如何從C#觸發ADF管道,雖然它計划僅在特定時間啟動。
我遇到了同樣的問題,我需要在本地工作完成后運行我的管道。 為此,我修改了本地作業,以啟動管道作為最后一步。 我在這里寫了一篇關於如何用C#啟動ADF管道的文章。 以下是ADF開發人員參考的鏈接,該參考也可能有所幫助。 我也有一個例子在這里如何從Azure的功能觸發自動進稿器的管道,如果你有興趣。 這是使用第一個示例中的相同代碼,但我得到了在雲中運行整個過程以及使用azure函數調度程序的能力。
以下是修改管道的相關方法。 您需要根據希望切片運行的時間更改開始日期和結束日期。
public void StartPipeline(string resourceGroup, string dataFactory, string pipelineName, DateTime slice)
{
var pipeline = inner_client.Pipelines.Get(resourceGroup, dataFactory, pipelineName);
pipeline.Pipeline.Properties.Start = DateTime.Parse($"{slice.Date:yyyy-MM-dd}T00:00:00Z");
pipeline.Pipeline.Properties.End = DateTime.Parse($"{slice.Date:yyyy-MM-dd}T23:59:59Z");
pipeline.Pipeline.Properties.IsPaused = false;
inner_client.Pipelines.CreateOrUpdate(resourceGroup, dataFactory, new PipelineCreateOrUpdateParameters()
{
Pipeline = pipeline.Pipeline
});
}
要觸發ADF,您需要將輸入數據集置於“就緒”狀態。 如果它處於就緒狀態,您可以手動轉到“監控”選項卡以手動“重新運行”,如果輸入數據集尚未就緒,則需要使該數據集准備好手動啟動ADF。
如果只想觸發一次作業,則可以將StartDate和EndDate設置為同一時間:
pipeline.Pipeline.Properties.Start = DateTime.Parse($"{someDate:yyyy-MM-dd}T00:00:00Z");
pipeline.Pipeline.Properties.End = DateTime.Parse($"{someDate:yyyy-MM-dd}T00:00:00Z");
pipeline.Pipeline.Properties.IsPaused = false;
以下是Microsoft Doc的一些示例...( 鏈接供參考 )
(僅適用於V2)
{
"properties": {
"name": "MyTrigger",
"type": "ScheduleTrigger",
"typeProperties": {
"recurrence": {
"frequency": "Hour",
"interval": 1,
"startTime": "2017-11-01T09:00:00-08:00",
"endTime": "2017-11-02T22:00:00-08:00"
}
},
"pipelines": [{
"pipelineReference": {
"type": "PipelineReference",
"referenceName": "SQLServerToBlobPipeline"
},
"parameters": {}
},
{
"pipelineReference": {
"type": "PipelineReference",
"referenceName": "SQLServerToAzureSQLPipeline"
},
"parameters": {}
}
]
}
}
在您的目錄中使用.JSON文件保存代碼,並使用以下命令進行部署...
Set-AzureRmDataFactoryV2Trigger -ResourceGroupName resourceGroupName -DataFactoryName dataFactoryName -Name "ScheduleTriggerName" -DefinitionFile ".\ScheduleTriggerName.json"
看看這個: https : //docs.microsoft.com/en-us/azure/data-factory/concepts-pipeline-execution-triggers 。
截至今天,我相信你可以使用這個:
POST
https://management.azure.com/subscriptions/mySubId/resourceGroups/myResourceGroup/providers/Microsoft.DataFactory/factories/myDataFactory/pipelines/copyPipeline/createRun?api-version=2017-03-01-preview
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.