如何使用数据工厂将多个 csv 文件从 blob 批量复制到多个 sql 数据库表

How to bulk copy multiple csv files from blob to mutliple sql database tables with data factory

我正在尝试将 blob 存储中的不同 csv 文件复制到自己的 sql 表中(我想自动创建这些表)。我看到了很多问题,但我还没有看到任何答案。

目前我有一个 getmetadata 函数,它获取子项列表以获取文件名和一个 foreach 循环,但从那里我不知道如何将它们发送到每个文件的不同表。

更新:
当我第二次 运行 时。它会将新行添加到 table.


我创建了一个简单的测试并且运行良好。这是我存储在 Azure Data Lake 中的 csv 文件。

然后我们可以使用管道将此 csv 文件复制到 Azure SQL table(自动创建这些 table)。

  1. GetMetaData1activity处,我们可以设置包含csv文件的文件夹的数据集 并且 select First row as header 在数据集上。

2.At ForEach1 activity 我们可以通过表达式 @activity('Get Metadata1').output.childItems foreach 文件列表。

3.InsideForEach1activity,我们可以使用Copy data1activity与GetMetaData1activity相同的数据源.在 source 选项卡,我们可以输入 动态内容 @item().name。我们可以使用 @item().name 来获取文件名。

  1. sink选项卡,我们应该selectAuto create table 在 Azure SQL 数据集中,我们应该输入 schema name 动态内容 @replace(item().name,'.csv','') 作为其 table 名称。因为动态创建 table 需要此信息。

  2. 调试结果如下: