Поделиться через


Установка возвращаемого значения конвейера в Фабрика данных Azure и Azure Synapse Analytics

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В парадигме вызова дочернего конвейера можно использовать действие Set Variable для возврата значений из дочернего конвейера в вызывающий конвейер. В следующем сценарии у нас есть дочерний конвейер с помощью действия выполнения конвейера. И мы хотим получить информацию из дочернего конвейера, а затем использовать в вызывающем конвейере.

Снимок экрана: действие ExecutePipeline.

Введите возвращаемое значение конвейера, словарь пар значений ключей, который позволяет обмен данными между дочерними конвейерами и родительским конвейером.

Предварительные требования. Вызов дочернего конвейера

В качестве предварительных условий конструктору требуется действие execute Pipeline, вызывающее дочерний конвейер, с включенным ожиданием завершения для действия.

Снимок экрана: задание действия ExecutePipeline для ожидания завершения.

Настройка возвращаемого значения конвейера в дочернем конвейере

Мы расширили действие Set Variable, чтобы включить возвращаемое значение конвейера системных переменных. Их не нужно определять на уровне конвейера (в отличие от других переменных, используемых в конвейере).

  1. Выполните поиск элемента Set Variable на панели действий конвейера и перетащите действие Set Variable на холст конвейера.
  2. Выберите действие "Задать переменную" на холсте, если оно еще не выбрано, а затем вкладка "Переменные" для изменения сведений .
  3. Выберите возвращаемое значение конвейера для типа переменной.
  4. Выберите "Создать" , чтобы добавить новую пару значений ключа.
  5. Количество пар "ключ-значение", которые можно добавить, ограничено только ограничением размера возвращаемого JSON (4 МБ).

Снимок экрана: пользовательский интерфейс для возвращаемого значения конвейера.

Существует несколько вариантов для типов значений, включая

Тип Имя Description
Строка Константное строковое значение. например: "ADF является удивительным"
Expression Он позволяет ссылаться на выходные данные из предыдущих действий. Интерполяция строк можно использовать здесь для включения значений строковых выражений, таких как "The value is @{guid()}".
Массив Он ожидает массив строковых значений. Нажмите клавишу ВВОД, чтобы разделить значения в массиве
Логический True или False
Null Состояние владельца места сигнала; Значение равно константе NULL
Int Числовое значение целочисленного типа. Например: 42
Тип с плавающей запятой Числовое значение типа float. Например: 2.71828
Object Предупреждать только сложные варианты использования. Он позволяет внедрить список пар "ключевое значение" для значения.

Значение типа объекта определяется следующим образом:

[{"key": "myKey1", "value": {"type": "String", "content": "hello world"}}, 
 {"key": "myKey2", "value": {"type": "String", "content": "hi"}}
]

Получение значения при вызове конвейера

Возвращаемое значение конвейера дочернего конвейера становится выходным результатом действия «Выполнение действия конвейера». Вы можете получить сведения с помощью @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. Вариант использования ограничен. Например, можно использовать

Снимок экрана: вызывающий конвейер.

При ссылке на возвращаемые значения конвейера есть два заметных выноски.

  1. С помощью типа объекта можно дополнительно развернуть в вложенный объект JSON, например @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
  2. С помощью типа массива можно указать индекс в списке с помощью @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 будет:

    @{
      concat(
        '{',
        '"datetime": "', utcnow(), '", ',
        '"date": "', substring(utcnow(),0,10), '", ',
        '"year": "', substring(utcnow(),0,4), '", ',
        '"month": "', substring(utcnow(),5,2), '", ',
        '"day": "', substring(utcnow(),8,2), '"',
        '}'
      )
    }
    

Узнайте еще об одном действии с потоком контроля: