매핑 데이터 흐름의 선택 변환

적용 대상: Azure Data Factory Azure Synapse Analytics

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

데이터 흐름은 Azure Data Factory 및 Azure Synapse Pipelines 모두에서 사용할 수 있습니다. 이 문서는 매핑 데이터 흐름에 적용됩니다. 변환을 처음 사용하는 경우 매핑 데이터 흐름을 사용하여 데이터 변환 소개 문서를 참조하세요.

선택 변환을 사용하여 열 이름을 바꾸거나 삭제하거나 순서를 변경합니다. 이 변환은 행 데이터를 변경하지 않지만 다운스트림으로 전파되는 열을 선택합니다.

선택 변환에서 사용자는 고정 매핑을 지정하거나, 패턴을 사용하여 규칙 기반 매핑을 수행하거나, 자동 매핑을 사용하도록 설정할 수 있습니다. 동일한 선택 변환 내에서 고정 매핑과 규칙 기반 매핑을 둘 다 사용할 수 있습니다. 열이 정의된 매핑 중 하나와 일치하지 않으면 삭제됩니다.

고정 매핑

프로젝션에 정의된 열이 50개 미만인 경우 정의된 모든 열에는 기본적으로 고정 매핑이 있습니다. 고정 매핑은 정의된 들어오는 열을 사용하고 정확한 이름으로 매핑합니다.

Fixed mapping

참고 항목

고정 매핑을 사용하여 드리프트된 열을 매핑하거나 이름을 바꿀 수 없습니다.

계층 구조 열 매핑

고정 매핑을 사용하여 계층적 열의 하위 열을 최상위 열에 매핑할 수 있습니다. 정의된 계층 구조가 있는 경우 열 드롭다운을 사용하여 하위 열을 선택합니다. 선택 변환은 하위 열의 값 및 데이터 형식을 사용하여 새 열을 만듭니다.

hierarchical mapping

규칙 기반 매핑

여러 열을 한 번에 매핑하거나 드리프트된 열을 다운스트림으로 전달하려면 규칙 기반 매핑을 사용하여 열 패턴을 사용하여 매핑을 정의합니다. 열의 name, type, streamposition 열을 기준으로 일치합니다. 고정 및 규칙 기반 매핑의 모든 조합을 사용할 수 있습니다. 기본적으로 열이 50개보다 큰 모든 프로젝션은 기본적으로 모든 열에서 일치하고 입력된 이름을 출력하는 규칙 기반 매핑으로 설정됩니다.

규칙 기반 매핑을 추가하려면 매핑 추가를 클릭하고 규칙 기반 매핑을 선택합니다.

Screenshot shows Rule-based mapping selected from Add mapping.

각 규칙 기반 매핑에는 일치하는 조건과 매핑된 각 열의 이름을 지정하는 조건의 두 가지 입력이 필요합니다. 두 값 모두 식 작성기를 통해 입력됩니다. 왼쪽 식 상자에 부울 일치 조건을 입력합니다. 오른쪽 식 상자에서 일치하는 열을 매핑할 대상을 지정합니다.

Screenshot shows a mapping.

구문을 사용하여 $$ 일치하는 열의 입력 이름을 참조합니다. 위의 이미지를 예로 사용하여 이름이 6자보다 짧은 모든 문자열 열에서 일치하려고 합니다. 들어오는 열의 이름이 test1개이면 식 $$ + '_short' 에서 열 test_short이름을 바꿉니다. 이것이 유일한 매핑인 경우 조건을 충족하지 않는 모든 열이 출력된 데이터에서 삭제됩니다.

패턴은 드리프트된 열과 정의된 열이 모두 일치합니다. 규칙에 의해 매핑되는 정의된 열을 보려면 규칙 옆에 있는 안경 아이콘을 클릭합니다. 데이터 미리 보기를 사용하여 출력을 확인합니다.

Regex 매핑

아래쪽 펼침 단추 아이콘을 클릭하면 regex 매핑 조건을 지정할 수 있습니다. regex 매핑 조건은 지정된 정규식 조건과 일치하는 모든 열 이름과 일치합니다. 표준 규칙 기반 매핑과 함께 사용할 수 있습니다.

Screenshot shows the regex-mapping condition with Hierarchy level and Name matches.

위의 예제는 regex 패턴 (r) 또는 소문자 r을 포함하는 열 이름과 일치합니다. 표준 규칙 기반 매핑과 유사하게, 일치하는 모든 열은 $$ 구문을 사용하여 오른쪽의 조건에 따라 변경됩니다.

열 이름에 regex 일치 항목이 여러 개 있는 경우 'n'이 일치하는 항목을 참조하는 위치를 사용하여 $n 특정 일치 항목을 참조할 수 있습니다. 예를 들어 '$2'는 열 이름 내의 두 번째 일치 항목을 나타냅니다.

규칙 기반 계층 구조

정의된 프로젝션에 계층이 있는 경우 규칙 기반 매핑을 사용하여 계층 하위 열을 매핑할 수 있습니다. 매핑하려는 하위 열과 일치하는 조건 및 복합 열을 지정합니다. 일치하는 모든 하위 열은 오른쪽에 지정된 'Name as' 규칙을 사용하여 출력됩니다.

Screenshot shows a rule-based mapping using for a hierarchy.

위의 예제는 복합 열 a의 모든 하위 열에서 일치합니다. a은 하위 열 bc을 포함합니다. 조건으로서 '이름'이 $$이되므로, 출력 스키마는 두 개의 열 bc를 포함합니다.

매개 변수화

규칙 기반 매핑을 사용하여 열 이름을 매개 변수화할 수 있습니다. 키워드(keyword) name 사용하여 들어오는 열 이름을 매개 변수와 일치시킬 수 있습니다. 예를 들어, 데이터 흐름 매개 변수 mycolumn이 있는 경우 mycolumn과 같은 열 이름과 일치하는 규칙을 만들 수 있습니다. 일치하는 열의 이름을 '비즈니스 키'와 같은 하드 코딩된 문자열로 바꾸고 명시적으로 참조할 수 있습니다. 이 예제에서 일치하는 조건은 name == $mycolumn '비즈니스 키'이며 이름 조건은 '비즈니스 키'입니다.

자동 매핑

선택 변환 을 추가할 때 자동 매핑 슬라이더를 전환하여 자동 매핑을 사용하도록 설정할 수 있습니다. 자동 매핑을 사용하면 선택 변환은 중복 항목을 제외한 들어오는 모든 열을 입력과 동일한 이름으로 매핑합니다. 여기에는 드리프트된 열이 포함됩니다. 즉, 출력 데이터에 스키마에 정의되지 않은 열이 포함될 수 있습니다. 드리프트된 열에 대한 자세한 내용은 스키마 드리프트를 참조하세요.

Auto mapping

자동 매핑을 사용하면 선택 변환에서 중복 설정 건너뛰기를 적용하고 기존 열에 대한 새 별칭을 제공합니다. 별칭 지정은 동일한 스트림 및 자체 조인 시나리오에서 여러 조인 또는 조회를 수행할 때 유용합니다.

중복 열

기본적으로 선택 변환은 입력 및 출력 프로젝션에서 둘 다 중복 열을 삭제합니다. 중복 입력 열은 종종 열 이름이 조인의 양쪽에서 중복되는 조인 및 조회 변환에서 생성됩니다. 중복 출력 열은 서로 다른 두 입력 열을 같은 이름에 매핑하는 경우 발생할 수 있습니다. 검사 상자를 전환하여 중복 열을 놓거나 전달할지 여부를 선택합니다.

Skip Duplicates

열 순서 지정

매핑 순서는 출력 열의 순서를 결정합니다. 입력 열이 여러 번 매핑되면 첫 번째 매핑만 적용됩니다. 중복 열을 삭제하는 경우 첫 번째 일치 항목이 유지됩니다.

데이터 흐름 스크립트

구문

<incomingStream>
    select(mapColumn(
        each(<hierarchicalColumn>, match(<matchCondition>), <nameCondition> = $$), ## hierarchical rule-based matching
        <fixedColumn>, ## fixed mapping, no rename
        <renamedFixedColumn> = <fixedColumn>, ## fixed mapping, rename
        each(match(<matchCondition>), <nameCondition> = $$), ## rule-based mapping
        each(patternMatch(<regexMatching>), <nameCondition> = $$) ## regex mapping
    ),
    skipDuplicateMapInputs: { true | false },
    skipDuplicateMapOutputs: { true | false }) ~> <selectTransformationName>

예시

다음은 선택 매핑 및 해당 데이터 흐름 스크립트의 예입니다.

Select script example

DerivedColumn1 select(mapColumn(
        each(a, match(true())),
        movie,
        title1 = title,
        each(match(name == 'Rating')),
        each(patternMatch(`(y)`),
            $1 + 'regex' = $$)
    ),
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> Select1
  • 선택을 사용하여 열 이름을 바꾸고, 열 순서를 변경하고, 열에 별칭을 지정한 후 싱크 변환을 사용하여 데이터를 데이터 저장소에 저장합니다.