Microsoft Fabric의 Data Factory에 대한 매개 변수

이 문서에서는 패브릭의 Data Factory에 대한 파이프라인에서 매개 변수를 사용하는 방법을 설명합니다.

패브릭의 Data Factory에 대한 파이프라인에서 매개 변수, 식 및 함수를 사용하는 방법

이 문서에서는 패브릭의 Data Factory 내에서 매개 변수가 있는 데이터 파이프라인을 만드는 기능을 살펴보기 위해 다양한 예제를 사용하여 기본 개념을 학습하는 데 중점을 두고 있습니다. 매개 변수화 및 동적 식은 엄청난 시간을 절약하고 훨씬 더 유연한 ETL(추출, 변환, 로드) 또는 ELT(추출, 로드, 변환) 솔루션을 허용하여 솔루션 기본테넌트의 비용을 크게 줄이고 기존 파이프라인에 새 기능을 구현하는 속도를 높일 수 있습니다. 이러한 이득은 매개 변수화가 하드 코딩의 양을 최소화하고 솔루션에서 재사용 가능한 개체 및 프로세스의 수를 증가하기 때문입니다.

매개 변수 및 식 개념

매개 변수를 사용하여 외부 값을 파이프라인에 전달할 수 있습니다. 매개 변수가 리소스에 전달되면 변경할 수 없습니다. 리소스를 매개 변수화하여 매번 다른 값으로 다시 사용할 수 있습니다. 매개 변수는 개별적으로 또는 식의 일부로 사용될 수 있습니다. 정의의 매개 변수 값은 런타임에 평가되는 리터럴 또는 식일 수 있습니다.

식은 문자열 값의 아무 곳에나 표시되고 항상 다른 문자열 값을 생성할 수 있습니다. 여기서 password는 식의 파이프라인 매개 변수입니다. 매개 변수 값이 식인 경우 식의 본문은 at-sign(@)을 제거하여 추출됩니다. @로 시작되는 리터럴 문자열이 필요한 경우 해당 문자열은 @@를 사용하여 이스케이프 처리해야 합니다. 다음 예제는 식의 작동 방식을 보여 줍니다.

매개 변수 값 결과
"parameters" 문자 'parameters'가 반환됩니다.
"parameters[1]" 'parameters[1]' 문자가 반환됩니다.
"@@" \'\@\'를 포함하는 1개 문자열이 반환됩니다.
" @" '@'가 포함된 2자 문자열이 반환됩니다.

식이 래핑되는 문자열 보간이라는 기능을 사용하여 문자열 내부에도 식이 나타날 수 있습니다@{ ... }. 예를 들어 다음 문자열에는 매개 변수 값과 리터럴 문자열 값이 포함됩니다.

"이름: @{pipeline().parameters.firstName} 성: @{pipeline().parameters.lastName}"

문자열 보간을 사용하면 결과는 항상 문자열입니다. 예를 들어 다음과 같이 42myStringfoo정의 myNumber 한 경우

매개 변수 값 결과
“@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 문자열을 반환합니다.
"Answer is: @@{pipeline().parameters.myNumber}" Answer is: @{pipeline().parameters.myNumber} 문자열을 반환합니다.

식에서 매개 변수를 사용하는 예제

매개 변수 만들기 및 사용

매개 변수를 만들려면 파이프라인 편집기 캔버스의 배경을 선택한 다음 아래쪽에 있는 속성 창의 매개 변수 탭을 선택합니다. + 새로 만들기 단추를 선택하여 파이프라인에 새 매개 변수를 추가하고 이름, 데이터 형식 및 기본값을 지정합니다.

Screenshot showing the Parameters editor on the properties pages for a pipeline.

그런 다음 동적 콘텐츠가 지원되는 파이프라인의 아무 곳이나 매개 변수를 사용할 수 있습니다. 이 예제에서 매개 변수는 복사 작업의 속성 페이지의 원본 탭에 있는 Lakehouse 데이터 저장소의 이름을 동적으로 제공하는 데 사용됩니다.

Screenshot showing the Source tab of a copy activity's property pages, highlighting the Add dynamic content option.

동적 콘텐츠 추가 창이 표시되어 매개 변수, 시스템 변수, 함수 또는 파이프라인 변수를 비롯한 모든 종류의 동적 콘텐츠를 지정할 수 있습니다. 이 예제에서는 이전에 정의된 매개 변수가 선택되고 동적 콘텐츠 창이 매개 변수를 참조하는 올바른 식으로 자동으로 채워집니다.

Screenshot showing the Add dynamic content window with a pipeline parameter selected.

복합 식 예제

아래 예제에서는 활동 출력의 딥 하위 필드를 참조하는 복잡한 예제를 보여 줍니다. 하위 필드로 계산되는 파이프라인 매개 변수를 참조하려면 dot(.) 연산자 대신 [] 구문을 사용합니다(subfield1 및 subfield2의 경우처럼).

@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*

동적 콘텐츠 편집기

동적 콘텐츠 편집기에서는 편집을 마치면 콘텐츠의 문자를 자동으로 이스케이프합니다. 예를 들어 콘텐츠 편집기에서 다음 콘텐츠는 식 함수를 사용한 문자열 보간입니다.

@{toUpper('myData')}

동적 콘텐츠 편집기는 위의 콘텐츠를 다음 식으로 변환합니다.

MYDATA

식에서 함수 및 변수 사용

함수를 호출하고 식 내에서 변수를 사용할 수 있습니다. 다음 섹션에서는 식에 사용할 수 있는 함수에 대한 정보를 제공합니다.

파이프라인 범위 변수

이러한 시스템 변수는 파이프라인 JSON의 어디에서나 참조할 수 있습니다.

변수 이름 설명
@pipeline().DataFactory 파이프라인 실행이 진행 중인 데이터 또는 Synapse 작업 영역의 이름
@pipeline().Pipeline 파이프라인 이름입니다.
@pipeline().RunId 특정 파이프라인의 실행 ID
@pipeline().TriggerId 파이프라인을 호출한 트리거 ID
@pipeline().TriggerName 파이프라인을 호출한 트리거의 이름
@pipeline().TriggerTime 파이프라인을 호출한 트리거 실행 시간입니다. 파이프라인 실행을 호출하기 위해 트리거 가 실제로 발생한 시간이며 트리거의 예약된 시간과 약간 다를 수 있습니다.
@pipeline().GroupId 파이프라인 실행이 속한 그룹의 ID입니다.
@pipeline()?.TriggeredByPipelineName 파이프라인 실행을 트리거하는 파이프라인의 이름입니다. 파이프라인 실행이 ExecutePipeline 활동에 의해 트리거되는 경우에 적용됩니다. 다른 상황에서 사용할 경우 Null로 평가합니다. @pipeline() 뒤에 물음표가 있습니다.
@pipeline()?.TriggeredByPipelineRunId 파이프라인 실행을 트리거하는 파이프라인의 실행 ID입니다. 파이프라인 실행이 ExecutePipeline 활동에 의해 트리거되는 경우에 적용됩니다. 다른 상황에서 사용할 경우 Null로 평가합니다. @pipeline() 뒤에 물음표가 있습니다.

참고 항목

트리거 관련 날짜/시간 시스템 변수(파이프라인 및 트리거 범위 모두)는 예를 들어 2017-06-01T22:20:00.4061448ZISO 8601 형식으로 UTC 날짜를 반환합니다.

문자열 함수

문자열을 사용하려면 이러한 문자열 함수와 일부 컬렉션 함수를 사용할 수 있습니다. 문자열 함수는 문자열에서만 작동합니다.

string 함수 작업
concat 둘 이상의 문자열을 결합하고 결합된 문자열을 반환합니다.
Endswith 문자열이 지정된 부분 문자열로 끝나는지 확인합니다.
guid GUID(Globally Unique Identifier)를 문자열로 생성합니다.
Indexof 부분 문자열의 시작 위치를 반환합니다.
Lastindexof 부분 문자열의 마지막 발생에 대한 시작 위치를 반환합니다.
replace 부분 문자열을 지정된 문자열로 바꾸고 업데이트된 문자열을 반환합니다.
split 원래 문자열의 지정된 구분 기호 문자를 기반으로 더 큰 문자열에서 쉼표로 구분된 부분 문자열이 포함된 배열을 반환합니다.
startsWith 문자열이 특정 부분 문자열로 시작하는지 확인합니다.
부분 지정된 위치에서 시작하여 문자열에서 문자를 반환합니다.
toLower 문자열을 소문자 형식으로 반환합니다.
Toupper 문자열을 대문자 형식으로 반환합니다.
트림 문자열에서 선행 및 후행 공백을 제거하고 업데이트된 문자열을 반환합니다.

컬렉션 기능

컬렉션, 일반적으로 배열, 문자열 및 경우에 따라 사전을 사용하려면 이러한 컬렉션 함수를 사용할 수 있습니다.

컬렉션 함수 작업
contains 컬렉션에 특정 항목이 있는지 확인합니다.
empty 컬렉션이 비어 있는지 확인합니다.
first 컬렉션에서 첫 번째 항목을 반환합니다.
교차로 지정된 컬렉션에서 공통 항목만 있는 컬렉션을 반환합니다.
join 배열의 모든 항목이 지정된 문자로 구분된 문자열을 반환합니다.
last 컬렉션에서 마지막 항목을 반환합니다.
length 문자열 또는 배열의 항목 수를 반환합니다.
건너뛸 컬렉션의 앞부분에 있는 항목을 제거하고 다른 모든 항목을 반환합니다.
take 컬렉션 앞부분에 있는 항목을 반환합니다.
union 지정한 컬렉션에서 모든 항목이 있는 컬렉션을 반환합니다.

논리 함수

이러한 함수는 조건 내에서 유용하며 모든 유형의 논리를 평가하는 데 사용할 수 있습니다.

논리 비교 함수 작업
and 모든 식이 true인지 확인합니다.
equals 두 값이 동일한지 확인합니다.
greater 첫 번째 값이 두 번째 값보다 큰지 검사합니다.
greaterOrEquals 첫 번째 값이 두 번째 값보다 크거나 같은지 확인합니다.
if 식이 true인지 또는 false인지 검사합니다. 결과에 따라 지정된 값을 반환합니다.
less 첫 번째 값이 두 번째 값보다 작은지 확인합니다.
lessOrEquals 첫 번째 값이 두 번째 값보다 작거나 같은지 검사합니다.
not 식이 false인지 검사합니다.
or 하나 이상의 식이 true인지 확인합니다.

변환 함수

이러한 함수는 언어의 각 네이티브 형식 간에 변환하는 데 사용됩니다.

  • string
  • 정수
  • float
  • 부울 값
  • 배열
  • dictionaries
변환 함수 작업
array 지정된 단일 입력에서 배열을 반환합니다. 여러 입력은 createArray를 참조 하세요.
base64 문자열에 대한 base64로 인코딩된 버전을 반환합니다.
base64ToBinary base64로 인코딩된 문자열의 이진 버전을 반환합니다.
base64ToString base64로 인코딩된 문자열의 문자열 버전을 반환합니다.
binary 입력 값에 대한 이진 버전을 반환합니다.
부울 입력 값에 대한 부울 버전을 반환합니다.
합체 하나 이상의 매개 변수에서 Null이 아닌 첫 번째 값을 반환합니다.
createArray 여러 입력에서 배열을 반환합니다.
dataUri 입력 값에 대한 데이터 URI를 반환합니다.
dataUriToBinary 데이터 URI에 대한 이진 버전을 반환합니다.
dataUriToString 데이터 URI에 대한 문자열 버전을 반환합니다.
decodeBase64 base64로 인코딩된 문자열의 문자열 버전을 반환합니다.
decodeDataUri 데이터 URI에 대한 이진 버전을 반환합니다.
decodeUriComponent 이스케이프 문자를 디코딩된 버전으로 바꾸는 문자열을 반환합니다.
encodeUriComponent URL 안전하지 않은 문자를 이스케이프 문자로 대체하는 문자열을 반환합니다.
float 입력 값에 대해 부동 소수점 숫자를 반환합니다.
int 문자열에 대한 정수 버전을 반환합니다.
Json 문자열 또는 XML에 대한 JSON(JavaScript Object Notation) 형식 값 또는 개체를 반환합니다.
string 입력 값에 대한 문자열 버전을 반환합니다.
uriComponent URL 안전하지 않은 문자를 이스케이프 문자로 바꿔 입력 값에 대해 URI로 인코딩된 버전을 반환합니다.
uriComponentToBinary URI로 인코딩된 문자열에 대한 이진 버전을 반환합니다.
uriComponentToString URI로 인코딩된 문자열에 대한 문자열 버전을 반환합니다.
xml 문자열의 XML 버전을 반환합니다.
xpath XPath(XML 경로 언어) 식과 일치하는 노드 또는 값에 대해 XML을 확인하고 일치하는 노드 또는 값을 반환합니다.

수식 함수

이러한 함수는 숫자 형식(정수 및 부동 소수점)에 사용할 수 있습니다.

수학 함수 작업
add 두 숫자를 추가하여 결과를 반환합니다.
div 두 숫자를 나눈 결과를 반환합니다.
max 숫자 집합 또는 배열에서 가장 높은 값을 반환합니다.
min 숫자 또는 배열 집합에서 가장 낮은 값을 반환합니다.
모드 두 숫자를 나눈 나머지를 반환합니다.
mul 두 숫자를 곱한 제품을 반환합니다.
rand 지정된 범위에서 임의의 정수를 반환합니다.
range 지정한 정수에서 시작하는 정수 배열을 반환합니다.
sub 첫 번째 숫자에서 두 번째 숫자를 빼서 결과를 반환합니다.

날짜 함수

날짜 또는 시간 함수 작업
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 현재 타임스탬프를 문자열로 반환합니다.