Azure 数据工厂 - 在存储过程 activity 内部加入 table 和 SQL 查询
Azure Data Factory - Inner join a table with a SQL query inside stored procedure activity
情况:
我有两个数据库 DB1 和 DB2。 DB1 有 9 个 tables(在这 9 个中,任何 tables 都可以更新为仅跟踪该更改的列,即 TIME_STAMP 列)。
现在我试图将这 9 个 table 中的 Updated/New 记录从 DB1 带到 DB2(DB1 中的每个 table 映射到一个 table DB2) 使用 Azure 数据工厂,然后 运行 我对 DB2 中 table 的最终查询。我只有对 DB1 的读取权限。
逻辑:
- 在这9table
中使用UNION找到得到updated/inserted的Id集合
- 将 UNION 查询的结果分别与 9 个 table 中的每一个
联合查询示例:
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 个 table 也是如此。
问题:
在 ADF 中有没有一种方法可以让我只找到联合查询结果一次,然后一次性将结果数据与所有 9 个 table 连接起来,而不是 运行ning联合查询 9 次,每个 table 在 9 个不同的副本 activity?
您可以通过 Data Flow 实现。例如,
- 创建源 1:运行 获取源数据集的查询。
- 创建源 2。
- 添加 Join active 以加入源 1 和源 2。
以下是数据流概览:
只要在 ADF 管道中启用复制,这是不可能的。我们无法将 A Copy active 源连接到 B copy active 的源。
情况:
我有两个数据库 DB1 和 DB2。 DB1 有 9 个 tables(在这 9 个中,任何 tables 都可以更新为仅跟踪该更改的列,即 TIME_STAMP 列)。
现在我试图将这 9 个 table 中的 Updated/New 记录从 DB1 带到 DB2(DB1 中的每个 table 映射到一个 table DB2) 使用 Azure 数据工厂,然后 运行 我对 DB2 中 table 的最终查询。我只有对 DB1 的读取权限。
逻辑:
- 在这9table 中使用UNION找到得到updated/inserted的Id集合
- 将 UNION 查询的结果分别与 9 个 table 中的每一个
联合查询示例:
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 个 table 也是如此。
问题:
在 ADF 中有没有一种方法可以让我只找到联合查询结果一次,然后一次性将结果数据与所有 9 个 table 连接起来,而不是 运行ning联合查询 9 次,每个 table 在 9 个不同的副本 activity?
您可以通过 Data Flow 实现。例如,
- 创建源 1:运行 获取源数据集的查询。
- 创建源 2。
- 添加 Join active 以加入源 1 和源 2。
以下是数据流概览:
只要在 ADF 管道中启用复制,这是不可能的。我们无法将 A Copy active 源连接到 B copy active 的源。