Azure Data Factory中如何将迭代器值映射至接收器?
Azure Data Factory中Lookup迭代器值持久化到SQL接收器的解决方法
排查与解决步骤
1. 确认Lookup活动输出的字段正确性
先检查Lookup活动的运行输出,查看output.value数组里的每个对象是否包含目标id字段——注意大小写严格匹配:如果SQL表列名是Id,引用时必须写@{item().Id},而非小写id,大部分NULL问题都是字段名大小写或拼写不匹配导致的。
2. 确保迭代器的正确关联
如果用ForEach活动迭代Lookup结果:
- 必须将ForEach的
Items属性设置为Lookup活动的输出:@activity('你的Lookup活动名称').output.value,这样迭代变量item才会包含Lookup返回的id字段。
3. 通过附加列传递迭代器值到接收器
在Copy活动中直接引用@{item().id}到接收器映射可能无法被识别,正确操作是:
- 进入Copy活动的源配置页,找到附加列选项,新增一列:
- 列名:自定义(比如
loop_id) - 值:
@{item().id}(根据Lookup输出字段名调整)
- 列名:自定义(比如
- 切换到映射页,将新增的附加列映射到SQL接收器的目标列。
4. 检查映射配置
确认附加列与接收器目标列的映射关系正确,同时保证字段类型兼容(比如id是整数类型,接收器列也要设置为对应数值类型)。
内容的提问来源于stack exchange,提问作者Torben
相关产品推荐
相关产品推荐

