如何解决Azure数据工厂-在存储过程活动内部使用SQL查询内部联接表
情况:
我有两个数据库DB1和DB2。 DB1有9个表(在这9个表中,任何一个表都可以仅更新列以跟踪更改,即TIME_STAMP列)。
现在,我尝试使用Azure数据工厂仅将这9个表中的已更新/新记录从DB1引入DB2(DB1中的每个表都映射到DB2中的一个表),然后对DB2中的表运行最终查询。我只有DB1的读取权限。
逻辑:
- 使用已在这9个表中更新/插入的UNION查找ID的集合
- 分别将9个表中的每个表与UNION查询的内部联接
联合查询示例:
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次?
解决方法
您可以使用Data Flow来实现。例如,
- 创建源1:运行查询以获取源数据集。
- 创建源2。
- 添加Join active与源1和源2相连。
只有在ADF管道中激活了“复制”,这是不可能的。我们无法将A Copy active源加入B copy active源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。