Azure 数据工厂文件创建

Posted

技术标签:

【中文标题】Azure 数据工厂文件创建【英文标题】:Azure data factory file creation 【发布时间】:2020-06-23 15:09:05 【问题描述】:

我有一个基本要求,我想将时间戳附加到从 sql db 提取的文件中,并将其放入 blob。我使用 utcnow(),它会创建一个带有 T 的时间戳,而我不需要。

获取日期和时间的任何格式表达式?

我是来自 ssis 背景的 javascript 表达式新手

帮助赞赏

【问题讨论】:

您想将时间戳附加到文件名或文件内容的哪个位置? 到文件名 【参考方案1】:

您可以做到这一点的唯一方法是复制并创建一个具有新名称的新 blob,并与时间戳相连接。

数据工厂不支持重命名 blob。

我只成功了一个文件。

你可以按照我的步骤来:

    使用查找活动从 SQL 数据库中获取时间戳。 使用 Get metadata 从存储中获取 blob 名称。 使用复制数据活动复制和创建新的文件名 blob。

桩线预览:

查找预览:

获取元数据和源数据集:

复制数据活动来源设置:

复制数据活动接收器设置:

添加参数以设置源datasaet中的新文件名:

使用表达式创建带有文件名和时间戳的新文件:

@concat(split(activity('Get Metadata1').output.itemName,'.')[0],activity('Lookup1').output.firstRow.tt)

然后检查 Blob Storage 中的输出文件:

希望这会有所帮助。

【讨论】:

有没有办法我们可以只附加带有时间戳的文件名......现在在数据集中我能够实现这个文件名_@utcnow()......但我不想要所有 UTC 值,如 T 和额外字符 ....我想将其格式化为简单的时间戳 @SankeertanSamrat 是的,您可以使用 subString 表达式来实现 that(),然后将文件名和标记连接起来,如“2020-03-02”。 ' 你需要学习如何使用expressions and functions。【参考方案2】:

您可以在接收器中的目标文件名中使用表达式。

toTimestamp(utcnow(), 'yyyyMMdd_HHmm_ss')

【讨论】:

嘿,谢谢大家的回复...我一直在使用 filename_@utcnow())...所以使用它就像 filename_@toTimestamp(utcnow(), 'yyyyMMdd_HHmm_ss').. .这应该可以吗? 它说在数据集级别无法识别 totimestamp 函数....仅识别 filename_@utcnow()....在表达式列表中它不显示时间戳

以上是关于Azure 数据工厂文件创建的主要内容,如果未能解决你的问题,请参考以下文章

Azure 数据工厂 - 删除活动时出错

如何使用 Azure 数据工厂中的每个活动合并文件

发布后如何将 Azure 数据工厂参数放入 ARM 模板参数文件 (ARMTemplateParametersForFactory.json)

到 Azure SQL 数据库的数据流输出仅包含 Azure 数据工厂中的 NULL 数据

如何使用构建管道部署 Azure 数据工厂资源?

使用 azure 数据工厂管道将 json 对象存储到 azure 表存储实体