Azure数据工厂 - 如何触发Scheduled / OneTime管道?

时间:2016-08-18 16:51:04

标签: azure azure-data-factory

后台:我已安排管道运行,以便将数据从源复制到目标。这计划在特定时间每天运行。

问题:管道输入数据集是外部的,在特定时间间隔不可用。这意味着复制活动必须等到管道中提到的计划开始时间才能启动。考虑到数据量,我不想在这里浪费时间。

要求:在任何给定时间,我都可以访问输入数据集可用的时间。有了这个,我想知道如何从C#触发ADF管道,虽然它计划仅在特定时间启动。

5 个答案:

答案 0 :(得分:9)

我遇到了同样的问题,我只需要在本地工作完成后运行我的管道。为此,我修改了本地作业,以启动管道作为最后一步。关于如何使用C#启动ADF管道,我写了hereHere是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)

以下是Microsoft Doc ...(enter image description here

的一些示例

(仅适用于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;
}