我在Azure数据工厂服务中创建了一些管道,用于将数据从SQL表移动到Azure表。但他们从未开始跑步。相反,即使在我单击Azure门户中的pending validation
按钮后,源数据集仍保持run
。我已经检查了external
属性,这些属性都设置为true
。我想知道是否还有其他可能的原因。
这是我的表源
{
"name": "TableSrc",
"properties": {
"published": false,
"type": "AzureSqlTable",
"linkedServiceName": "LinkedService-AzureSql",
"typeProperties": {
"tableName": "myTable"
},
"availability": {
"frequency": "Month",
"interval": 1
},
"external": true,
"policy": {}
}
}
答案 0 :(得分:4)
我遇到了这个尝试设置一个每天运行的管道,并认为我可以使用“anchorDateTime”可用性属性,我能够做到这一点,但你必须设置的"frequency"
属性数据集中的"availability"
部分指向您要指定的最低粒度级别。也就是说,如果您希望每天下午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
答案 1 :(得分:1)
我明白了......它将等待下一个完整的月份开始。这意味着它将在下个月的第一天开始,无法手动触发它。
答案 2 :(得分:1)
我遇到了同样的问题。事实证明我没有根据UTC指定管道的开始时间。
答案 3 :(得分:1)
好吧,如果您希望运行管道,请将活动期更新为过去的日期。你可以使用下面的powershell命令
来做到这一点set-AzureDataFactoryPipelineActivePeriod -DataFactoryName $ DataFactoryName -PipelineName $ PipelineName -StartDateTime $ DateInPast -EndDateTime $ DateOneDayLessInPast -ResourceGroupName $ ResourceGroupName -Force