병합 및 병합 조인 변환을 위한 데이터 정렬Sort Data for the Merge and Merge Join Transformations

Integration ServicesIntegration Services의 병합 및 병합 조인 변환에는 정렬된 데이터를 입력해야 합니다.In Integration ServicesIntegration Services, the Merge and Merge Join transformations require sorted data for their inputs. 입력 데이터는 물리적으로 정렬되어야 하며 출력 및 원본의 출력 열 또는 업스트림 변환에 정렬 옵션이 설정되어야 합니다.The input data must be sorted physically, and sort options must be set on the outputs and the output columns in the source or in the upstream transformation. 정렬 옵션은 데이터가 정렬되었음을 나타내지만 데이터가 실제로 정렬되지 않은 경우에는 병합 또는 병합 조인 작업의 결과를 예측할 수 없습니다.If the sort options indicate that the data is sorted, but the data is not actually sorted, the results of the merge or merge join operation are unpredictable.

데이터 정렬Sorting the Data

다음 방법 중 하나를 사용하여 이러한 데이터를 정렬할 수 있습니다.You can sort this data by using one of the following methods:

  • 원본에서 데이터를 로드하는 데 사용되는 명령문에 ORDER BY 절을 사용합니다.In the source, use an ORDER BY clause in the statement that is used to load the data.

  • 데이터 흐름에서 병합 또는 병합 조인 변환 앞에 정렬 변환을 삽입합니다.In the data flow, insert a Sort transformation before the Merge or Merge Join transformation.

    데이터가 문자열 데이터인 경우 병합 및 병합 조인 변환은 둘 다 Windows 데이터 정렬을 사용하여 문자열 값이 정렬된 것으로 간주합니다.If the data is string data, both the Merge and Merge Join transformations expect the string values to have been sorted by using Windows collation. 병합 및 병합 조인 변환에 Windows 데이터 정렬을 사용하여 정렬된 문자열 값을 제공하려면 다음 절차를 사용합니다.To provide string values to the Merge and Merge Join transformations that are sorted by using Windows collation, use the following procedure.

Windows 데이터 정렬을 사용하여 정렬되는 문자열 값을 제공하려면To provide string values that are sorted by using Windows collation

  • 정렬 변환을 사용하여 데이터를 정렬합니다.Use a Sort transformation to sort the data.

    정렬 변환은 Windows 데이터 정렬을 사용하여 문자열 값을 정렬합니다.The Sort transformation uses Windows collation to sort string values.

    —또는——or—

  • 먼저 Transact-SQL CAST 연산자를 사용하여 varchar 값을 nvarchar 값으로 캐스팅한 다음 Transact-SQL ORDER BY 절을 사용하여 데이터를 정렬합니다.Use the Transact-SQL CAST operator to first cast varchar values to nvarchar values, and then use the Transact-SQL ORDER BY clause to sort the data.

    중요

    ORDER BY 절은 SQL ServerSQL Server 데이터 정렬을 사용하여 문자열 값을 정렬하므로 ORDER BY 절만 단독으로 사용할 수는 없습니다.You cannot use the ORDER BY clause alone because the ORDER BY clause uses a SQL ServerSQL Server collation to sort string values. SQL ServerSQL Server 데이터 정렬을 사용하면 Windows 데이터 정렬을 사용하는 것과 다른 순서로 데이터가 정렬되므로 병합 또는 병합 조인 변환이 예기치 않은 결과를 생성할 수 있습니다.The use of the SQL ServerSQL Server collation might result in a different sort order than Windows collation, which can cause the Merge or Merge Join transformation to produce unexpected results.

데이터 정렬 옵션 설정Setting Sort Options on the Data

병합 및 병합 조인 변환에 데이터를 제공하는 원본이나 업스트림 변환에 두 가지 중요한 정렬 속성을 설정해야 합니다.There are two important sort properties that must be set for the source or upstream transformation that supplies data to the Merge and Merge Join transformations:

  • 데이터가 정렬되었는지 여부를 나타내는 출력의 IsSorted 속성.The IsSorted property of the output that indicates whether the data has been sorted. 이 속성을 True로 설정해야 합니다.This property must be set to True.

    중요

    IsSorted 속성의 값을 True 로 설정해도 데이터가 정렬되지는 않습니다.Setting the value of the IsSorted property to True does not sort the data. 이 속성은 데이터가 이전에 정렬되었다는 정보를 다운스트림 구성 요소에 제공하기만 합니다.This property only provides a hint to downstream components that the data has been previously sorted.

  • 열이 정렬되었는지 여부, 열의 정렬 순서 및 여러 열이 정렬된 시퀀스를 나타내는 출력 열의 SortKeyPosition 속성.The SortKeyPosition property of output columns that indicates whether a column is sorted, the column's sort order, and the sequence in which multiple columns are sorted. 정렬된 데이터의 각 열에 이 속성을 설정해야 합니다.This property must be set for each column of sorted data.

    정렬 변환을 사용하여 데이터를 정렬하면 이러한 두 속성이 병합 또는 병합 조인 변환에 필요한 값으로 설정됩니다.If you use a Sort transformation to sort the data, the Sort transformation sets both of these properties as required by the Merge or Merge Join transformation. 즉, 출력의 IsSorted 속성이 True로 설정되고 출력 열의 SortKeyPosition 속성이 적절히 설정됩니다.That is, the Sort transformation sets the IsSorted property of its output to True, and sets the SortKeyPosition properties of its output columns.

    그러나 정렬 변환을 사용하여 데이터를 정렬하지 않는 경우에는 원본 또는 업스트림 변환에서 이러한 정렬 속성을 수동으로 설정해야 합니다.However, if you do not use a Sort transformation to sort the data, you must set these sort properties manually on the source or the upstream transformation. 원본 또는 업스트림 변환에서 정렬 속성을 수동으로 설정하려면 다음 절차를 수행합니다.To manually set the sort properties on the source or upstream transformation, use the following procedure.

원본 또는 변환 구성 요소의 정렬 특성을 수동으로 설정하려면To manually set sort attributes on a source or transformation component

  1. SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)에서 원하는 패키지가 들어 있는 Integration ServicesIntegration Services 프로젝트를 엽니다.In SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT), open the Integration ServicesIntegration Services project that contains the package you want.

  2. 솔루션 탐색기에서 패키지를 두 번 클릭하여 엽니다.In Solution Explorer, double-click the package to open it.

  3. 적절한 원본 또는 업스트림 변환을 데이터 흐름 탭에서 찾거나 도구 상자 에서 디자인 화면으로 끌어 놓습니다.On the Data Flow tab, locate the appropriate source or upstream transformation, or drag it from the Toolbox to the design surface.

  4. 구성 요소를 마우스 오른쪽 단추로 클릭하고 고급 편집기 표시를 클릭합니다.Right-click the component and click Show Advanced Editor.

  5. 입/출력 속성 탭을 클릭합니다.Click the Input and Output Properties tab.

  6. 클릭 <구성 요소 이름 > 출력를 설정 하 고는 IsSorted 속성을 True합니다.Click <component name> Output, and set the IsSorted property to True.

    참고

    수동으로 출력의 IsSorted 속성을 True 로 설정했지만 데이터가 정렬되지 않았다면 패키지를 실행할 때 다운스트림 병합 또는 병합 조인 변환에 데이터가 누락되었거나 데이터 비교가 잘못되었기 때문일 수 있습니다.If you manually set the IsSorted property of the output to True and the data is not sorted, there might be missing data or bad data comparisons in the downstream Merge or Merge Join transformation when you run the package.

  7. 출력 열을 확장합니다.Expand Output Columns.

  8. 정렬된 것으로 표시할 열을 클릭하고 다음 지침에 따라 해당 SortKeyPosition 속성을 0이 아닌 정수 값으로 설정합니다.Click the column that you want to indicate is sorted and set its SortKeyPosition property to a nonzero integer value by following these guidelines:

    • 정수 값은 1부터 시작하여 1씩 증가하는 숫자 시퀀스를 나타내야 합니다.The integer value must represent a numeric sequence, starting with 1 and incremented by 1.

    • 양의 정수 값은 오름차순 정렬을 나타냅니다.A positive integer value indicates an ascending sort order.

    • 음의 정수 값은 내림차순 정렬을 나타냅니다.A negative integer value indicates a descending sort order. 음수로 설정하는 경우 숫자의 절대값은 정렬 시퀀스에서 열의 순서를 결정합니다.(If set to a negative number, the absolute value of the number determines the column's position in the sort sequence.)

    • 기본값인 0은 열이 정렬되지 않았음을 나타냅니다.The default value of 0 indicates that the column is not sorted. 출력 열이 정렬에 참여하지 않는 경우 값을 0으로 둡니다.Leave the value of 0 for output columns that do not participate in the sort.

      SortKeyPosition 속성을 설정하는 방법을 보여 주는 예는 원본에서 데이터를 로드하는 다음 Transact-SQL 문을 참조하세요.As an example of how to set the SortKeyPosition property, consider the following Transact-SQL statement that loads data in a source:

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

      이 명령문의 경우 각 열의 SortKeyPosition 속성을 다음과 같이 설정합니다.For this statement, you would set the SortKeyPosition property for each column as follows:

    • ColumnA의 SortKeyPosition 속성을 1로 설정합니다.Set the SortKeyPosition property of ColumnA to 1. 이는 ColumnA가 정렬할 첫째 열이며 오름차순으로 정렬됨을 나타냅니다.This indicates that ColumnA is the first column to be sorted and is sorted in ascending order.

    • ColumnB의 SortKeyPosition 속성을 2로 설정합니다.Set the SortKeyPosition property of ColumnB to -2. 이는 ColumnB가 두 번째로 정렬할 열이며 내림차순으로 정렬함을 나타냅니다.This indicates that ColumnB is the second column to be sorted and is sorted in descending order

    • ColumnC의 SortKeyPosition 속성을 3으로 설정합니다.Set the SortKeyPosition property of ColumnC to 3. 이는 ColumnC가 정렬할 셋째 열이며 오름차순으로 정렬됨을 나타냅니다.This indicates that ColumnC is the third column to be sorted and is sorted in ascending order.

  9. 정렬된 각 열에 대해 8단계를 반복합니다.Repeat step 8 for each sorted column.

  10. 확인을 클릭합니다.Click OK.

  11. 업데이트된 패키지를 저장하려면 파일 메뉴에서 선택한 항목 저장 을 클릭합니다.To save the updated package, click Save Selected Items on the File menu.

관련 항목:See Also

병합 변환 Merge Transformation
병합 조인 변환 Merge Join Transformation
Integration Services 변환 Integration Services Transformations
Integration Services 경로 Integration Services Paths
데이터 흐름 태스크Data Flow Task