다음을 통해 공유


데이터 흐름 매핑의 피벗 변환

적용 대상: Azure Data Factory Azure Synapse Analytics

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

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

피벗 변환을 사용하여 단일 열의 고유한 행 값에서 여러 열을 만들 수 있습니다. Pivot은 열별 그룹화를 선택하고 집계 함수를 사용하여 피벗 열을 생성하는 집계 변환입니다.

구성

피벗 변환에는 열별 그룹화, 피벗 키, 피벗된 열 생성 방법의 세 가지 입력이 필요합니다.

그룹 기준

옵션으로 그룹화

피벗된 열을 집계할 열을 선택합니다. 출력 데이터는 값으로 동일하게 그룹화된 모든 행을 단일 행으로 그룹화합니다. 피벗 열에서 수행되는 집계는 각 그룹에 대해 발생합니다.

이 섹션은 선택 사항입니다. 열별 그룹화를 선택하지 않으면 전체 데이터 스트림이 집계되고 한 행만 출력됩니다.

피벗 키

피벗 키

피벗 키는 행 값이 새 열로 피벗되는 열입니다. 기본적으로 피벗 변환은 고유한 각 행 값에 대해 새 열을 만듭니다.

레이블이 지정된 섹션에서 피벗될 특정 행 값을 입력할 수 있습니다. 이 섹션에 입력된 행 값만 피벗됩니다. Null 값을 사용하도록 설정하면 열에 null 값에 대한 피벗 열이 생성됩니다.

피벗 열

피벗 열

열이 되는 각각의 고유 피벗 키 값의 경우 각 그룹에 대해 집계된 행 값을 생성합니다. 피벗 키 당 여러 열을 만들 수 있습니다. 각 피벗 열은 집계 함수를 하나 이상 포함해야 합니다.

열 이름 패턴: 각 피벗 열의 열 이름의 서식을 지정하는 방법을 선택합니다. 출력 열 이름은 피벗 키 값, 열 접두사 및 선택적 접두사, 접미사, 가운데 문자를 조합한 것입니다.

열 정렬: 피벗 키마다 피벗 열을 두 개 이상 생성하는 경우 열을 정렬할 방법을 선택합니다.

열 접두사: 피벗 키마다 피벗 열을 두 개 이상 생성하는 경우 각 열에 대해 열 접두사를 입력합니다. 피벗 열이 하나만 있는 경우 이 설정은 선택 사항입니다.

도움말 그래픽

아래 도움말 그래픽에서는 다른 피벗 구성 요소가 상호 작용하는 방법을 보여 줍니다.

피벗 도움말 그래픽

피벗 메타데이터

피벗 키 구성에 값이 지정되지 않은 경우 피벗된 열은 런타임에 동적으로 생성됩니다. 피벗된 열 수는 피벗 열 수를 곱한 고유 피벗 키 값의 수와 같습니다. 이 값은 변하는 수일 수 있으므로 UX는 검사 탭에 열 메타데이터를 표시하지 않으며 열 전파가 발생하지 않습니다. 이러한 열을 변환하려면 매핑 데이터 흐름의 열 패턴 기능을 사용합니다.

특정 피벗 키 값이 설정된 경우 피벗된 열이 메타데이터에 표시됩니다. 검사 및 싱크 매핑에서 열 이름을 사용할 수 있습니다.

드리프트 열에서 메타데이터 생성

피벗은 행 값에 따라 새 열 이름을 동적으로 생성합니다. 데이터 흐름에서 나중에 참조할 수 있는 메타데이터에 이러한 새 열을 추가할 수 있습니다. 이렇게 하려면 데이터 미리 보기에서 맵 드리프트 빠른 작업을 사용합니다.

열 피벗

피벗된 열 싱크

피벗된 열은 동적이지만 여전히 대상 데이터 저장소에 쓸 수 있습니다. 싱크 설정에서 스키마 드리프트 허용을 사용하도록 설정합니다. 이렇게 하면 메타데이터에 포함되지 않은 열을 작성할 수 있습니다. 열 메타데이터에는 새 동적 이름이 표시되지 않지만 스키마 드리프트 옵션을 사용하면 데이터를 연결할 수 있습니다.

원본 필드를 다시 조인하는 방법

피벗 변환은 열별 그룹화 및 피벗된 열만 보호할 것입니다. 출력 데이터에 다른 입력 열을 포함하려면 자체 조인 패턴을 사용합니다.

데이터 흐름 스크립트

구문

<incomingStreamName>
    pivot(groupBy(Tm),
        pivotBy(<pivotKeyColumn, [<specifiedColumnName1>,...,<specifiedColumnNameN>]),
        <pivotColumnPrefix> = <pivotedColumnValue>,
        columnNaming: '< prefix >< $N | $V ><middle >< $N | $V >< suffix >',
        lateral: { 'true' | 'false'}
    ) ~> <pivotTransformationName

예시

구성 섹션에 표시된 화면에는 다음과 같은 데이터 흐름 스크립트가 있습니다.

BasketballPlayerStats pivot(groupBy(Tm),
    pivotBy(Pos),
    {} = count(),
    columnNaming: '$V$N count',
    lateral: true) ~> PivotExample

피벗 해제 변환을 시도하여 열 값을 행 값으로 변환합니다.