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 数据工厂参数放入 ARM 模板参数文件 (ARMTemplateParametersForFactory.json)