집계 변환
집계 변환은 Average와 같은 집계 함수를 열 값에 적용하고 결과를 변환 출력에 복사합니다. 집계 함수 외에도 변환은 집계할 그룹을 지정하는 데 사용할 수 있는 GROUP BY 절을 제공합니다.
집계 변환은 변환, 출력 및 열 수준에서 구성됩니다.
- 변환 수준에서는 변환에서 처리할 키 및 고유 카운트 키의 수를 지정하고 집계 중에 메모리를 확장할 수 있는 백분율을 지정하여 집계 변환을 성능에 맞게 구성합니다. 또한 제수 값이 0일 때 오류가 발생하는 대신 경고를 생성하도록 집계 변환을 구성할 수 있습니다.
- 출력 수준에서는 출력에 포함되도록 예상되는 키의 수를 지정하여 집계 변환을 성능에 맞게 구성합니다. 집계 변환에는 여러 출력이 지원되며 각 출력은 서로 다르게 구성될 수 있습니다.
- 열 수준에서는 열이 수행하는 집계와 집계의 비교 옵션을 지정합니다. 또한 각 열에 포함된 키 및 고유 카운트 키의 수를 지정하고 열에 큰 숫자 값이나 전체 자릿수가 높은 숫자 값이 있는 경우 열을 IsBig으로 식별하여 집계 변환을 성능에 맞게 구성할 수 있습니다.
집계 변환은 비동기적이며 따라서 행별로 데이터를 사용하고 게시하지 않습니다. 대신 전체 행 집합을 사용하고 그룹화 및 집계를 수행한 다음 결과를 게시합니다.
이 변환은 어떤 열을 통해서도 전달되지 않지만 게시하는 데이터에 대한 데이터 흐름에 새 열을 만듭니다. 집계 함수가 적용하는 입력 열이나 변환에서 그룹화를 위해 사용되는 입력 열만 변환 출력으로 복사됩니다. 예를 들어 집계 변환 입력에는 CountryRegion, City 및 Population과 같은 3개의 열만 포함될 수 있습니다. 변환은 CountryRegion 열에 따라 그룹화되며 Sum 함수를 Population 열에 적용합니다. 따라서 출력에는 City 열이 포함되지 않습니다.
또한 집계 변환에 여러 출력을 추가하고 각 집계를 서로 다른 출력으로 지정할 수 있습니다. 예를 들어 집계 변환이 Sum 및 Average 함수를 적용하는 경우 각 집계는 서로 다른 출력으로 지정될 수 있습니다.
단일 입력 열에 여러 집계를 적용할 수 있습니다. 예를 들어 Sales라는 입력 열에 대한 합계 및 평균 값이 필요하면 Sum 및 Average 함수를 모두 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로 설정할 수 없습니다.
성능 고려 사항
집계 변환에는 변환 성능을 향상시키기 위해 설정할 수 있는 일련의 속성이 포함됩니다.
- 구성 요소 및 구성 요소 출력의 Keys 및 KeysScale 속성을 설정합니다. Keys를 사용하면 변환에서 처리할 정확한 개수의 키를 지정할 수 있으며 KeysScale을 사용하면 대략적인 개수의 키를 지정할 수 있습니다. 패키지가 실행될 때 변환에서 받는 값인 Keys 값을 지정하면 변환에서 캐시된 합계의 재구성을 방지하여 성능이 향상됩니다.
- 구성 요소의 CountDistinctKeys 및 CountDistinctScale 속성을 설정합니다. CountDistinctKeys를 사용하면 변환에서 고유 수 연산에 대해 처리할 정확한 개수의 키를 지정할 수 있습니다. CountDistinctScale을 사용하면 고유 수 연산에 대한 대략적인 개수의 키를 지정할 수 있습니다. 패키지가 실행될 때 변환에서 받는 값인 CountDistinctScale 값을 지정하면 변환에서 캐시된 합계의 재구성을 방지하여 성능이 향상됩니다.
집계 변환 구성
SSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.
집계 변환 편집기 대화 상자에서 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하십시오.
고급 편집기 대화 상자에는 프로그래밍 방식으로 설정할 수 있는 속성이 표시됩니다. 고급 편집기 대화 상자를 사용하거나 프로그래밍 방식으로 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하십시오.
속성 설정 방법을 보려면 다음 항목 중 하나를 클릭하십시오.
- 방법: 집계 변환을 사용하여 데이터 집합의 값 집계
- 방법: 구성 요소 편집기를 사용하여 데이터 흐름 구성 요소 속성 설정
- 방법: 속성 창에서 데이터 흐름 구성 요소의 속성 설정
- 방법: 고급 편집기를 사용하여 데이터 흐름 구성 요소의 속성 설정
- 방법: 출력에 정렬 특성 설정
참고 항목
개념
패키지 데이터 흐름 만들기
Integration Services 변환