Фабрика данных Azure - внутреннее присоединение к таблице с помощью SQL-запроса внутри активности хранимой процедуры

Ситуация:

У меня две базы данных DB1 и DB2. DB1 имеет 9 таблиц (из этих 9 любая из таблиц может обновляться только с помощью столбца для отслеживания этого изменения, то есть столбца TIME_STAMP).

Теперь я пытаюсь перенести только обновленные / новые записи из этих 9 таблиц из DB1 в DB2 (каждая таблица в DB1 сопоставляется с одной таблицей в DB2) с помощью фабрики данных Azure, а затем выполнить свой последний запрос к таблицам в DB2. У меня есть доступ только для чтения на DB1.

Логика:

  1. Найдите набор идентификаторов с помощью UNION, который был обновлен / вставлен в эти 9 таблиц.
  2. Внутреннее соединение результата запроса UNION с каждой из 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 различных действиях копирования?

1 ответ

Решение

Вы можете добиться этого с помощью потока данных. Например,

  1. Создать источник 1: запустите запрос, чтобы получить исходный набор данных.
  2. Создать источник 2.
  3. Добавьте активное соединение, чтобы присоединиться к источнику 1 и источнику 2.

Вот обзор потока данных:

Просто с активным копированием в конвейере ADF это невозможно. Мы не можем присоединить активный источник A Copy к источнику B copy active.

Другие вопросы по тегам