我在 Blob 存储中有很多 JSON 文件,我想做的就是通过 DatafactoryV2 将 JSON 文件加载到 SQL 数据仓库中。我希望每个 JSON 文件的文件名位于一列中。我知道怎么做 在 SSIS 中执行此操作,但我不确定如何在数据工厂中复制此操作。
例如,文件名:CornerShop.csv 在 SQL 数据仓库的文件名列中为 CornerShop
最佳答案
首先请参阅 copy activity column mapping 中的限制:
- 源数据存储查询结果没有以下列名称 在输入数据集“结构”部分中指定。
- 接收器数据存储(如果具有预定义架构)没有列 在输出数据集“结构”部分中指定的名称。
- 接收器“结构”中的列数较少或较多 数据集比映射中指定的数据集。
- 重复映射。
所以,我认为你不能同时进行数据传输和文件名。我的想法是:
1.首先使用GetMetadata事件。它应该获取您要复制的每个文件的文件路径。使用字段列表中的“子项目”。
2.GetMetaData 事件成功后,执行 ForEach activity 。对于 ForEach 事件的 Items,传递文件路径列表。
3.在ForEach 事件的Activities 内,放置Copy 事件。通过 @item()
或 @item().name
在 Blob 存储源文件名上引用迭代项。
4.同时,将文件名作为参数配置到存储过程中。在存储过程中,将文件名合并到 fileName
列中。
关于azure-data-factory - 使用数据工厂 V2 将文件名作为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57996929/