Azure Data Factory V2 Copy Activity - 所有复制文件的保存列表

Azure Data Factory V2 Copy Activity - Save List of All Copied Files

我有将文件从本地复制到不同接收器的管道,例如本地和 SFTP。 我想保存每个 运行 中复制的所有文件的列表以供报告。

我尝试使用获取元数据和 For Each,但不确定如何将输出保存到平面文件甚至数据库中 table。

或者,是否可以细化复制到数据工厂日志中某处的对象列表?

谢谢

更新:

项目:@activity('Get Metadata1').output.childItems



如果你想记录源文件名,是的,我们可以。正如您所说,我们需要使用 Get Metadata 和 For Each activity.
我创建了一个测试,将 Copy activity 的源文件名保存到 SQL table.

  1. 众所周知,我们可以通过Get metadata activity中的Child items获取文件列表。 Get Metadata1 activity 的数据集指定包含多个文件的容器。 test容器中的文件列表如下:

  2. 在ForEachactivity的里面,我们可以遍历这个数组。我设置了一个名为 Copy-Files 的 Copy activity 来将文件从源复制到目标。

  3. @item().name 表示 test 容器中的每个文件。我输入动态内容@item().name来指定文件名。 然后依次传递测试容器中的文件名。这是分批执行复制任务,每批都会传入一个要复制的文件名。以便我们以后可以将每个文件名记录到数据库中table。

  4. 然后我又设置了一个Copyactivity把文件名存成SQLtable。我在这里使用 Azure SQL 并创建了一个简单的 table.

create table dbo.File_Names(
    Copy_File_Name varchar(max)
);
  1. 正如这个post所说,我们可以使用类似的语法select '@{item().name}' as Copy_File_Name来访问ADF中的一些activity数据。 注意:别名应与SQLtable中的列名相同。

  2. 然后我们可以将文件名沉入SQL table.
    Select 之前创建的table。

  3. 在我运行调试后,我可以看到所有文件名都保存到table。

如果你想添加更多信息,你可以参考我之前维护的post