我正在使用 ADF Copy Activity 将许多文件复制到一个文件中,但我想添加一列并获取元数据上 Blob 的上次修改日期,例如 $$FILEPATH。
有没有一种简单的方法可以做到这一点,因为我只看到与管道详细信息等相关的系统变量。
https://learn.microsoft.com/en-us/azure/data-factory/control-flow-system-variables
最佳答案
由于要求是向每个文件添加一列,其中该列值是该 blob 的
lastModified
日期,因此我们可以迭代每个文件,向其中添加具有当前 blob 的lastModified
日期,将其复制到暂存文件夹中。在此暂存文件夹中,您可以使用最终复制事件将此文件夹中的所有文件合并到最终目标文件夹中的单个文件。
看下面的演示。以下是我在 ADLS 存储中的文件。
- 我使用
获取元数据
来获取此容器中的文件名称(final 和 output1 文件夹是在稍后阶段创建的,因此它们不会影响该过程)。
- 在
foreach
事件中使用返回文件名作为项目 (@activity('Get Metadata1').output.childItems
),我获得了lastModified
每个文件使用每个文件中的另一个获取元数据
事件。
- 此
Get Metadata2
的数据集配置如下:
- 现在,我已通过添加附加列将这些文件复制到
output1
文件夹中,我在其中提供了以下动态内容(来自 getmetadata2 的lastModified
)
@activity('Get Metadata2').output.lastModified
- 现在,您可以在此 foreach 之后使用最终复制数据事件,将这些文件合并为单个文件并放入
final
文件夹中。
- 以下是最终输出供引用:
关于Azure 数据工厂从元数据复制事件新的上次修改列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74036104/