집계 변환Aggregate Transformation

집계 변환은 Average와 같은 집계 함수를 열 값에 적용하고 결과를 변환 출력에 복사합니다.The Aggregate transformation applies aggregate functions, such as Average, to column values and copies the results to the transformation output. 집계 함수 외에도 변환은 집계할 그룹을 지정하는 데 사용할 수 있는 GROUP BY 절을 제공합니다.Besides aggregate functions, the transformation provides the GROUP BY clause, which you can use to specify groups to aggregate across.

작업Operations

집계 변환은 다음과 같은 연산을 지원합니다.The Aggregate transformation supports the following operations.

연산Operation DescriptionDescription
Group ByGroup by 데이터 집합을 그룹으로 나눕니다.Divides datasets into groups. 그룹화에는 모든 종류의 데이터 형식의 열을 사용할 수 있습니다.Columns of any data type can be used for grouping. 자세한 내용은 GROUP BY(Transact-SQL)를 참조하세요.For more information, see GROUP BY (Transact-SQL).
합계Sum 열에 있는 값의 합계를 계산합니다.Sums the values in a column. 숫자 데이터 형식의 열만 합계를 계산할 수 있습니다.Only columns with numeric data types can be summed. 자세한 내용은 SUM(Transact-SQL)을 참조하세요.For more information, see SUM (Transact-SQL).
평균Average 열에 있는 열 값의 평균을 반환합니다.Returns the average of the column values in a column. 숫자 데이터 형식의 열만 평균을 계산할 수 있습니다.Only columns with numeric data types can be averaged. 자세한 내용은 AVG(Transact-SQL)를 참조하세요.For more information, see AVG (Transact-SQL).
개수Count 그룹의 항목 개수를 반환합니다.Returns the number of items in a group. 자세한 내용은 COUNT(Transact-SQL)를 참조하세요.For more information, see COUNT (Transact-SQL).
Count distinctCount distinct 그룹에서 Null이 아닌 고유한 값의 개수를 반환합니다.Returns the number of unique nonnull values in a group.
최소Minimum 그룹의 최소값을 반환합니다.Returns the minimum value in a group. 자세한 내용은 MIN(Transact-SQL)을 참조하세요.For more information, see MIN (Transact-SQL). Transact-SQL MIN 함수와는 반대로 이 연산은 숫자, 날짜 및 시간 데이터 형식에서만 사용할 수 있습니다.In contrast to the Transact-SQL MIN function, this operation can be used only with numeric, date, and time data types.
최대값Maximum 그룹의 최대값을 반환합니다.Returns the maximum value in a group. 자세한 내용은 MAX(Transact-SQL)를 참조하세요.For more information, see MAX (Transact-SQL). Transact-SQL MAX 함수와는 반대로 이 연산은 숫자, 날짜 및 시간 데이터 형식에서만 사용할 수 있습니다.In contrast to the Transact-SQL MAX function, this operation can be used only with numeric, date, and time data types.

집계 변환은 SQL ServerSQL Server 관계형 데이터베이스 엔진과 동일한 방식으로 Null 값을 처리합니다.The Aggregate transformation handles null values in the same way as the SQL ServerSQL Server relational database engine. 이러한 동작은 SQL-92 표준에서 정의됩니다.The behavior is defined in the SQL-92 standard. 다음 규칙이 적용됩니다.The following rules apply:

  • GROUP BY 절에서 Null은 다른 열 값과 같이 취급됩니다.In a GROUP BY clause, nulls are treated like other column values. 그룹화 열에 둘 이상의 Null 값이 있다면 단일 그룹에 이 Null 값을 둡니다.If the grouping column contains more than one null value, the null values are put into a single group.

  • COUNT(column name) 및 COUNT (DISTINCT column name) 함수에서는 Null이 무시되고 결과에는 명명된 열에 Null 값이 포함된 행이 제외됩니다.In the COUNT (column name) and COUNT (DISTINCT column name) functions, nulls are ignored and the result excludes rows that contain null values in the named column.

  • COUNT () 함수에서는 Null 값이 포함된 행을 비롯한 모든 행의 개수가 계산됩니다.In the COUNT () function, all rows are counted, including rows with null values.

집계의 큰 숫자Big Numbers in Aggregates

열에는 필요한 값이나 전체 자릿수가 크기 때문에 특별한 고려가 필요한 숫자 값이 포함될 수 있습니다.A column may contain numeric values that require special consideration because of their large value or precision requirements. 집계 변환에는 숫자가 크거나 전체 자릿수가 많은 경우를 특별하게 처리하기 위해 출력 열에 설정할 수 있는 IsBig 속성이 포함됩니다.The Aggregation transformation includes the IsBig property, which you can set on output columns to invoke special handling of big or high-precision numbers. 열 값이 40억을 넘거나 부동 소수점 데이터 형식보다 큰 전체 자릿수가 필요한 경우에는 IsBig을 1로 설정해야 합니다.If a column value may exceed 4 billion or a precision beyond a float data type is required, IsBig should be set to 1.

IsBig 속성을 1로 설정하면 집계 변환의 출력이 다음과 같이 됩니다.Setting the IsBig property to 1 affects the output of the aggregation transformation in the following ways:

  • DT_R4 데이터 형식 대신 DT_R8 데이터 형식이 사용됩니다.The DT_R8 data type is used instead of the DT_R4 data type.

  • 카운트 결과가 DT_UI8 데이터 형식으로 저장됩니다.Count results are stored as the DT_UI8 data type.

  • 고유 카운트 결과가 DT_UI4 데이터 형식으로 저장됩니다.Distinct count results are stored as the DT_UI4 data type.

참고

GROUP BY, Maximum 또는 Minimum 연산에서 사용되는 열에는 IsBig을 1로 설정할 수 없습니다.You cannot set IsBig to 1 on columns that are used in the GROUP BY, Maximum, or Minimum operations.

성능 고려 사항Performance Considerations

집계 변환에는 변환 성능을 향상시키기 위해 설정할 수 있는 일련의 속성이 포함됩니다.The Aggregate transformation includes a set of properties that you can set to enhance the performance of the transformation.

  • Group by 연산을 수행할 때 구성 요소 및 구성 요소 출력의 Keys 또는 KeysScale 속성을 설정합니다.When performing a Group by operation, set the Keys or KeysScale properties of the component and the component outputs. Keys를 사용하면 변환에서 처리할 정확한 개수의 키를 지정할 수 있습니다.Using Keys, you can specify the exact number of keys the transformation is expected to handle. 여기서 말하는 Keys는 Group by 연산의 결과로 반환될 그룹 수를 나타냅니다. KeysScale을 사용하면 대략적인 개수의 키를 지정할 수 있습니다.(In this context, Keys refers to the number of groups that are expected to result from a Group by operation.) Using KeysScale, you can specify an approximate number of keys. Keys 또는 KeyScale에 대한 적절한 값을 지정하는 경우 변환이 캐시하는 데이터에 대해 적합한 메모리를 할당할 수 있으므로 성능이 향상됩니다.When you specify an appropriate value for Keys or KeyScale, you improve performance because the tranformation is able to allocate adequate memory for the data that the transformation caches.

  • 고유 카운트 연산을 수행할 때 구성 요소의 CountDistinctKeys 또는 CountDistinctScale 속성을 설정합니다.When performing a Distinct count operation, set the CountDistinctKeys or CountDistinctScale properties of the component. CountDistinctKeys를 사용하면 변환에서 Count distinct 연산에 대해 처리할 정확한 개수의 키를 지정할 수 있습니다.Using CountDistinctKeys, you can specify the exact number of keys the transformation is expected to handle for a count distinct operation. 여기서 말하는 CountDistinctKeys는 고유 카운트 연산의 결과로 반환될 고유 값 수를 나타냅니다. CountDistinctScale을 사용하면 Count distinct 연산에 대한 대략적인 개수의 키를 지정할 수 있습니다.(In this context, CountDistinctKeys refers to the number of distinct values that are expected to result from a Distinct count operation.) Using CountDistinctScale, you can specify an approximate number of keys for a count distinct operation. CountDistinctKeys 또는 CountDistinctScale에 대한 적절한 값을 지정하는 경우 변환이 해당 변환이 캐시하는 데이터에 대해 적합한 메모리를 할당할 수 있으므로 성능이 향상됩니다.When you specify an appropriate value for CountDistinctKeys or CountDistinctScale, you improve performance because the transformation is able to allocate adequate memory for the data that the transformation caches.

집계 변환 구성Aggregate Transformation Configuration

집계 변환은 변환, 출력 및 열 수준에서 구성됩니다.You configure the Aggregate transformation at the transformation, output, and column levels.

  • 변환 수준에서는 다음 값을 지정하여 집계 변환을 성능에 맞게 구성합니다.At the transformation level, you configure the Aggregate transformation for performance by specifying the following values:

    • Group by 연산의 결과로 반환될 그룹 수The number of groups that are expected to result from a Group by operation.

    • Count distinct 연산의 결과로 반환될 고유 값 수The number of distinct values that are expected to result from a Count distinct operation.

    • 집계 중에 메모리를 확장할 수 있는 비율The percentage by which memory can be extended during the aggregation.

      또한 제수 값이 0일 때 오류가 발생하는 대신 경고를 생성하도록 집계 변환을 구성할 수 있습니다.The Aggregate transformation can also be configured to generate a warning instead of failing when the value of a divisor is zero.

  • 출력 수준에서는 Group by 연산의 결과로 반환될 그룹 수를 지정하여 집계 변환을 성능에 맞게 구성합니다.At the output level, you configure the Aggregate transformation for performance by specifying the number of groups that are expected to result from a Group by operation. 집계 변환에는 여러 출력이 지원되며 각 출력은 서로 다르게 구성될 수 있습니다.The Aggregate transformation supports multiple outputs, and each can be configured differently.

  • 열 수준에서는 다음 값을 지정합니다.At the column level, you specify the following values:

    • 열에서 수행하는 집계The aggregation that the column performs.

    • 집계의 비교 옵션The comparison options of the aggregation.

    또한 다음 값을 지정하여 집계 변환을 성능에 맞게 구성할 수 있습니다.You can also configure the Aggregate transformation for performance by specifying these values:

  • 열에서 Group by 연산의 결과로 반환될 그룹 수The number of groups that are expected to result from a Group by operation on the column.

  • 열에서 Count distinct 연산의 결과로 반환될 고유 값 수The number of distinct values that are expected to result from a Count distinct operation on the column.

    또한 열에 큰 숫자 값이나 전체 자릿수가 높은 숫자 값이 있는 경우 열을 IsBig으로 식별할 수 있습니다.You can also identify columns as IsBig if a column contains large numeric values or numeric values with high precision.

    집계 변환은 비동기적이며 따라서 행별로 데이터를 사용하고 게시하지 않습니다.The Aggregate transformation is asynchronous, which means that it does not consume and publish data row by row. 대신 전체 행 집합을 사용하고 그룹화 및 집계를 수행한 다음 결과를 게시합니다.Instead it consumes the whole rowset, performs its groupings and aggregations, and then publishes the results.

    이 변환은 어떤 열을 통해서도 전달되지 않지만 게시하는 데이터에 대한 데이터 흐름에 새 열을 만듭니다.This transformation does not pass through any columns, but creates new columns in the data flow for the data it publishes. 집계 함수가 적용하는 입력 열이나 변환에서 그룹화를 위해 사용되는 입력 열만 변환 출력으로 복사됩니다.Only the input columns to which aggregate functions apply or the input columns the transformation uses for grouping are copied to the transformation output. 예를 들어 집계 변환 입력에는 CountryRegion, CityPopulation과 같은 3개의 열만 포함될 수 있습니다.For example, an Aggregate transformation input might have three columns: CountryRegion, City, and Population. 변환은 CountryRegion 열에 따라 그룹화되며 Sum 함수를 Population 열에 적용합니다.The transformation groups by the CountryRegion column and applies the Sum function to the Population column. 따라서 출력에는 City 열이 포함되지 않습니다.Therefore the output does not include the City column.

    또한 집계 변환에 여러 출력을 추가하고 각 집계를 서로 다른 출력으로 지정할 수 있습니다.You can also add multiple outputs to the Aggregate transformation and direct each aggregation to a different output. 예를 들어 집계 변환이 Sum 및 the Average 함수를 적용하는 경우 각 집계는 서로 다른 출력으로 지정될 수 있습니다.For example, if the Aggregate transformation applies the Sum and the Average functions, each aggregation can be directed to a different output.

    단일 입력 열에 여러 집계를 적용할 수 있습니다.You can apply multiple aggregations to a single input column. 예를 들어 Sales라는 입력 열에 대한 합계 및 평균 값이 필요하면 Sum 및 Average 함수를 모두 Sales 열에 적용하도록 변환을 구성할 수 있습니다.For example, if you want the sum and average values for an input column named Sales, you can configure the transformation to apply both the Sum and Average functions to the Sales column.

    집계 변환에는 하나의 입력과 하나 이상의 출력이 포함됩니다.The Aggregate transformation has one input and one or more outputs. 오류 출력은 지원하지 않습니다.It does not support an error output.

    SSISSSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.You can set properties through SSISSSIS Designer or programmatically.

    집계 변환 편집기 대화 상자에서 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하십시오.For more information about the properties that you can set in the Aggregate Transformation Editor dialog box, click one of the following topics:

  • 집계 변환 편집기(집계 탭)Aggregate Transformation Editor (Aggregations Tab)

  • 집계 변환 편집기(고급 탭)Aggregate Transformation Editor (Advanced Tab)

    고급 편집기 대화 상자에는 프로그래밍 방식으로 설정할 수 있는 속성이 표시됩니다.The Advanced Editor dialog box reflects the properties that can be set programmatically. 고급 편집기 대화 상자를 사용하거나 프로그래밍 방식으로 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하세요.For more information about the properties that you can set in the Advanced Editor dialog box or programmatically, click one of the following topics:

  • 공용 속성Common Properties

  • 변환 사용자 지정 속성Transformation Custom Properties

    속성 설정 방법을 보려면 다음 항목 중 하나를 클릭하세요.For more information about how to set properties, click one of the following topics:

  • 집계 변환을 사용하여 데이터 집합의 값 집계Aggregate Values in a Dataset by Using the Aggregate Transformation

  • 데이터 흐름 구성 요소의 속성 설정Set the Properties of a Data Flow Component

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

집계 변환을 사용하여 데이터 집합의 값 집계Aggregate Values in a Dataset by Using the Aggregate Transformation

관련 항목:See Also

데이터 흐름 Data Flow
Integration Services 변환Integration Services Transformations