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


Настройка действия переменной в фабрике данных Azure и Azure Synapse Analytics

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

Tip

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

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

Создание действия "Задать переменную" с помощью пользовательского интерфейса

Чтобы использовать действие Set Variable в конвейере, выполните следующие действия.

  1. Выберите фон холста конвейера и используйте вкладку "Переменные", чтобы добавить переменную:

Снимок экрана пустого холста конвейера с выбранной вкладкой

  1. Найдите Set Variable в окне действий конвейера и перетащите действие Set Variable на полотно конвейера.

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

  3. Выберите переменную конвейера для типа переменной.

  4. Выберите переменную для свойства Name.

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

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

Установка возвращаемого значения потока через пользовательский интерфейс

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

Перед его использованием не нужно определять переменную. Дополнительные сведения см. в разделе «Возвращаемое значение конвейера»

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

Свойства типа

Свойство Описание Требуется
имя Имя действия в конвейере да
описание Текст, описывающий активность нет
тип Необходимо задать значение SetVariable да
variableName Имя переменной, заданной этим действием да
значение Строковый литерал или значение объекта выражения, которому назначена переменная да

Увеличение переменной

Распространенный сценарий, в котором участвует переменная, — использовать переменную в качестве итератора в действии Until или ForEach . В действии Установить переменную нельзя ссылаться на переменную, которую вы устанавливаете в поле value, то есть самореференция запрещена. Чтобы обойти это ограничение, задайте временную переменную и создайте второе действие Set переменной . Второе действие set переменной задает значение итератора временной переменной. Ниже приведен пример этого шаблона:

  • Сначала вы определяете две переменные: один для итератора и один для временного хранилища.

Снимок экрана: определение переменных.

  • Затем для увеличения значений используется два действия.

Снимок экрана показывает инкрементируемую переменную.

{
    "name": "pipeline1",
    "properties": {
        "activities": [
            {
                "name": "Increment J",
                "type": "SetVariable",
                "dependsOn": [],
                "policy": {
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "variableName": "temp_j",
                    "value": {
                        "value": "@add(variables('counter_i'),1)",
                        "type": "Expression"
                    }
                }
            },
            {
                "name": "Set I",
                "type": "SetVariable",
                "dependsOn": [
                    {
                        "activity": "Increment J",
                        "dependencyConditions": [
                            "Succeeded"
                        ]
                    }
                ],
                "policy": {
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "variableName": "counter_i",
                    "value": {
                        "value": "@variables('temp_j')",
                        "type": "Expression"
                    }
                }
            }
        ],
        "variables": {
            "counter_i": {
                "type": "Integer",
                "defaultValue": 0
            },
            "temp_j": {
                "type": "Integer",
                "defaultValue": 0
            }
        },
        "annotations": []
    }
}

Переменные имеют область видимости на уровне конвейера. Это означает, что они не являются потокобезопасными и могут вызвать непредвиденное и нежелательное поведение, если доступ к ним осуществляется в рамках действия параллельной итерации, например цикла ForEach, особенно если значение также изменяется в рамках этого действия foreach.

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