天蓝色数据工厂管道定制时间表

时间:2017-05-19 13:35:41

标签: azure azure-data-factory

我有一些Azure数据工厂管道,除了每月的第一天,我想每天运行一次。

一个例子是如果它是2016年12月1日我想管道不运行。

通过简单地更改管道计划,这是否可行?如果没有,那么实现这个的另一个选择是什么?

2 个答案:

答案 0 :(得分:1)

现在最好的解决方案是创建自定义管道,每次启动它时,检查日期,如果它是您刚刚完成它的月份的第1个,通过从Execute方法返回null,您必须在自定义管道中实现

评论后编辑:

public IDictionary<string, string> Execute(IEnumerable<LinkedService> linkedServices, IEnumerable<Dataset> datasets, Activity activity, IActivityLogger logger)
{
    if (DateTime.UtcNow.Day == MonthDay.One)
    {
        return null;
    }
    /* YOUR PROCESSING DATA CODE */
    ...
    return null;
}

这样,管道将在本月的第一天完成其工作,但不会对您的数据进行任何处理......

这里有一个制作自己的自定义管道的官方示例: Making your own custom pipeline

答案 1 :(得分:0)

这是可能的,但不是很干净,你需要打破PowerShell来手动覆盖你不想运行的时间片。

创建数据集并使用每日日程安排活动,或者其他任何内容。完成后,使用PowerShell cmdlet Set-AzureRmDataFactorySliceStatus 覆盖您不想运行的年份中12天的时间片状态。使用cmdlet时,如果使用 -Status 参数,其值为已跳过,则会避免执行。

例如:

Set-AzureRmDataFactorySliceStatus `
    -ResourceGroupName $ResourceGroup `
    -DataFactoryName $ADFName.DataFactoryName `
    -DatasetName "YourDataset" `
    -StartDateTime 2016-12-01 `
    -EndDateTime 2016-12-02 `
    -Status "Skipped" `
    -UpdateType "Individual"

然后返回不同的开始和结束日期。

这并不完美,并且在部署管道后需要做的事情。但它会提供所需的行为。

此处有更多ADF PowerShell信息:https://docs.microsoft.com/en-us/powershell/module/azurerm.datafactories/set-azurermdatafactoryslicestatus?view=azurermps-4.0.0

希望这有帮助。