Azure 数据工厂 - 查找值以在 ForEach 复制任务中选择语句

Posted

技术标签:

【中文标题】Azure 数据工厂 - 查找值以在 ForEach 复制任务中选择语句【英文标题】:Azure Data Factory - lookup value to select statement in ForEach copy task 【发布时间】:2022-01-15 09:37:00 【问题描述】:

我有一个正在执行以下操作的数据流:

将日期设置为今天>从 API 复制到临时表>在源表中查找 ID>在临时表中针对源表查找 ID 以仅传递 DeDupe 值>ForEach 用于通过 DeDupe 验证的每个 ID>在 ForEach 中按顺序复制任务从第二次查找中提取每个 ID,并将 API 数据存储到 Azure SQL。

我的所有逻辑都在工作,除了最后一项任务是使用 select 语句 = DeDupe 查找的 ID:

Overall data pipeline

ForEach value being passed

Copy task in ForEach picking up the current item

Input for the copy task each sequence

Output for the copy task each sequence

请注意,在最后的图像中,输入正在生成列名,而不仅仅是 SQL 语句中的值。我该如何防止这种情况,所以我可以将已经在文字中定义的值传递给 SQL 语句?这里的想法是每次运行都对值进行 DeDupe,因为这将被编写脚本以展望未来的预订数据。

【问题讨论】:

【参考方案1】:

@item().UID 等复制活动中添加列名和当前项,并使用concat() 函数将当前项与字符串值组合,如下所示。

查找的输出:

复制数据活动在 ForEach 活动中的源查询:

@concat('select * from tb1 where id = ',item().id)

复制数据源输入:

【讨论】:

以上是关于Azure 数据工厂 - 查找值以在 ForEach 复制任务中选择语句的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Find commit 以在 Azure Devops 中查找非常旧的已删除文件

如何获取每个分区的最后一个值以在 Spark SQL 中估算缺失值

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

从 json 会话返回值以在会话外使用