다음을 통해 공유


병합 및 병합 조인 변환을 위한 데이터 정렬

적용 대상: SQL Server Azure Data Factory의 SSIS Integration Runtime

통합 서비스에서의 병합 및 병합 조인 변환은 입력에 대해 정렬된 데이터가 필요로 합니다. 입력 데이터는 물리적으로 정렬되어야 하며 출력 및 원본의 출력 열 또는 업스트림 변환에 정렬 옵션이 설정되어야 합니다. 정렬 옵션은 데이터가 정렬되었음을 나타내지만 데이터가 실제로 정렬되지 않은 경우에는 병합 또는 병합 조인 작업의 결과를 예측할 수 없습니다.

데이터 정렬

다음 방법 중 하나를 사용하여 이 데이터를 정렬할 수 있습니다.

  • 원본의 경우, 데이터를 로드하는 데 사용되는 문에 ORDER BY 절을 사용합니다.

  • 데이터 흐름의 경우, 병합 또는 병합 조인 변환 앞에 정렬 변환을 삽입합니다.

데이터가 문자열 데이터인 경우 병합 및 병합 조인 변환 모두 Windows 데이터 정렬을 사용하여 문자열 값이 정렬될 것입니다. Windows 데이터 정렬을 사용하여 정렬된 병합 및 병합 조인 변환에 문자열 값을 제공하려면 다음 절차를 사용합니다.

Windows 데이터 정렬을 사용하여 정렬되는 문자열 값을 제공하려면

  • 정렬 변환을 사용하여 데이터를 정렬합니다.

    정렬 변환은 Windows 데이터 정렬을 사용하여 문자열 값을 정렬합니다.

    또는

  • Transact-SQL CAST 연산자를 사용하여 먼저 varchar 값을 nvarchar 값으로 캐스팅한 다음 Transact-SQL ORDER BY 절을 사용하여 데이터를 정렬합니다.

    Important

    ORDER BY 절은 SQL Server 데이터 정렬을 사용하여 문자열 값을 정렬하므로 ORDER BY 절만 사용할 수 없습니다. SQL Server 데이터 정렬을 사용하면 Windows 데이터 정렬과 다른 정렬 순서가 발생할 수 있으므로 병합 또는 병합 조인 변환이 예기치 않은 결과를 생성할 수 있습니다.

데이터에 대한 정렬 옵션 설정

병합 및 병합 조인 변환에 데이터를 제공하는 원본 또는 업스트림 변환에 대해 설정해야 하는 두 가지 중요한 정렬 속성이 있습니다.

  • 데이터가 정렬되었는지 여부를 나타내는 출력의 IsSorted 속성입니다. 이 속성은 True로만 설정할 수 있습니다.

    Important

    중요 IsSorted 속성의 값을 True로 설정해도 데이터가 졍렬되지는 않습니다. 이 속성은 데이터가 이전에 정렬되었다는 정보를 다운스트림 구성 요소에 제공하기만 합니다.

  • 열의 정렬 여부, 열의 정렬 순서 및 여러 열이 정렬되는 시퀀스를 나타내는 출력 열의 SortKeyPosition 속성입니다. 정렬된 데이터의 각 열에 대해 이 속성을 설정해야 합니다.

정렬 변환을 사용하여 데이터를 정렬하는 경우 정렬 변환은 병합 또는 병합 조인 변환에 필요한 대로 이러한 속성을 모두 설정합니다. 즉, 출력의 IsSorted 속성이 True로 설정되고 출력 열의 SortKeyPosition 속성이 적절히 설정됩니다.

그러나 정렬 변환을 사용하여 데이터를 정렬하지 않는 경우 원본 또는 업스트림 변환에서 이러한 정렬 속성을 수동으로 설정해야 합니다. 원본 또는 업스트림 변환에서 정렬 속성을 수동으로 설정하려면 다음 절차를 사용합니다.

원본 또는 변환 구성 요소에서 정렬 특성을 수동으로 설정하기

  1. SSDT(SQL Server Data Tools)에서 원하는 패키지가 들어 있는 Integration Services 프로젝트를 엽니다.

  2. 솔루션 탐색기에서 패키지를 두 번 클릭하여 엽니다.

  3. 데이터 흐름 탭에서 적절한 소스 또는 업스트림 변환을 찾거나 도구 상자에서 디자인 화면으로 끌어 옵니다.

  4. 구성 요소를 마우스 오른쪽 단추로 클릭하고 고급 편집기 표시를 클릭합니다.

  5. 입력 및 출력 속성탭을 클릭합니다.

  6. <component name> 출력을 클릭하고 IsSorted 속성을 True로 설정합니다.

    참고 항목

    출력의 IsSorted 속성을 True로 수동으로 설정하고 데이터가 정렬되지 않은 경우 패키지를 실행할 때 다운스트림 병합 또는 병합 조인 변환에서 누락된 데이터 또는 잘못된 데이터 비교가 있을 수 있습니다.

  7. 출력 열을 펼칩니다.

  8. 정렬된 것으로 표시할 열을 클릭하고 다음 지침에 따라 해당 SortKeyPosition 속성을 0이 아닌 정수 값으로 설정합니다.

    • 정수 값은 1부터 시작하여 1씩 증분하는 숫자 시퀀스를 나타내야 합니다.

    • 양의 정수 값은 오름차순 정렬 순서를 나타냅니다.

    • 음수 정수 값은 내림차순 정렬 순서를 나타냅니다. (음수로 설정하면 숫자의 절대값에 따라 정렬 시퀀스에서 열의 위치가 결정됩니다.)

    • 기본값인 0은 열이 정렬되지 않았음을 나타냅니다. 정렬되지 않는 출력 열의 경우 값 0을 그대로 둡니다.

    SortKeyPosition 속성을 설정하는 방법을 보여 주는 예는 원본에서 데이터를 로드하는 다음 Transact-SQL 문을 참조하십시오.

    SELECT * FROM MyTable ORDER BY ColumnA, ColumnB DESC, ColumnC

    이 문의 경우 다음과 같이 각 열에대해 SortKeyPosition 속성을 설정합니다.

    • ColumnA의 SortKeyPosition 속성을 1로 설정합니다. 이는 ColumnA가 정렬할 첫 번째 열이며 오름차순으로 정렬됨을 나타냅니다.

    • ColumnB의 SortKeyPosition 속성을 -2로 설정합니다. 이는 ColumnB가 정렬할 두 번째 열이며 내림차순으로 정렬됨을 나타냅니다.

    • Column의 SortKeyPosition 속성을 3로 설정합니다. 이는 ColumnC가 정렬할 세 번째 열이며 오름차순으로 정렬됨을 나타냅니다.

  9. 정렬된 각 열에 대해 여덟 번째 단계를 반복합니다.

  10. 확인을 클릭합니다.

  11. 업데이트된 패키지를 저장하려면 파일 메뉴에서 선택한 항목 저장을 클릭합니다.

참고 항목

병합 변환
병합 조인 변환
Integration Services 변환
Integration Services 경로
데이터 흐름 태스크