Azure data factory Azure数据工厂-在存储过程活动中使用SQL查询内部联接表

Azure data factory Azure数据工厂-在存储过程活动中使用SQL查询内部联接表,azure-data-factory,azure-sql,Azure Data Factory,Azure Sql,情况: 我有两个数据库DB1和DB2。DB1有9个表(在这9个表中,任何一个表都可以只更新一列来跟踪更改,即时间戳列) 现在,我尝试使用Azure Data Factory将这9个表中的更新/新记录从DB1带到DB2(DB1中的每个表映射到DB2中的一个表),然后在DB2中的表上运行我的最终查询。我只有DB1上的读取权限 逻辑: 使用UNION查找在这9个表中更新/插入的ID集 内部将UNION查询的结果分别与9个表中的每个表连接起来 联合查询示例: SELECT DISTINCT idcolu

情况:

我有两个数据库DB1和DB2。DB1有9个表(在这9个表中,任何一个表都可以只更新一列来跟踪更改,即时间戳列)

现在,我尝试使用Azure Data Factory将这9个表中的更新/新记录从DB1带到DB2(DB1中的每个表映射到DB2中的一个表),然后在DB2中的表上运行我的最终查询。我只有DB1上的读取权限

逻辑:

  • 使用UNION查找在这9个表中更新/插入的ID集
  • 内部将UNION查询的结果分别与9个表中的每个表连接起来
  • 联合查询示例:

    SELECT DISTINCT idcolumn 
    FROM table1
    WHERE TIME_STAMP BETWEEN '2020-11-06T13:14:13.807Z' AND  '2020-11-07T13:14:13.807Z' 
    
    UNION 
    
    SELECT DISTINCT idcolumn 
    FROM table2
    WHERE TIME_STAMP BETWEEN '2020-11-06T13:14:13.807Z' AND  '2020-11-07T13:14:13.807Z'
    
    UNION 
    
    SELECT DISTINCT idcolumn 
    FROM table3
    WHERE TIME_STAMP BETWEEN '2020-11-06T13:14:13.807Z' AND  '2020-11-07T13:14:13.807Z'
    
    UNION 
        
    SELECT DISTINCT idcolumn 
    FROM table4
    WHERE TIME_STAMP BETWEEN '2020-11-06T13:14:13.807Z' AND  '2020-11-07T13:14:13.807Z' 
    
    其他5张表也是如此

    问题:

    在ADF中是否有一种方法可以让我只找到一次联合查询结果,然后一次性将结果数据与所有9个表连接起来,而不是在9个不同的复制活动中对每个表运行9次联合查询?

    您可以使用。比如说,

  • 创建源1:运行查询以获取源数据集
  • 创建源代码2
  • 添加一个连接到源1和源2
  • 以下是数据流概述:


    仅在ADF管道中激活复制是不可能的。我们无法将A Copy active source连接到B Copy active的source。

    您的问题不清楚,9个表在哪里,都在DB1中?你是怎么拿到身份证的?如果表不是全部在DB1中,并且您只有DB1上的读取权限,则无法在DB2中读取数据。请检查,我已更新了问题是的,您可以在数据流中执行此操作。数据流源支持查询,并且连接处于活动状态。仅复制处于活动状态是不可能的。这个问题已经被其他人解决了。你需要我把我的评论作为答案吗?我会尝试重新打开它。嗨@Prashant Babber,你的问题现在重新打开了。如果我的答案对你有帮助,希望你能接受它作为答案(点击答案旁边的复选标记,将其从灰色变为填充)。这可能对其他社区成员有益。非常感谢。