다음을 통해 공유


집계 변환

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

운영

집계 변환은 다음 작업을 지원합니다.

수술 설명
기준에 따른 그룹화 데이터 세트를 그룹으로 나눕니다. 그룹화에는 모든 종류의 데이터 형식의 열을 사용할 수 있습니다. 자세한 내용은 GROUP BY(Transact-SQL)를 참조하세요.
합계 열의 값을 합산합니다. 숫자 데이터 형식의 열만 합계를 계산할 수 있습니다. 자세한 내용은 SUM(Transact-SQL)을 참조하세요.
평균 열에 포함된 열 값의 평균을 반환합니다. 숫자 데이터 형식의 열만 평균을 계산할 수 있습니다. 자세한 내용은 AVG(Transact-SQL)를 참조하세요.
수량 그룹의 항목 개수를 반환합니다. 자세한 내용은 COUNT(Transact-SQL)를 참조하세요.
고유 수 그룹에 있는 Null이 아닌 고유 값의 수를 반환합니다.
최소 그룹의 최소값을 반환합니다. 자세한 내용은 MIN(Transact-SQL)을 참조하세요. Transact-SQL MIN 함수와는 반대로 이 연산은 숫자, 날짜 및 시간 데이터 형식에서만 사용할 수 있습니다.
최대 그룹의 최대값을 반환합니다. 자세한 내용은 MAX(Transact-SQL)를 참조하세요. Transact-SQL MAX 함수와는 반대로 이 연산은 숫자, 날짜 및 시간 데이터 형식에서만 사용할 수 있습니다.

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

  • GROUP BY 절에서 null은 다른 열 값처럼 처리됩니다. 그룹화 열에 둘 이상의 null 값이 포함된 경우 null 값은 단일 그룹에 배치됩니다.

  • COUNT(열 이름) 및 COUNT (DISTINCT 열 이름) 함수에서 null은 무시되고 결과는 명명된 열에 null 값이 포함된 행을 제외합니다.

  • COUNT(*) 함수에서는 null 값이 있는 행을 포함하여 모든 행이 계산됩니다.

집계의 큰 숫자

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

IsBig 속성을 1로 설정하면 다음과 같은 방법으로 집계 변환의 출력에 영향을 줍니다.

  • DT_R8 데이터 형식이 DT_R4 데이터 형식 대신 사용됩니다.

  • 개수 결과는 DT_UI8 데이터 형식으로 저장됩니다.

  • Distinct count 결과는 DT_UI4 데이터 형식으로 저장됩니다.

비고

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

성능 고려 사항

집계 변환에는 변환 성능을 향상시키기 위해 설정할 수 있는 속성 집합이 포함되어 있습니다.

  • Group by 연산을 수행할 때 구성 요소의 키 또는 KeysScale 속성과 구성 요소 출력을 설정합니다. Keys를 사용하면 변환에서 처리할 정확한 개수의 키를 지정할 수 있습니다. (이 컨텍스트에서 Keys는 Group by 연산에서 생성될 것으로 예상되는 그룹 수를 의미합니다.) KeysScale을 사용하여 대략적인 키 수를 지정할 수 있습니다. 키 또는 KeyScale에 적절한 값을 지정하면 변환에서 캐시하는 데이터에 적절한 메모리를 할당할 수 있으므로 성능이 향상됩니다.

  • Distinct count 연산을 수행할 때 구성 요소의 CountDistinctKeys 또는 CountDistinctScale 속성을 설정합니다. CountDistinctKeys를 사용하면 변환에서 Count distinct 연산에 대해 처리할 정확한 개수의 키를 지정할 수 있습니다. (이 컨텍스트에서 CountDistinctKeys는 Distinct count 연산으로 발생할 것으로 예상되는고유 값의 수를 나타냅니다.) CountDistinctScale을 사용하면 고유 카운트 작업에 대한 대략적인 키 수를 지정할 수 있습니다. CountDistinctKeys 또는 CountDistinctScale에 적절한 값을 지정하면 변환에서 변환이 캐시하는 데이터에 적절한 메모리를 할당할 수 있으므로 성능이 향상됩니다.

집계 변환 구성

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

  • 변환 수준에서 다음 값을 지정하여 성능에 대한 집계 변환을 구성합니다.

    • Group by 연산의 결과로 예상되는 그룹 수입니다.

    • Count distinct 연산의 결과로 예상되는 고유 값의 수입니다.

    • 집계 중에 메모리를 확장할 수 있는 비율

    또한 집계 변환은 수식자 값이 0일 때 실패하는 대신 경고를 생성하도록 구성할 수 있습니다.

  • 출력 수준에서 집계 변환의 성능을 최적화하려면 Group by 연산의 결과로 예상되는 그룹 수를 지정하십시오. 집계 변환에는 여러 출력이 지원되며 각 출력은 서로 다르게 구성될 수 있습니다.

  • 열 수준에서 다음 값을 지정합니다.

    • 열이 수행하는 집계입니다.

    • 집계의 비교 옵션입니다.

또한 다음 값을 지정하여 집계 변환을 성능에 맞게 구성할 수 있습니다.

  • 열에서 Group by 연산의 결과로 예상되는 그룹 수입니다.

  • 열에서 Count distinct 연산으로 인해 발생할 것으로 예상되는 고유 값의 수입니다.

또한 열에 큰 숫자 값이나 전체 자릿수가 높은 숫자 값이 있는 경우 열을 IsBig으로 식별할 수 있습니다.

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

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

집계 변환에 여러 출력을 추가하고 각 집계를 다른 출력으로 보낼 수도 있습니다. 예를 들어 집계 변환이 Sum 및 the Average 함수를 적용하는 경우 각 집계는 서로 다른 출력으로 지정될 수 있습니다.

단일 입력 열에 여러 집계를 적용할 수 있습니다. 예를 들어 Sales라는 입력 열의 합계와 평균 값을 원하는 경우 Sales 열에 Sum 및 Average 함수를 모두 적용하도록 변환을 구성할 수 있습니다.

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

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

집계 변환 편집기 대화 상자에서 설정할 수 있는 속성에 대한 자세한 내용은 다음 항목 중 하나를 클릭합니다.

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

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

집계 변환을 사용하여 데이터 세트의 값 집계

또한 참조하십시오

데이터 흐름
Integration Services 변환