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

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

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

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

帮助赞赏

【问题讨论】:

  • 您想将时间戳附加到文件名或文件内容的哪个位置?
  • 到文件名

标签: azure azure-sql-database azure-pipelines azure-blob-storage


【解决方案1】:

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

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

我只成功了一个文件。

你可以按照我的步骤来:

  1. 使用查找活动从 SQL 数据库中获取时间戳。
  2. 使用 Get metadata 从存储中获取 blob 名称。
  3. 使用复制数据活动复制和创建新的文件名 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()}....在表达式列表中它不显示时间戳
猜你喜欢
  • 2021-01-01
  • 2021-07-02
  • 2022-07-01
  • 1970-01-01
  • 2021-05-27
  • 1970-01-01
  • 2021-12-27
  • 2020-01-14
  • 2022-01-06
相关资源
最近更新 更多