后台:我已安排管道运行,以便将数据从源复制到目标。这计划在特定时间每天运行。
问题:管道输入数据集是外部的,在特定时间间隔不可用。这意味着复制活动必须等到管道中提到的计划开始时间才能启动。考虑到数据量,我不想在这里浪费时间。
要求:在任何给定时间,我都可以访问输入数据集可用的时间。有了这个,我想知道如何从C#触发ADF管道,虽然它计划仅在特定时间启动。
答案 0 :(得分:9)
我遇到了同样的问题,我只需要在本地工作完成后运行我的管道。为此,我修改了本地作业,以启动管道作为最后一步。关于如何使用C#启动ADF管道,我写了here。 Here是ADF开发人员参考的链接,可能也会有所帮助。如果您有兴趣,我还有一个关于如何从Azure Functions触发ADF管道的示例here。这是使用第一个示例中的相同代码,但我得到了在云中运行整个过程以及使用azure函数调度程序的能力。
以下是修改管道的相关方法。您需要根据希望切片运行的时间来更改开始日期和结束日期。
let safari = SFSafariViewController(URL: url)
safari.modalPresentationStyle = .overFullScreen
presentViewController(safari, animated: true, completion: nil)
答案 1 :(得分:2)
要触发ADF,您需要将输入数据集置于“就绪”状态。如果它处于就绪状态,您可以手动转到“监控”选项卡以手动“重新运行”,如果输入数据集尚未就绪,则需要使该数据集准备好手动启动ADF。
答案 2 :(得分:2)
如果您只想触发一次作业,那么您可以将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;
答案 3 :(得分:0)
(仅适用于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"
答案 4 :(得分:0)
检查出来:https://docs.microsoft.com/en-us/azure/data-factory/concepts-pipeline-execution-triggers。
截至今天,我相信你可以使用它:
int main(void)
{
int array[2][2] = { { 1, 2 }, { 4, 5 } };
function(2, 2, &array[0][0]);
return 0;
}