基于参数的 Azure 数据工厂管道 运行

Azure Data Factory Pipeline run based on parameters

我正在使用 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 天?

如果您在预定时间使用schedule trigger, passing the following values into your pipeline. Use adddays功能。 您可以使用 ADF UI 来帮助您 edit/new 触发器。

"name": "trigger1",
"properties": {
    "runtimeState": "Stopped",
    "pipelines": [
        {
            "pipelineReference": {
                "referenceName": "CopyPipeline_9ca",
                "type": "PipelineReference"
            },
            "parameters": {
                "windowStart": "@adddays(trigger().scheduledTime, -1)",
                "windowEnd": "@trigger().scheduledTime"
            }
        }
    ],