情况:
我有两个数据库 DB1 和 DB2。DB1 有 9 个表(在这 9 个表中,任何表都可以只更新列来跟踪该更改,即 TIME_STAMP 列)。
现在,我尝试使用 Azure 数据工厂仅将这 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 次?