我一直在尝试找到一种方法来动态设置管道的start
和end
属性。这样做的原因是在管道执行的当前日期前 5 天处理文件的时间序列。
我尝试在管道 JSON 中设置它:
"start": "Date.AddDays(SliceStart, -5)"
"start": "Date.AddDays(SliceEnd, -5)"
通过VS2015发布时,出现以下错误:
Unable to convert 'Date.AddDays(SliceEnd, -5)' to a DateTime value.
Please use ISO8601 DateTime format such as "2014-10-01T13:00:00Z"
for UTC time, or "2014-10-01T05:00:00-8:00" for Pacific Standard
Time. If the timezone designator is omitted, the system will consider
it denotes UTC time by default. Hence, "2014-10-01" will be
converted to "2014-10-01T00:00:00Z" automatically..
","code":"InputIsMalformedDetailed"
还有什么其他方法可以做到这一点?
而不是尝试在管道级别动态设置它,这是行不通的。在针对数据集和活动中预配时间片时,需要处理它。
在数据集的可用性块和活动的计划程序块中使用名为 Offset 的 JSON 属性。
这将使用由间隔和频率配置的时间片开始值,并将其偏移以天/小时/分钟等为单位的给定值。
例如(在数据集中(:
// etc....
},
"availability": {
"frequency": "Day",
"interval": 1,
"style": "StartOfInterval",
"offset": "-5.00:00:00" //minus 5 days
}
//etc....
需要在这两个位置进行配置,否则活动将在部署时无法通过验证。
有关可用于配置更复杂的时间片方案的所有属性的详细信息,请查看此Microsoft文章。
https://learn.microsoft.com/en-us/azure/data-factory/data-factory-create-pipelines
希望这有帮助。