다음을 통해 공유


집계 변환

집계 변환은 Average와 같은 집계 함수를 열 값에 적용하고 결과를 변환 출력에 복사합니다. 집계 함수 외에도 변환은 집계할 그룹을 지정하는 데 사용할 수 있는 GROUP BY 절을 제공합니다.

집계 변환은 변환, 출력 및 열 수준에서 구성됩니다.

  • 변환 수준에서는 변환에서 처리할 키 및 고유 카운트 키의 수를 지정하고 집계 중에 메모리를 확장할 수 있는 백분율을 지정하여 집계 변환을 성능에 맞게 구성합니다. 또한 제수 값이 0일 때 오류가 발생하는 대신 경고를 생성하도록 집계 변환을 구성할 수 있습니다.
  • 출력 수준에서는 출력에 포함되도록 예상되는 키의 수를 지정하여 집계 변환을 성능에 맞게 구성합니다. 집계 변환에는 여러 출력이 지원되며 각 출력은 서로 다르게 구성될 수 있습니다.
  • 열 수준에서는 열이 수행하는 집계와 집계의 비교 옵션을 지정합니다. 또한 각 열에 포함된 키 및 고유 카운트 키의 수를 지정하고 열에 큰 숫자 값이나 전체 자릿수가 높은 숫자 값이 있는 경우 열을 IsBig으로 식별하여 집계 변환을 성능에 맞게 구성할 수 있습니다.

집계 변환은 비동기적이며 따라서 행별로 데이터를 사용하고 게시하지 않습니다. 대신 전체 행 집합을 사용하고 그룹화 및 집계를 수행한 다음 결과를 게시합니다.

이 변환은 어떤 열을 통해서도 전달되지 않지만 게시하는 데이터에 대한 데이터 흐름에 새 열을 만듭니다. 집계 함수가 적용하는 입력 열이나 변환에서 그룹화를 위해 사용되는 입력 열만 변환 출력으로 복사됩니다. 예를 들어 집계 변환 입력에는 CountryRegion, CityPopulation과 같은 3개의 열만 포함될 수 있습니다. 변환은 CountryRegion 열에 따라 그룹화되며 Sum 함수를 Population 열에 적용합니다. 따라서 출력에는 City 열이 포함되지 않습니다.

또한 집계 변환에 여러 출력을 추가하고 각 집계를 서로 다른 출력으로 지정할 수 있습니다. 예를 들어 집계 변환이 SumAverage 함수를 적용하는 경우 각 집계는 서로 다른 출력으로 지정될 수 있습니다.

단일 입력 열에 여러 집계를 적용할 수 있습니다. 예를 들어 Sales라는 입력 열에 대한 합계 및 평균 값이 필요하면 SumAverage 함수를 모두 Sales 열에 적용하도록 변환을 구성할 수 있습니다.

집계 변환에는 하나의 입력과 하나 이상의 출력이 포함됩니다. 오류 출력은 지원하지 않습니다.

연산

집계 변환은 다음과 같은 연산을 지원합니다.

연산 설명

Group By

데이터 집합을 그룹으로 나눕니다. 그룹화에는 모든 종류의 데이터 형식의 열을 사용할 수 있습니다. 자세한 내용은 GROUP BY(Transact-SQL)를 참조하십시오.

Sum

열에 있는 값의 합계를 계산합니다. 숫자 데이터 형식의 열만 합계를 계산할 수 있습니다. 자세한 내용은 SUM(Transact-SQL)을 참조하십시오.

Average

열에 있는 열 값의 평균을 반환합니다. 숫자 데이터 형식의 열만 평균을 계산할 수 있습니다. 자세한 내용은 AVG(Transact-SQL)를 참조하십시오.

Count

그룹에 포함된 항목 개수를 반환합니다. 자세한 내용은 COUNT(Transact-SQL)를 참조하십시오.

Count distinct

그룹에 포함된 Null이 아닌 고유한 값의 개수를 반환합니다. 자세한 내용은 DISTINCT로 중복된 행 제거를 참조하십시오.

Minimum

그룹에 포함된 최소값을 반환합니다. 자세한 내용은 MIN(Transact-SQL)을 참조하십시오. Transact-SQL MIN 함수와는 반대로 이 연산은 숫자, 날짜 및 시간 데이터 형식에서만 사용할 수 있습니다.

Maximum

그룹에 포함된 최대값을 반환합니다. 자세한 내용은 MAX(Transact-SQL)를 참조하십시오. Transact-SQL MAX 함수와는 반대로 이 연산은 숫자, 날짜 및 시간 데이터 형식에서만 사용할 수 있습니다.

집계 변환은 SQL Server 관계형 데이터베이스 엔진과 동일한 방식으로 Null 값을 처리합니다. 이러한 동작은 SQL-92 표준에서 정의됩니다. 다음 규칙이 적용됩니다.

  • GROUP BY 절에서 Null은 다른 열 값과 같이 취급됩니다. 그룹화 열에 둘 이상의 Null 값이 있다면 단일 그룹에 이 Null 값을 둡니다.
  • COUNT (column name) 및 COUNT (DISTINCT column name) 함수에서는 Null이 무시되고 결과에는 명명된 열에 Null 값이 포함된 행이 제외됩니다.
  • COUNT (*) 함수에서는 Null 값이 포함된 행을 비롯한 모든 행의 개수가 계산됩니다.

집계에서 큰 숫자 처리

열에는 필요한 값이나 전체 자릿수가 크기 때문에 특별한 고려가 필요한 숫자 값이 포함될 수 있습니다. 집계 변환에는 숫자가 크거나 전체 자릿수가 많은 경우를 특별하게 처리하기 위해 출력 열에 설정할 수 있는 IsBig 속성이 포함됩니다. 열 값이 40억을 넘거나 부동 소수점 데이터 형식보다 큰 전체 자릿수가 필요한 경우에는 IsBig을 1로 설정해야 합니다.

IsBig 속성을 1로 설정하면 집계 변환의 출력이 다음과 같이 됩니다.

  • DT_R4 데이터 형식 대신 DT_R8 데이터 형식이 사용됩니다.
  • 카운트 결과가 DT_UI8 데이터 형식으로 저장됩니다.
  • 고유 카운트 결과가 DT_UI4 데이터 형식으로 저장됩니다.

[!참고] GROUP BY, Maximum 또는 Minimum 연산에서 사용되는 열에는 IsBig을 1로 설정할 수 없습니다.

성능 고려 사항

집계 변환에는 변환 성능을 향상시키기 위해 설정할 수 있는 일련의 속성이 포함됩니다.

  • 구성 요소 및 구성 요소 출력의 KeysKeysScale 속성을 설정합니다. Keys를 사용하면 변환에서 처리할 정확한 개수의 키를 지정할 수 있으며 KeysScale을 사용하면 대략적인 개수의 키를 지정할 수 있습니다. 패키지가 실행될 때 변환에서 받는 값인 Keys 값을 지정하면 변환에서 캐시된 합계의 재구성을 방지하여 성능이 향상됩니다.
  • 구성 요소의 CountDistinctKeysCountDistinctScale 속성을 설정합니다. CountDistinctKeys를 사용하면 변환에서 고유 수 연산에 대해 처리할 정확한 개수의 키를 지정할 수 있습니다. CountDistinctScale을 사용하면 고유 수 연산에 대한 대략적인 개수의 키를 지정할 수 있습니다. 패키지가 실행될 때 변환에서 받는 값인 CountDistinctScale 값을 지정하면 변환에서 캐시된 합계의 재구성을 방지하여 성능이 향상됩니다.

집계 변환 구성

SSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.

집계 변환 편집기 대화 상자에서 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하십시오.

고급 편집기 대화 상자에는 프로그래밍 방식으로 설정할 수 있는 속성이 표시됩니다. 고급 편집기 대화 상자를 사용하거나 프로그래밍 방식으로 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하십시오.

속성 설정 방법을 보려면 다음 항목 중 하나를 클릭하십시오.

참고 항목

개념

패키지 데이터 흐름 만들기
Integration Services 변환

도움말 및 정보

SQL Server 2005 지원 받기