Azure Data Factory V2 在触发管道时使用昨天的日期 运行
Azure Data Factory V2 using yesterdays date when triggering a pipeline run
我有一个 Azure 数据工厂 (v2),用于每晚(UTC 时间凌晨 2 点)将数据库内容备份到 blob 存储。但是,我希望文件名包含生成备份的月份中的某天 (dd
),但它始终是前一天。
文件名是使用表达式生成的-
@{formatDateTime(pipeline().parameters.windowStart,'dd')}.json
因此,例如今天凌晨 3 点的 运行 应该被称为 23.json
,但它实际上被称为 22.json
。凌晨 3 点是预期的 运行 时间,因为我在英国,目前是 BST (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')
也许这样做会强制使用正确的日期?
当运行这份工作时,您是否也在使用Auto-generated IR或Self-Hosted IR?
我有一个 Azure 数据工厂 (v2),用于每晚(UTC 时间凌晨 2 点)将数据库内容备份到 blob 存储。但是,我希望文件名包含生成备份的月份中的某天 (dd
),但它始终是前一天。
文件名是使用表达式生成的-
@{formatDateTime(pipeline().parameters.windowStart,'dd')}.json
因此,例如今天凌晨 3 点的 运行 应该被称为 23.json
,但它实际上被称为 22.json
。凌晨 3 点是预期的 运行 时间,因为我在英国,目前是 BST (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')
也许这样做会强制使用正确的日期?
当运行这份工作时,您是否也在使用Auto-generated IR或Self-Hosted IR?