Azure 数据工厂“等待验证”

Posted

技术标签:

【中文标题】Azure 数据工厂“等待验证”【英文标题】:Azure Data Factory 'Pending Validation' 【发布时间】:2015-12-18 22:50:18 【问题描述】:

我在 Azure 数据工厂服务中创建了一些管道,用于将数据从 SQL 表移动到 Azure 表。但他们从不开始跑步。相反,即使在我单击 Azure 门户中的 run 按钮后,源数据集仍保留为 pending validation。我已经检查了external 属性,它们都设置为true。我想知道是否还有其他可能的原因。

这是我的表格来源


    "name": "TableSrc",
    "properties": 
        "published": false,
        "type": "AzureSqlTable",
        "linkedServiceName": "LinkedService-AzureSql",
        "typeProperties": 
            "tableName": "myTable"
        ,
        "availability": 
            "frequency": "Month",
            "interval": 1
        ,
        "external": true,
        "policy": 
    

【问题讨论】:

【参考方案1】:

我知道了原因...它将等待下一个圆形月份开始。也就是说它会在下个月的第一天开始,并且无法手动触发。

【讨论】:

【参考方案2】:

我遇到了同样的问题。原来我没有根据UTC指定管道的开始时间。

【讨论】:

【参考方案3】:

我在尝试设置每天运行的管道时遇到了这个问题,并认为我可以使用“anchorDateTime”可用性属性并且我能够做到这一点,但是您必须设置@987654324 的"frequency" 属性@ 数据集中的部分到您要指定的最低粒度级别。也就是说,如果您希望每天在 UTC 时间下午 6:30 运行,您的数据集需要如下所示(因为您指定的是分钟级别的时间):

"availability": 
    "frequency": "Minute",
    "interval": 1440,
    "anchorDateTime": "2016-01-27T18:30:00Z"

并且管道的"scheduler" 部分需要类似于:

"scheduler": 
    "frequency": "Minute",
    "interval": 1440,
    "anchorDateTime": "2016-01-27T18:30:00Z"

这将每 1440 分钟(即每 24 小时)运行一次。我希望它可以帮助其他人,因为 Microsoft 文档在这个主题上自相矛盾(或者至少是误导性的):

对于每日计划,如果您设置 anchorDateTime = 10/20/2014 6 AM 表示计划将在每天早上 6 点进行。

这其实不是真的,两行后说:

如果 AnchorDateTime 的日期部分比时间间隔更细,那么更细的部分将被忽略。例如,如果间隔是每小时(频率:小时和间隔:1)并且 AnchorDateTime 包含分钟和秒,则 AnchorDateTime 的分钟和秒部分将被忽略。

第二部分是我认为我们遇到的问题,也是我建议上述策略的原因。

参考:https://msdn.microsoft.com/en-us/library/azure/dn894092.aspx

【讨论】:

这适用于长度不变的时间间隔,但可能不适用于“月”之类的内容,因为您必须指定天数作为间隔。 除了使用锚点外,您还可以使用可用性的偏移属性。我相信接受 TheSchmoe 的答案并添加偏移量将提供解决方案。另见:Dataset Availability properties【参考方案4】:

好吧,如果您希望您的管道运行,请将活动期间更新为过去的日期。你可以使用下面的 powershell 命令来做到这一点

set-AzureDataFactoryPipelineActivePeriod -DataFactoryName $DataFactoryName -PipelineName $PipelineName -StartDateTime $DateInPast -EndDateTime $DateOneDayLessInPast -ResourceGroupName $ResourceGroupName -Force

【讨论】:

是的,这就是我的情况。仅供参考,无需通过powershell更改日期,只需在门户中编辑管道JSON即可。

以上是关于Azure 数据工厂“等待验证”的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure 数据工厂管道中处理 Null 值

如何将.net控制台应用程序客户端连接到Azure数据工厂

Azure 数据工厂 - 查找值以在 ForEach 复制任务中选择语句

数据工厂中使用的 Python Azure 函数返回:“响应内容不是有效的 JObject”

从 azure 数据工厂调用 azure 函数端点时出错

在 Azure 数据工厂中完成活动后,如何向 Azure 服务总线发送消息