我正在使用复制数据事件将数据发送到 Azure Data Lake Storage Gen2。为此,我必须每天创建一个新文件夹,并在其末尾添加当前时间戳。所以今天我的管道启动,在存储资源管理器中的正确路径中我应该看到:
文件夹名称_2021-11-02
我不关心格式,我只需要日期。在“路径”(复制数据事件的“接收器”部分)中,我写道:
@parent_folder/folder_name_utcNow()
但是我收到以下错误: @parent_folder/folder_name_utcNow() 无效:位置“13”处的字符串字符“/”不是预期的。
最佳答案
您需要以正确的格式创建字符串并将其放在正确的位置。这是一个示例,其中我使用 concat
将多个字符串与 formatDateTime
连接,以将 utcNow
的输出转换为我可以使用的字符串格式一个文件名。我在接收器输出数据集的文件路径属性中使用此动态内容。
注意,我在格式字符串中使用正斜杠,确保获得数据湖层次结构。如果您只想要一个包含日期的文件,请将它们替换为下划线或完全删除它们:
@concat('raw/ball/', formatDateTime(utcNow(), 'yyyy/MM/dd/HH/mm/'))
输出数据集:
你可能想要这样的东西:
@concat('raw/parent_folder/folder_name_/', formatDateTime(utcNow(), 'yyyyMMdd'))
尽管按照我原来的示例,使用日期文件夹更为常见。
关于Azure数据工厂,用于创建新文件夹的utcNow()动态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69814877/