我在Azure Data Factory配置管道很难。
我需要每天上传过去两年的数据,我的意思是整个2016年和2017年直到今天。我设置了一个管道,其中WindowStart日期为2016/01/01,WindowEnd日期为2018/01/01,输出配置了可用性 ->频率为几个月:12。这将生成2片,2016年为2017年。
2016年的切片成功运行,但2017年的切片始终处于"待执行"状态,我的猜测是,由于2017年尚未完成,它尚未运行。
即使将来的窗口设备是窗口,有没有办法强迫它运行?
我尝试按月进行一些链条活动,然后将它们分组,但是我的测试都没有给我我的需求。
我觉得问题并不罕见,因为即使您想每月进行一次,本月也不会上传。问题来自以下事实:窗口启动必须与slicestart匹配,并且窗口端必须匹配切片。
我想念什么吗?有任何建议吗?
当您部署管道时创建所有切片。但是默认情况下,仅当您到达切片结束时才计划。因此,您的2017年仅在结束时才会运行。
您可以指定"样式":" startofinterval"以更改行为。
通过设计切片来处理非重叠时间的离散期。通常,如果您每天处理数据集,则每天都会处理上一张数据,因此每个切片涵盖了一个可以累积的特定日子。
如果您希望每天执行它,则需要设置源的可用性:1
根据您的来源,您可以使用wndowstart参数过滤源,但仅使用年度部分。
例如,如果数据源是SQL数据库,并且您使用存储的Proc选择数据来提取数据库,则可以使用它将其仅通过一年传递给您存储的Proc。知道这将是当今的一年。您可以在PROC中使用它来过滤与当前和去年相对应的记录。
"typeProperties": {
"storedProcedureName": "dbo.your_stored_proc",
"storedProcedureParameters": {
"year": "$$Text.Format('{0:yyyy}', SliceStart)",
}
这有意义吗?
我建议阅读这篇文章,以了解有关ADF中计划的更多信息:
https://blogs.msdn.microsoft.com/ukdataplatform/2016/05/03/demystifying-actifity-activity-activity-scheduling-with-azure-data-factory/
您需要将管道和数据集的可用性样式设置为" startofinterval",例如:
"availability": {
"frequency": "Month",
"interval": 12,
"style": "StartOfInterval"
}