Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure
Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В парадигме конвейера вызова-дочернего конвейера можно использовать активность Set Variable для возврата значений из дочернего конвейера в вызывающий конвейер. В следующем сценарии присутствует дочерний конвейер через Действие выполнения конвейера. И мы стремимся получить информацию из дочернего конвейера, чтобы затем использовать ее в вызывающем конвейере.
Введите возвращаемое значение конвейера, словарь пар значений ключей, который позволяет обмен данными между дочерними конвейерами и родительским конвейером.
Предпосылка — вызов дочернего конвейера
В качестве предварительного условия к вашему проекту требуется Действие выполнения конвейера, вызывающее дочерний конвейер, с функцией ожидания завершения, включенной для действия.
Настройка значения возврата в дочернем конвейере
Мы расширили действие Set Variable, чтобы включить системные переменные Возвращаемое значение конвейера. Их не нужно определять на уровне конвейера (в отличие от других переменных, используемых в конвейере).
- Выполните поиск элемента Set Variable на панели действий конвейера и перетащите действие Set Variable на холст конвейера.
- Выберите действие "Задать переменную" на холсте, если оно еще не выбрано, а затем выберите его вкладку "Переменные", чтобы изменить сведения.
- Выберите возвращаемое значение Pipeline как тип переменной.
- Выберите "Создать" , чтобы добавить новую пару значений ключа.
- Количество пар "ключ-значение", которые можно добавить, ограничено только ограничением размера возвращаемого JSON (4 МБ).
Существует несколько вариантов для типов значений, включая
Тип Имя | Описание |
---|---|
Строка | Константное строковое значение. например: "ADF — это классно" |
Выражение | Он позволяет ссылаться на выходные данные из предыдущих действий. Здесь можно использовать интерполяцию строк для включения значений выражений, таких как "The value is @{guid()}" . |
Массив | Он ожидает массив значений типа string. Нажмите клавишу Enter, чтобы разделить значения в массиве |
Логический | Истина или Ложь |
Null | Состояние владельца места сигнала; Значение равно константе NULL |
Int | Числовое значение целочисленного типа. Например: 42 |
Тип с плавающей запятой | Числовое значение типа float. Например: 2.71828 |
Объект | Предупреждение только для сложных вариантов использования. Он позволяет внедрить список пар "ключевое значение" для значения. |
Значение типа объекта определяется следующим образом:
[{"key": "myKey1", "value": {"type": "String", "content": "hello world"}},
{"key": "myKey2", "value": {"type": "String", "content": "hi"}}
]
Извлечение значения в процессе вызова потока обработки
Возвращаемое значение конвейера дочернего конвейера становится выходным результатом действия «Выполнение действия конвейера». Вы можете получить сведения с помощью @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. Вариант использования не имеет ограничений. Например, можно использовать
- Значение int из дочернего конвейера для определения периода ожидания активности.
- Строковое значение, определяющее URL-адрес для веб-действия.
- Набор данных значения выражения для скриптовой активности, предназначенный для ведения журнала.
При ссылке на возвращаемые значения потока имеется два заметных примечания.
- С типом "Object" вы можете углубиться во вложенный JSON-объект, например, @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
- С помощью типа Array можно указать индекс в списке через @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. Число индексируется с нуля, то есть начинается с 0.
Примечание.
Убедитесь, что имя ключа , на которое вы ссылаетесь, существует в дочернем конвейере. Построитель выражений ADF не может подтвердить проверку ссылочной целостности. Конвейер завершится ошибкой, если ключ, на который он ссылается, отсутствует в данных.
Особые соображения
Хотя в конвейере можно включить несколько действий установки возвращаемого значения конвейера, важно убедиться, что в конвейере выполняется только один из них.
Чтобы избежать ранее описанной проблемы отсутствующего ключа при вызове потока данных, мы рекомендуем использовать один и тот же список ключей для всех ветвей в дочернем потоке данных. Рекомендуется использовать типы NULL для ключей, не имеющих значений, в определенной ветви.
Язык выражений Фабрика данных Azure напрямую не поддерживает встроенные объекты JSON. Вместо этого необходимо правильно объединить строки и выражения.
Например, для следующего выражения JSON:
{ "datetime": "@{utcnow()}", "date": "@{substring(utcnow(),0,10)}", "year": "@{substring(utcnow(),0,4)}", "month": "@{substring(utcnow(),5,2)}", "day": "@{substring(utcnow(),8,2)}" }
Эквивалентным будет выражение в Azure Data Factory следующее:
@{ concat( '{', '"datetime": "', utcnow(), '", ', '"date": "', substring(utcnow(),0,10), '", ', '"year": "', substring(utcnow(),0,4), '", ', '"month": "', substring(utcnow(),5,2), '", ', '"day": "', substring(utcnow(),8,2), '"', '}' ) }
Связанный контент
Узнайте больше о другой связанной активности управления потоком: