Azure 数据工厂 - 将查找值/ID 传递到 ForEach 复制任务不起作用

Posted

技术标签:

【中文标题】Azure 数据工厂 - 将查找值/ID 传递到 ForEach 复制任务不起作用【英文标题】:Azure Data Factory - Passing lookup value/id into ForEach copy task not working 【发布时间】:2022-01-14 11:39:10 【问题描述】:

我正在尝试将 ID 从一个存储例程传递到另一个复制任务,这需要一个 for each 递归处理每个 ID。我已经设置了查找 ID 任务,该任务正在运行。它将这些对象传递给我的每个对象,其中设置是“顺序”的,项目设置如下:@activity('LookupUID').output.value

foreach

在我的 for each 中,我有 1 个活动将数据从另一个 API 调用复制到 Azure SQL 数据库。我有一个链接服务,正在传递一个参数。我正在尝试使用动态内容运算符将当前项目从 for each 传递到此参数,然后将其发送到 ID 参数的 API 调用。当我在这里手动插入一个值时,它工作正常。但是,尝试将 for each 中的值传递到此复制任务参数中不会在运行任务时生成数据行。

copy task

output

【问题讨论】:

【参考方案1】:

您必须在复制活动中提及列名以及当前项目,例如 @item().ID

示例

    我有一个lookup 活动来从来源获取 ID。下面是带有 ID 列表的 Lookup 活动的输出。

查找输出:

    我在 ForEach 活动中循环这些 ID,并将 当前项目 传递给一个变量。

ForEach 活动设置:Items- @activity('Lookup1').output.value

    我有一个字符串变量,我在其中使用 Set Variable 活动传递当前项,如下所示。

@string(item().ID)

输出

【讨论】:

【参考方案2】:

使用此代码并替换为您的列名

@activity('lookup1').output.firstrow.columnname

【讨论】:

以上是关于Azure 数据工厂 - 将查找值/ID 传递到 ForEach 复制任务不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将日期时间参数从管道传递到数据流源存储过程 Azure 数据工厂

将嵌套参数传递到 Azure 数据工厂

如何使用 azure 数据工厂下载 blob

如果今天是星期一,则在 Azure 数据工厂中添加动态内容以传递参数以获取最近 03 天

如何在 Azure 数据工厂中执行 SQL 查询

如何在数据工厂管道中将路由传递给 Azure 函数(C#)http 触发器?