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 数据工厂 - 查找值以在 ForEach 复制任务中选择语句