如何在副本数据映射中包含Blob元数据

时间:2019-01-26 21:58:28

标签: azure azure-data-factory

我正在使用ADF v2管道,该管道将数据从csv blob复制到Azure SQL数据库表。对于每个负载,我想收集源元数据(例如源blob名称),并将其作为数据沿袭框架的一部分保存到目标表中。

我的Blob源运行以下架构:

  1. StoreName,
  2. StoreLocation,
  3. StoreTaxId。

我的目标表运行以下架构:

  1. StoreName,
  2. StoreLocation,
  3. DwhProcessDate,
  4. DwhSourceName。

我不知道如何在复制数据活动的映射部分中正确包含源名称。

目前我拥有:

  1. 定义了[Get Metadata1]活动以获取对Azure Blob存储中可用的所有Blob的引用
  2. 定义了[ForEach1]活动,遍历表达式@activity('Get Metadata1')。output.childitems的输出
  3. 在[ForEach1]活动中,放置了[Copy Data1]活动,在其中定义了源和接收器部分。

我正在寻找一种向映射部分添加额外行的方法,该方法将以同样方式将@item()。name绑定到目标列[DwhSourceName]

感谢有关如何实现此目标的所有建议。

1 个答案:

答案 0 :(得分:0)

实际上,根据我的测试,您可以指定列键的动态内容,但是不能在管道运行时将blob元数据设置为复制数据映射中的列值。请参阅此document中提到的规则。

enter image description here

在复制活动之前,您仍然需要在源数据中添加FileName列。也许您可以使用Azure Blob Trigger Function获得blob文件名,以便可以添加FileName当任何数据流进入Blob时列。(请参考这种情况:How Do I get the Name of The inputBlob That Triggered My Azure Function With Python