使用Data Factory V2将文件名作为列

时间:2019-09-18 16:12:56

标签: azure-data-factory azure-data-factory-2

我在Blob存储中有很多JSON文件,我想做的就是通过Data factoryV2将JSON文件加载到SQL Data Warehouse中。我想要每个JSON文件的列中的文件名。我知道怎么 在SSIS中执行此操作,但是我不确定如何在Data Factory中复制此操作。

例如,文件名:CornerShop.csv作为SQL Data Warehouse的文件名列中的CornerShop

1 个答案:

答案 0 :(得分:1)

首先,请参见copy activity column mapping中的限制:

  • 源数据存储区查询结果的列名称为 在输入数据集“结构”部分中指定。
  • 接收器数据存储(如果具有预定义的架构)没有列 在输出数据集“结构”部分中指定的名称。
  • 接收器的“结构”中的更少列或更多列 数据集比映射中指定的数据量大。
  • 重复的映射。

所以,我不认为您可以一次完成数据传输和文件名。我的想法是:

1。首先使用GetMetadata活动。它应该获取要复制的每个文件的文件路径。使用“字段”列表中的“子项”。

2。GetMetaData活动成功后,执行ForEach activity。对于ForEach活动的“项目”,传递文件路径列表。

3。在ForEach活动的“活动”中,放置“复制”活动。在blob存储源文件名上通过@item()@item().name引用迭代项。

4。同时,将文件名配置为存储过程中的参数。在存储过程中,将文件名合并到fileName列中。