Фабрика данных Azure — значение поиска для выбора инструкции в задаче копирования для каждого

#azure #azure-data-factory

#лазурь #azure-фабрика данных

Вопрос:

У меня есть поток данных, который выполняет следующее:

Установка даты на сегодняgt;Копировать из API во временную таблицуgt;gt;Идентификатор поиска в исходной таблицеgt;gt;gt;Идентификатор поиска во временной таблице по исходной таблице для передачи только значений дедупликацииgt;gt;gt;gt;Для каждого идентификатора, прошедшего проверку дедупликацииgt;gt;gt;gt;gt;Задача копирования в ForEach, которая последовательно выбирает каждый идентификатор из второго поиска и сохраняет данные API в SQL Azure.

У меня работает вся моя логика, за исключением последней задачи-использовать оператор select = для идентификатора поиска DeDupe:

Общий конвейер данных

Каждое передаваемое значение

Задача копирования в каждой сборке текущего элемента

Ввод для задачи копирования каждой последовательности

Вывод для задачи копирования каждой последовательности

Обратите внимание, что на последних изображениях входные данные генерируют имя столбца вместо простого значения в инструкции SQL. Как мне предотвратить это, чтобы я мог передать в инструкцию SQL только значение, которое уже определено в литералах? Идея здесь состоит в том, чтобы выводить значения при каждом запуске, так как это будет написано по сценарию для поиска данных о резервировании в будущем.

Ответ №1:

Добавьте имя столбца вместе с текущим элементом в действие копирования, например @item().UID , и используйте concat() функцию для объединения текущего элемента со строковым значением, как показано ниже.

Вывод поиска:

введите описание изображения здесь

Копирование запроса источника активности данных внутри действия ForEach:

@concat('select * from tb1 where id = ',item().id)

введите описание изображения здесь

Копирование входных данных источника данных:

введите описание изображения здесь