在 ADF V2 中 - 如何将日期(“yyyyMMdd”))动态附加到 S3 数据集的文件名

kuc*_*ber 3 azure-pipelines azure-data-factory-2

我目前正在努力在 ADFv2 中自动化一个管道,其中源数据位于 S3 中。每天创建一个新文件,结构为“data_20180829.csv”

我试图在复制数据活动的文件名字段中检测动态内容以完成此操作。然而,即使我尝试像 @{concat('data_','20180829.csv')} 这样简单的东西(应该解析为正确的值),源也失败了。

有没有办法查看动态内容将解析为什么?

wBo*_*Bob 5

这应该只是在数据集中设置文件名表达式的问题,例如

Azure 数据工厂数据集设置

请注意,设置是在数据集上完成的,而不是在复制活动级别。另请注意,您可以通过将utcnow函数与 formatDateTime结合来使您的表达式更加动态,例如:

@concat('data_',formatDateTime(utcnow(),'yyyMMdd_HHmmss'),'.csv')
Run Code Online (Sandbox Code Playgroud)

请仔细注意格式化字符串的大小写。大写MM是两位数格式的月份。 HH是 24 小时制的小时。格式字符串的完整列表在这里

数据集的 json 如下所示:

{
    "name": "DelimitedText3",
    "properties": {
        "linkedServiceName": {
            "referenceName": "linkedService2",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "type": "DelimitedText",
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "fileName": {
                    "value": "@concat('data_',formatDateTime(utcnow(),'yyyMMdd_HHmmss'),'.csv')",
                    "type": "Expression"
                },
                "container": "ang"
            },
            "columnDelimiter": ",",
            "escapeChar": "\\",
            "quoteChar": "\""
        },
        "schema": [
            {
                "type": "String"
            },
            {
                "type": "String"
            },
            {
                "type": "String"
            },
            {
                "type": "String"
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)