【问题标题】:Dynamically pass table name in Lookup and For Each activity in ADF在 ADF 中的 Lookup 和 For Each 活动中动态传递表名
【发布时间】:2020-05-24 10:39:32
【问题描述】:

我需要使用 ADF 创建一个解决方案来比较 Azure SQL Server 上的开发和生产环境(所有表)(对于开发和生产环境不同)并突出显示表的差异。 我正在使用 sys.objects 读取查找活动(第一个查找活动)中所有表的列表,然后将每个表名传递给 ForEach 活动,其中第二个查找转换将在 Prod & Dev 环境中读取该表的记录计数并比较记录在他们之间计数,最后执行一些活动。 我想知道如何将 First Lookup 活动中读取的每个表名传递给 ForEach 循环内的第二个查找活动?

例如。外部查找活动读取表 A、B、C、D 并在 ForEach 中一次传递每个表名,其中另一个查找将在 Prod 和 Dev 环境中执行类似于以下查询的内容:

Select count(*) from A ---in first iteration
then Select count(*) from B ---in second iteration
Select count(*) from C ---in third iteration and so on.

【问题讨论】:

    标签: azure azure-sql-database azure-data-factory


    【解决方案1】:

    正如你所说,你的第一层应该是这样的:

    例如 Look Up Activity 预览数据如下:

    ForEach Activity的配置:

    那么 ForEach Activity 中的第二个 Look Up Activity 应该配置如下:

    查询sql:

    @concat('select count(*) from ', item())
    

    如果你有更多的嵌套需求,你可以做同样的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 2016-05-21
      • 1970-01-01
      • 2020-03-15
      相关资源
      最近更新 更多