我有一个Azure数据工厂(v2(,用于每晚(UTC凌晨2点(将数据库的内容备份到blob存储区。但是,我希望文件的名称包含生成备份的月份(dd
(,但它总是在前一天。
文件名是使用表达式生成的
@{formatDateTime(pipeline().parameters.windowStart,'dd')}.json
例如,今天凌晨3点的跑步本应被称为23.json
,但实际上它被称为22.json
。凌晨3点是我在英国的预期运行时间,目前是英国夏令时(UTC+1(
从运行的参数来看,我可以看到windowStart
确实是一天。例如,23日凌晨2点触发的今天的跑步有9/22/2020 2:00:00 AM
。
有人能解释为什么数据工厂会这样做吗?希望我能让它按预期工作。
这是从数据工厂导出的触发器。
{
"name": "Trigger_Copy_Transactions",
"properties": {
"annotations": [],
"runtimeState": "Started",
"pipeline": {
"pipelineReference": {
"referenceName": "Copy_Transactions",
"type": "PipelineReference"
},
"parameters": {
"windowStart": "@trigger().outputs.windowStartTime"
}
},
"type": "TumblingWindowTrigger",
"typeProperties": {
"frequency": "Hour",
"interval": 24,
"startTime": "2020-08-24T02:00:00Z",
"delay": "00:00:00",
"maxConcurrency": 50,
"retryPolicy": {
"intervalInSeconds": 30
},
"dependsOn": []
}
}
}
您可以尝试的一件事是强制文件在运行IR的同一时区生成。例如,我们有一个自托管IR,因此当我们生成文件时,它与EST时间不匹配。在这种情况下,我做了以下操作:
@concat('File_name',formatDateTime(
convertFromUtc(utcnow(),'Eastern Standard Time'),'yyyy-MM-dd'),'.txt')
也许这样做会迫使合适的日期?
运行此作业时,您是否也使用自动生成IR或自托管IR?