이 가이드에서는 Fabric의 Data Factory 파이프라인에서 매개 변수를 사용하는 방법을 보여 줍니다. 워크플로를 보다 유연하고 관리하기 쉽게 만드는 간단한 방법입니다.
패브릭의 Data Factory에 대한 파이프라인에서 매개 변수, 식 및 함수를 사용하는 방법
이 가이드에서는 명확한 예제를 사용하여 Fabric용 Data Factory에서 매개 변수가 있는 파이프라인을 만드는 기본 사항을 안내합니다. 매개 변수 및 동적 식을 사용하면 많은 시간을 절약하고 유연한 ETL(추출, 변환, 로드) 또는 ELT(추출, 로드, 변환) 솔루션을 빌드할 수 있습니다. 이러한 기술은 하드 코딩을 줄이고 개체 및 프로세스를 재사용하는 데 도움이 되므로 파이프라인을 더 쉽게 유지하고 새로운 기능을 더 빠르게 롤아웃할 수 있습니다.
매개 변수 및 식 개념
매개 변수를 사용하여 외부 값을 파이프라인에 전달할 수 있습니다. 매개 변수가 설정되면 실행 내내 동일하게 유지되며 변경할 수 없습니다. 매개 변수를 사용하면 매번 다른 값으로 동일한 파이프라인을 다시 사용할 수 있습니다. 자체 식 또는 식 내에서 사용할 수 있으며 파이프라인이 실행될 때 해당 값을 고정하거나 계산할 수 있습니다.
표현식은 문자열 값의 어느 부분에나 삽입될 수 있으며, 항상 또 다른 문자열 값을 반환합니다. 예를 들어 사용하는 @password경우 파이프라인은 암호를 매개 변수로 처리합니다. 값이 식인 경우 @ 을 제거하여 실제 콘텐츠를 가져옵니다. @로 시작하는 문자열이 필요한 경우 @@을 입력하여 이스케이프하면 됩니다. 다음은 실제로 작동하는 방법을 보여주는 몇 가지 예입니다.
| 매개 변수 값 | Result |
|---|---|
| "parameters" | 'parameters' 문자가 반환됩니다. |
| "parameters[1]" | 'parameters[1]' 문자가 반환됩니다. |
| "@@" | \'\@\'를 포함하는 1개 문자열이 반환됩니다. |
| " @" | ' \@\'를 포함하는 2개 문자열이 반환됩니다. |
문자열 보간이라는 기능을 사용하면 식이 @{ ... }로 묶인 문자열 내부에 나타날 수도 있습니다. 예를 들어 다음 문자열에는 매개 변수 값과 리터럴 문자열 값이 포함됩니다.
"이름: @{pipeline().parameters.firstName} 성: @{pipeline().parameters.lastName}"
문자열 보간을 사용하면 결과는 항상 문자열입니다. 예를 들어 다음과 같이 myNumber를 42로 및 myString을 foo로 정의한 경우:
| 매개 변수 값 | Result |
|---|---|
| "@pipeline().parameters.myString" |
foo을 문자열로 반환합니다. |
| "@{pipeline().parameters.myString}" |
foo을 문자열로 반환합니다. |
| "@pipeline().parameters.myNumber" |
42를 숫자로 반환합니다. |
| "@{pipeline().parameters.myNumber}" |
42를 문자열로 반환합니다. |
| 답은: @{pipeline().parameters.myNumber} |
Answer is: 42 문자열을 반환합니다. |
| “@concat(‘Answer is: ’, string(pipeline().parameters.myNumber))” |
Answer is: 42 문자열을 반환합니다. |
| 답변은: @@{pipeline().parameters.myNumber} |
Answer is: @{pipeline().parameters.myNumber} 문자열을 반환합니다. |
식에서의 매개 변수 사용 예제
매개 변수 만들기 및 사용
매개 변수를 만들려면 파이프라인 편집기 캔버스의 배경을 선택한 다음 아래쪽에 있는 속성 창의 매개 변수 탭을 선택합니다. + 새로 만들기 버튼을 선택하여 파이프라인에 새 매개 변수를 추가하고 이름, 데이터 형식 및 기본값을 지정합니다.
그런 다음 동적 콘텐츠가 지원되는 파이프라인의 아무 곳이나 매개 변수를 사용할 수 있습니다. 이 예제에서 매개 변수는 복사 작업의 속성 페이지의 원본 탭에 있는 Lakehouse 데이터 저장소의 이름을 동적으로 제공하는 데 사용됩니다.
동적 콘텐츠 추가 창이 표시되어 매개 변수, 시스템 변수, 함수 또는 파이프라인 변수를 비롯한 모든 종류의 동적 콘텐츠를 지정할 수 있습니다. 이 예제에서는 이전에 정의된 매개 변수가 선택되고 동적 콘텐츠 창이 매개 변수를 참조하는 올바른 식으로 자동으로 채워집니다.
연결을 매개 변수화하는 방법
파이프라인에서 연결을 매개 변수화하려면 동적으로 바꾸려는 연결 GUID를 사용해야 합니다.
- 파이프라인에서 연결을 동적으로 수정하려면 먼저 설정하려는 연결에 대한 GUID를 잡아야 합니다.
- 설정으로 이동 | 연결 및 게이트웨이 관리
- 연결 이름을 찾아 그 옆에 있는 점 3개를 클릭합니다.
- 설정을 선택하고 연결 ID 복사
- 문자열 매개 변수를 사용하여 동적 식에 사용할 GUID를 해당 매개 변수에 붙여넣습니다.
복합 식 예
다음 예제에서는 활동 출력의 딥 하위 필드를 참조하는 복잡한 예제를 보여 줍니다. 하위 필드로 계산되는 파이프라인 매개 변수를 참조하려면 dot(.) 연산자 대신 [] 구문을 사용합니다(subfield1 및 subfield2와 같이).
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
동적 콘텐츠 편집기
편집을 마치면 동적 콘텐츠 편집기가 콘텐츠에서 문자를 자동으로 이스케이프합니다. 예를 들어 콘텐츠 편집기의 다음 콘텐츠는 식 함수를 사용하는 문자열 보간입니다.
@{toUpper('myData')}
동적 콘텐츠 편집기는 이전 콘텐츠를 다음 식으로 변환합니다.
MYDATA
함수 및 변수를 사용하여 새 식 생성
식 내에서 함수를 호출하고 변수를 사용할 수 있습니다. 다음 섹션에서는 식에서 사용할 수 있는 함수에 대한 정보를 제공합니다.
파이프라인 범위 변수
이러한 시스템 변수는 파이프라인 JSON의 어디에서나 참조할 수 있습니다.
| 변수 이름 | Description |
|---|---|
| @pipeline().DataFactory | 파이프라인 실행이 진행 중인 데이터 또는 Synapse 작업 영역의 이름 |
| @pipeline().Pipeline | 파이프라인 이름입니다. |
| @pipeline().RunId | 특정 파이프라인의 실행 ID |
| @pipeline().TriggerId | 파이프라인을 호출한 트리거 ID |
| @pipeline().TriggerName | 파이프라인을 호출한 트리거 이름 |
| @pipeline().TriggerTime | 파이프라인을 호출한 트리거 실행 시간. 이는 트리거가 파이프라인 실행을 실제로 실행한 시간이며, 트리거가 예약된 시간과는 약간 다를 수 있습니다. |
| @pipeline().GroupId | 파이프라인 실행이 속한 그룹의 ID입니다. Microsoft Fabric에서 '그룹'은 함께 관리할 수 있는 관련 리소스 컬렉션을 나타냅니다. 그룹은 리소스에 대한 액세스를 구성하고 제어하는 데 사용되므로 여러 파이프라인에서 사용 권한을 보다 쉽게 관리하고 활동을 모니터링할 수 있습니다. |
| @pipeline()?.파이프라인이름에 의해 트리거됨 | 파이프라인 실행을 트리거하는 파이프라인의 이름입니다. ExecutePipeline 활동에 의해 파이프라인 실행이 트리거될 때 적용됩니다. 다른 상황에서 사용하는 경우 Null로 평가합니다. @pipeline() 뒤에 물음표가 있습니다. |
| @pipeline()?.파이프라인 실행 ID에 의해 트리거됨 | 파이프라인 실행을 트리거하는 파이프라인의 실행 ID입니다. ExecutePipeline 활동에 의해 파이프라인 실행이 트리거될 때 적용됩니다. 다른 상황에서 사용하는 경우 Null로 평가합니다. @pipeline() 뒤에 물음표가 있습니다. |
Note
트리거 관련 날짜/시간 시스템 변수(파이프라인 및 트리거 범위 모두에서)는 ISO 8601 형식으로 UTC 날짜를 반환합니다(예: 2017-06-01T22:20:00.4061448Z).
문자열 함수
문자열로 작업하려면 이러한 문자열 함수 및 일부 컬렉션 함수도 사용할 수 있습니다. 문자열 함수는 문자열에서만 작동합니다.
| string 함수 | Task |
|---|---|
| concat | 둘 이상의 문자열을 결합하고 결합된 문자열을 반환합니다. |
| endsWith | 문자열이 지정된 하위 문자열로 끝나는지 여부를 확인합니다. |
| guid | 전역적으로 고유한 식별자(GUID)를 문자열로 생성합니다. |
| indexOf | 하위 문자열에 대한 시작 위치를 반환합니다. |
| lastIndexOf | 마지막으로 나오는 부분 문자열의 시작 위치를 반환합니다. |
| replace | 하위 문자열을 지정된 문자열로 바꾸고 업데이트된 문자열을 반환합니다. |
| split | 원래 문자열에 지정된 구분 기호 문자를 기준으로 하여 더 큰 문자열의 하위 문자열을 포함하는 배열(쉼표로 구분됨)을 반환합니다. |
| startsWith | 문자열이 특정 하위 문자열로 시작하는지 검사합니다. |
| substring | 지정된 위치에서 시작하여 문자열에서 문자를 반환합니다. |
| toLower | 문자열을 소문자 형식으로 반환합니다. |
| toUpper | 문자열을 대문자 형식으로 반환합니다. |
| trim | 문자열에서 선행 및 후행 공백을 제거하고 업데이트된 문자열을 반환합니다. |
컬렉션 기능
컬렉션, 일반적으로 배열, 문자열 및 경우에 따라 사전으로 작업하려면 이러한 컬렉션 함수를 사용할 수 있습니다.
| 컬렉션 함수 | Task |
|---|---|
| contains | 컬렉션에 특정 항목이 있는지 검사합니다. |
| empty | 컬렉션이 비어 있는지 검사합니다. |
| first | 컬렉션에서 첫 번째 항목을 반환합니다. |
| intersection | 지정한 컬렉션에서 공통 항목만 있는 컬렉션을 반환합니다. |
| join | 지정된 문자로 구분되는 배열에서 모든 항목이 들어 있는 문자열을 반환합니다. |
| last | 컬렉션에서 마지막 항목을 반환합니다. |
| length | 문자열 또는 배열에서 항목 수를 반환합니다. |
| skip | 컬렉션 앞의 항목을 제거하고 다른 모든 항목을 반환합니다. |
| take | 컬렉션 앞에서 항목을 반환합니다. |
| union | 지정한 컬렉션에서 모든 항목이 있는 컬렉션을 반환합니다. |
논리 함수
이 함수는 조건 내에서 유용하며 논리의 형식을 평가하는 데 사용할 수 있습니다.
| 논리 비교 함수 | Task |
|---|---|
| and | 모든 식이 true인지 확인합니다. |
| equals | 두 값이 동일한지 확인합니다. |
| greater | 첫 번째 값이 두 번째 값보다 큰지 검사합니다. |
| greaterOrEquals | 첫 번째 값이 두 번째 값보다 크거나 같은지 검사합니다. |
| if | 식이 true인지 또는 false인지 검사합니다. 결과에 기반해 지정한 값을 반환합니다. |
| less | 첫 번째 값이 두 번째 값보다 작은지 검사합니다. |
| lessOrEquals | 첫 번째 값이 두 번째 값보다 작거나 같은지 검사합니다. |
| not | 식이 false인지 검사합니다. |
| or | 최소 하나의 식이 true인지 검사합니다. |
변환 함수
이 함수는 언어의 각 기본 형식 간에 변환하는 데 사용됩니다.
- string
- integer
- float
- boolean
- arrays
- dictionaries
| 변환 함수 | Task |
|---|---|
| array | 단일 지정 입력에서 배열을 반환합니다. 여러 입력의 경우 createArray를 참조합니다. |
| base64 | 문자열에 대한 base64로 인코딩된 버전을 반환합니다. |
| base64ToBinary | Base64로 인코딩된 문자열에 대한 이진 버전을 반환합니다. |
| base64ToString | Base64로 인코딩된 문자열에 대한 문자열 버전을 반환합니다. |
| binary | 입력 값에 대한 이진 버전을 반환합니다. |
| bool | 입력 값에 대한 부울 버전을 반환합니다. |
| coalesce | 하나 이상의 매개 변수에서 Null이 아닌 첫 번째 값을 반환합니다. |
| createArray | 여러 입력에서 배열을 반환합니다. |
| dataUri | 입력 값에 대한 데이터 URI를 반환합니다. |
| dataUriToBinary | 데이터 URI에 대한 이진 버전을 반환합니다. |
| dataUriToString | 데이터 URI에 대한 문자열 버전을 반환합니다. |
| decodeBase64 | Base64로 인코딩된 문자열에 대한 문자열 버전을 반환합니다. |
| decodeDataUri | 데이터 URI에 대한 이진 버전을 반환합니다. |
| decodeUriComponent | 디코딩된 버전으로 이스케이프 문자를 바꾸는 문자열을 반환합니다. |
| encodeUriComponent | URL 안전하지 않은 문자를 이스케이프 문자로 대체하는 문자열을 반환합니다. |
| float | 입력 값에 대해 부동 소수점 숫자를 반환합니다. |
| int | 문자열에 대한 정수 버전을 반환합니다. |
| json | JSON(JavaScript Object Notation) 형식 값 또는 문자열이나 XML에 대한 개체를 반환합니다. |
| string | 입력 값에 대한 문자열 버전을 반환합니다. |
| uriComponent | 이스케이프 문자로 URL 안전하지 않은 문자를 대체하여 입력 값에 대한 URI로 인코딩된 버전을 반환합니다. |
| uriComponentToBinary | URI로 인코딩된 문자열에 대한 이진 버전을 반환합니다. |
| uriComponentToString | URI로 인코딩된 문자열에 대한 문자열 버전을 반환합니다. |
| xml | 문자열에 대한 XML 버전을 반환합니다. |
| xpath | XPath(XML 경로 언어) 식과 일치하는 노드 또는 값에 대한 XML을 확인하고 일치하는 노드 또는 값을 반환합니다. |
수식 함수
이 함수는 integers 및 floats의 숫자 형식에 사용할 수 있습니다.
| 수식 함수 | Task |
|---|---|
| add | 두 숫자를 더한 결과를 반환합니다. |
| div | 두 숫자를 나눈 결과를 반환합니다. |
| max | 숫자 또는 배열 집합에서 가장 높은 값을 반환합니다. |
| min | 숫자 또는 배열 집합에서 가장 낮은 값을 반환합니다. |
| mod | 두 숫자를 나눈 나머지를 반환합니다. |
| mul | 두 숫자를 곱한 결과를 반환합니다. |
| rand | 지정된 범위에서 임의의 정수를 반환합니다. |
| range | 지정한 정수에서 시작하는 정수 배열을 반환합니다. |
| sub | 첫 번째 숫자에서 두 번째 숫자를 뺀 결과를 반환합니다. |
날짜 함수
| 날짜 또는 시간 함수 | Task |
|---|---|
| addDays | 타임스탬프에 일 수를 더합니다. |
| addHours | 타임스탬프에 시간 수를 더합니다. |
| addMinutes | 타임스탬프에 분 수를 더합니다. |
| addSeconds | 타임스탬프에 초 수를 더합니다. |
| addToTime | 타임스탬프에 시간 단위 수를 더합니다. getFutureTime도 참조합니다. |
| convertFromUtc | UTC(Universal Time Coordinated)의 타임스탬프를 대상 표준 시간대로 변환합니다. |
| convertTimeZone | 원본 표준 시간대의 타임스탬프를 대상 표준 시간대로 변환합니다. |
| convertToUtc | 원본 표준 시간대의 타임스탬프를 UTC(Universal Time Coordinated)로 변환합니다. |
| dayOfMonth | 타임 스탬프에서 월 구성 요소인 날짜를 반환합니다. |
| dayOfWeek | 타임 스탬프에서 주 구성 요소인 날짜를 반환합니다. |
| dayOfYear | 타임 스탬프에서 연 구성 요소인 날짜를 반환합니다. |
| formatDateTime | 타임스탬프를 선택적 형식의 문자열로 반환합니다. |
| getFutureTime | 지정한 시간 단위를 더한 현재 타임스탬프를 반환합니다. addToTime도 참조합니다. |
| getPastTime | 지정한 시간 단위를 뺀 현재 타임스탬프를 반환합니다. subtractFromTime도 참조합니다. |
| startOfDay | 타임스탬프에 대한 날의 시작을 반환합니다. |
| startOfHour | 타임스탬프에 대한 시간의 시작을 반환합니다. |
| startOfMonth | 타임스탬프에 대한 월의 시작을 반환합니다. |
| subtractFromTime | 타임스탬프에서 시간 단위 수를 뺍니다. getPastTime도 함께 참조하세요. |
| ticks | 지정한 타임스탬프에 대한 ticks 속성 값을 반환합니다. |
| utcNow | 현재 타임스탬프를 문자열로 반환합니다. |