Azure Data Factory 및 Azure Synapse Analytics 변수 작업 설정

적용 대상: Azure Data Factory Azure Synapse Analytics

기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!

변수 설정 작업을 사용하여 Data Factory 또는 Synapse 파이프라인에 정의된 String, Bool 또는 Array 형식의 기존 변수 값을 설정하거나 변수 설정 작업을 사용하여 파이프라인 반환 값(미리 보기)을 설정합니다.

UI를 사용하여 변수 설정 작업 만들기

파이프라인에서 변수 설정 작업을 사용하려면 다음 단계를 완료합니다.

  1. 파이프라인 캔버스의 백그라운드를 선택하고 변수 탭을 사용하여 변수를 추가합니다.

Screenshot of an empty pipeline canvas with the Variables tab selected with an array type variable named TestVariable.

  1. 파이프라인 작업 창에서 변수 설정을 검색하고 변수 설정 작업을 파이프라인 캔버스로 드래그합니다.

  2. 아직 선택하지 않은 경우 캔버스에서 변수 설정 작업을 선택한 다음, 설정 탭을 선택하여 해당 세부 정보를 편집합니다.

  3. 변수 형식에 대해 파이프라인 변수를 선택합니다.

  4. Name 속성에 대한 변수를 선택합니다.

  5. 변수 값을 설정하는 식을 입력합니다. 이 식은 리터럴 문자열 식이거나 동적 식, 함수, 시스템 변수 또는 다른 작업의 출력의 조합일 수 있습니다.

Screenshot of the UI for a Set variable activity.

UI를 사용하여 파이프라인 반환 값 설정

다음 시나리오에서는 자식 파이프라인에서 호출 파이프라인으로 통신할 수 있도록 파이프라인 반환 값이라는 특수 시스템 변수를 포함하도록 변수 설정 작업을 확장했습니다.

변수를 사용하기 전에 정의할 필요가 없습니다. 자세한 내용은 파이프라인 반환 값을 참조하세요.

Screenshot with ExecutePipeline Activity.

형식 속성

속성 설명 필수
name 파이프라인의 작업 이름
description 작업이 어떤 일을 수행하는지 설명하는 텍스트 아니요
type SetVariable로 설정해야 합니다.
variableName 이 작업에 의해 설정된 변수의 이름
value 변수가 할당된 문자열 리터럴 또는 식 개체 값

변수 증분

변수와 관련된 일반적인 시나리오는 Until 또는 ForEach 활동 내에서 변수를 반복기로 사용하는 것입니다. 변수 설정 작업에서는 value 필드에 설정 중인 변수를 참조할 수 없습니다. 즉, 자체 참조는 없습니다. 이 제한을 해결하려면 임시 변수를 설정한 다음, 두 번째 변수 설정 작업을 만듭니다. 두 번째 변수 설정 작업은 반복기의 값을 임시 변수로 설정합니다. 이 패턴의 예제는 다음과 같습니다.

  • 먼저 두 개의 변수를 정의합니다. 하나는 반복기에 대한 변수이고 다른 하나는 임시 스토리지용입니다.

Screenshot shows defining variables.

  • 그런 다음 두 가지 작업을 사용하여 값을 증분합니다.

Screenshot shows increment variable.

{
    "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 작업 내에서 값이 수정되는 경우 원치 않는 동작이 발생할 수 있습니다.

관련 제어 흐름 작업에 대해 알아봅니다.