다음을 통해 공유


Azure Data Factory 및 Azure Synapse Analytics에서 파이프라인 반환 값 설정

적용 대상: Azure Data Factory Azure Synapse Analytics

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

호출 파이프라인-자식 파이프라인 패러다임에서 변수 설정 작업을 사용하여 자식 파이프라인에서 호출 파이프라인으로 값을 반환할 수 있습니다. 다음 시나리오에서는 파이프라인 실행 작업을 통한 자식 파이프라인이 있습니다. 또한 자식 파이프라인에서 정보를 검색한 다음 호출 파이프라인에서 사용하려고 합니다.

ExecutePipeline 작업을 보여 주는 스크린샷.

자식 파이프라인과 부모 파이프라인 간의 통신을 허용하는 키 값 쌍의 사전인 파이프라인 반환 값을 도입합니다.

필수 조건 - 자식 파이프라인 호출

필수 조건으로서 디자인에는 자식 파이프라인을 호출하는 파이프라인 실행 작업이 필요하며, 작업에서 완료 시 대기를 사용하도록 설정해야 합니다.

완료될 때까지 기다리도록 ExecutePipeline 작업을 설정하는 스크린샷.

자식 파이프라인에서 파이프라인 반환 값 구성

시스템 변수 파이프라인 반환 값을 포함하도록 변수 설정 작업을 확장했습니다. 파이프라인 수준에서 정의할 필요가 없습니다(파이프라인에서 사용하는 다른 변수와는 상반됨).

  1. 파이프라인 작업 창에서 변수 설정을 검색하고 변수 설정 작업을 파이프라인 캔버스로 드래그합니다.
  2. 아직 선택하지 않은 경우 캔버스에서 변수 설정 작업을 선택하고 세부 정보를 편집하려면 변수 탭을 선택합니다.
  3. 변수 형식에 대한 파이프라인 반환 값을 선택합니다.
  4. 새로 만들기를 선택하여 새 키 값 쌍을 추가합니다.
  5. 추가할 수 있는 키-값 쌍의 수는 반환된 JSON의 크기 한도(4MB)로만 제한됩니다.

파이프라인 반환 값이 표시된 UI를 보여 주는 스크린샷.

값 형식에는 다음과 같은 몇 가지 옵션이 있습니다.

형식 이름 설명
문자열 상수 문자열 값입니다. 예: ‘ADF는 굉장하다’
이를 통해 이전 작업의 출력을 참조할 수 있습니다. 여기에서 문자열 보간을 사용하여 인라인 식 값(예: "The value is @{guid()}")을 포함할 수 있습니다.
Array 문자열 값의 배열이 예상됩니다. 배열의 값을 구분하려면 “enter” 키를 누릅니다.
부울 True 또는 False
Null 신호 자리 표시자 상태, 값은 상수 null입니다.
정수 정수 형식의 숫자 값입니다. 예: 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으로 정보를 검색할 수 있습니다. 사용 사례는 무한합니다. 예를 들어 다음을 사용할 수 있습니다.

  • 대기 활동의 대기 기간을 정의하는 자식 파이프라인의 int 값입니다.
  • 웹 활동의 URL을 정의하는 문자열 값입니다.
  • 로깅을 위한 스크립트 작업expression 값 페이로드

호출 파이프라인을 보여 주는 스크린샷.

파이프라인 반환 값을 참조하는 데는 두 가지 눈에 띄는 설명선이 있습니다.

  1. 개체 형식을 사용하면 @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey와 같은 중첩된 json 개체로 더 확장할 수 있습니다.
  2. 배열 형식을 사용하면 @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]을 사용하여 목록에서 인덱스를 지정할 수 있습니다. 인덱싱된 숫자가 0이면 0으로 시작한다는 뜻입니다.

참고 항목

참조하는 keyName이 자식 파이프라인에 있는지 확인하세요. ADF 식 작성기에서는 참조 검사를 대신 확인할 수 없습니다. 참조된 키가 페이로드에 없는 경우 파이프라인이 실패합니다.

특별 고려 사항

  • 파이프라인에 여러 파이프라인 반환 값 설정 작업을 포함할 수 있지만 그 중 하나만 파이프라인에서 실행되도록 하는 것이 중요합니다.

    파이프라인 반환 값 및 분기 스크린샷.

    호출 파이프라인에서 이전에 설명한 누락된 키 문제를 방지하려면 자식 파이프라인의 모든 분기에 대해 동일한 키 목록을 사용하는 것이 좋습니다. 특정 분기에서 값이 없는 키에는 null 형식을 사용하는 것이 좋습니다.

  • Azure Data Factory 식 언어는 인라인 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), '"',
        '}'
      )
    }
    

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