ADF中能否在For Each循环内使用Data Flow?如何传递循环项参数?
ADF For Each循环内调用Data Flow的可行性说明
在Azure Data Factory(ADF)中,完全支持在For Each循环内部调用Data Flow活动,这是批量数据处理场景下的常规用法,不存在功能层面的限制。
传入For Each当前迭代项到Data Flow参数的配置方法
- 第一步:提前在Data Flow侧定义接收参数
打开需要被调用的Data Flow编辑画布,点击画布空白位置调出全局配置面板,找到参数配置栏,新增和迭代项数据类型匹配的参数。比如你用For Each遍历字符串类型的表名列表,就新增一个字符串类型的参数,命名可参考current_table,默认值可留空。 - 第二步:在For Each活动内添加Data Flow活动
打开For Each活动的内部编辑页,新增Data Flow活动,在活动配置里关联上你刚才定义好参数的目标Data Flow,同时选好运行该Data Flow要用的集成运行时。 - 第三步:完成迭代项到Data Flow参数的映射
选中For Each内部的Data Flow活动,切换到「设置」配置页,找到参数映射区域,对应你之前在Data Flow里创建的参数,在参数值的表达式输入框中填入For Each的内置迭代变量:- 如果迭代项是简单类型(比如字符串、数字),直接填
@item()即可 - 如果迭代项是对象类型(比如同时包含表名、schema、分区字段的结构化对象),要取对应字段就用
@item().字段名的格式,比如要取对象里的tableName字段,就填@item().tableName
- 如果迭代项是简单类型(比如字符串、数字),直接填
配置注意事项:如果For Each活动关闭了「顺序执行」选项,Data Flow会按ADF默认的并发阈值并行执行,建议根据你的集成运行时算力合理设置For Each的并发度,避免同时启动过多Data Flow任务导致资源排队或运行失败。调试阶段建议先把并发数设为1,方便逐次排查参数传递和数据处理逻辑的问题。
内容的提问来源于stack exchange,提问作者user3737182
相关产品推荐
相关产品推荐

