2015-09-22 31 views
3

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

这里是我的表源

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

回答

1

我的理由......它会等待下一个圆角月启动。这意味着它将在下个月的第一天开始,并且无法手动触发它。

1

我遇到了同样的问题。事实证明,我没有根据UTC指定管道的开始时间。

4

我就遇到了这个试图建立一个管道的日常运行,并认为我可以使用“anchorDateTime”可用性特性,我能做到这一点,但你必须设置"availability"部分的"frequency"财产将数据集设置为您要指定的最低粒度级别。也就是说,如果你想要的东西在每天下午6:30 UTC运行,数据集必须是这样的(因为你是在指定的分钟级别的时间):

"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小时)。我希望它可以帮助别人了,因为微软的文档自相矛盾关于这个主题(或至少是误导):

对于每天的日程安排,如果设置anchorDateTime =二○一四年十月二十日早上6点意味着调度将在每天早上6点发生。

其实,这是不正确的,两条线后,它说:

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

第二部分是我认为我们遇到的问题以及为什么我提出了上述策略。

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

+0

这是不行了时间间隔的长度没有按”不会改变,但可能不适用于“月份”之类的内容,因为您必须指定天数作为间隔。 –

+0

您可以使用偏移属性来处理可用性,而不是使用锚点。我相信采用TheSchmoe的答案并添加一个胶印将提供一个解决方案。另请参阅:[数据集可用性属性](https://azure.microsoft.com/zh-cn/documentation/articles/data-factory-create-datasets/#Availabilit) –

1

好吧,如果你希望你的管道中运行,更新活跃期在过去的日期。您可以使用以下PowerShell命令做到这一点

设置AzureDataFactoryPipelineActivePeriod -DataFactoryName $ DataFactoryName -PipelineName $ PipelineName -StartDateTime $ DateInPast -EndDateTime $ DateOneDayLessInPast -ResourceGroupName $ ResourceGroupName -Force

+0

是的,那是我的情况。仅供参考,不需要通过powershell更改日期,只需在门户中编辑管道JSON即可。 – psfinaki