我正在使用ADF将数据从Cosmos DB复制到Azure Data Lake。我已经安排它每24小时运行一次。由于ADF会将所有数据从源复制到接收器中,因此我使用windowStart和windowEnd参数来过滤数据。过滤是在Cosmos Document DB中的时间戳上完成的。
要运行管道,我必须手动指定windowStart和windowEnd UTC时间,这是不可行的。有没有办法使它自动化?我想要的是将windowStart时间设置为(计划的时间-1天),并将windowEnd时间设置为计划时间。这样我就可以获取前一天的所有数据。
生成的查询是:
select * from c
where c.data.timestamp >= '@{formatDateTime(pipeline().parameters.windowStart, 'yyyy-MM-ddTHH:mm:ssZ' )}'
AND c.data.timestamp < '@{formatDateTime(pipeline().parameters.windowEnd, 'yyyy-MM-ddTHH:mm:ssZ' )}'
如何将windowStart和windowEnd动态设置为等于预定时间的-1天?
答案 0 :(得分:0)
如果您使用的是 schedule trigger ,请将以下值传递到管道中。在计划的时间使用adddays功能。 您可以使用ADF UI来帮助您编辑/新建触发器。
"name": "trigger1",
"properties": {
"runtimeState": "Stopped",
"pipelines": [
{
"pipelineReference": {
"referenceName": "CopyPipeline_9ca",
"type": "PipelineReference"
},
"parameters": {
"windowStart": "@adddays(trigger().scheduledTime, -1)",
"windowEnd": "@trigger().scheduledTime"
}
}
],