Как управлять фабрикой данных Azure на основе значений SQL Server - PullRequest
0 голосов
/ 17 марта 2019

У меня есть одна настройка конвейера в фабрике данных Azure, в которой есть настройка переменной конвейера, которая называется MonthsBack, скажем, 12 по умолчанию. В цикле До я создаю инструкцию SQL, которая использует эту переменную MonthsBack для генерации инструкции SQL, и в цикле она также уменьшает значение на 1 и добавляет эти операторы SQL в другую переменную коллекции. После запуска блока До у меня есть массив с 12 операторами SQL, который затем используется в блоке ForEach для выполнения этих 12 операторов и динамического создания 12 файлов, которые хранятся в озере данных. Все это прекрасно работает и делает именно то, что я хочу сделать.

Теперь у меня есть новое требование, в котором вместо 12 операторов SQL я хочу установить переменную MonthsBack равной некоторому значению в базе данных SQL, поэтому в идеале я бы создал новый DataSet, который бы выполнял запрос и получить это значение из базы данных, а затем использовать его для установки значения по умолчанию для базы данных MonthsBack. Кажется, я не могу понять, как этого добиться с помощью поставленных задач.

Я знаю, что видел на панели «Динамическое содержимое» способ ссылки на результат предыдущего задания, но не могу вспомнить, как я до этого дошел. Может кто-нибудь сказать мне или указать мне правильную документацию о том, как это сделать. Спасибо

1 Ответ

1 голос
/ 19 марта 2019

То, что вы хотите сделать, достижимо с помощью действия «Уточняющий запрос» и захвата его вывода с помощью действия «Задать переменную».

В операции поиска выберите любой набор данных из базы данных, которую вы хотите, затем нажмите «запрос» и напишите запрос, который приносит желаемое значение, я приведу пример:

select Max(Id) as Var1 from dbo.YourTable

Затем в задании «Задать переменную» вы можете записать вывод действия «Уточняющий запрос» примерно так:

@activity('LookupActivityName').output.firstRow.Var1

Обратите внимание, что я использовал Var1 как для запроса (при поиске), так и для динамического содержимого (для переменной set).

После этого для переменной будет задано требуемое значение из базы данных.

Link the set variable after the Lookup

Надеюсь, это помогло!

Ссылка на документацию по функциям и выражениям фабрики данных: https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions

...