Compartir a través de


Transformación Agregado

La transformación Agregado aplica funciones de agregado, como Average, a los valores de columnas y copia los resultados en la salida de la transformación. Además de las funciones de agregado, la transformación proporciona la cláusula GROUP BY, que se puede usar para especificar los grupos en los que se debe realizar el agregado.

La transformación Agregado se configura en los niveles de transformación, salida y columna.

  • En el nivel de transformación, se configura la transformación Agregado para el rendimiento especificando la cantidad de claves y claves de recuento diferente que se espera que la transformación controle y el porcentaje que se puede ampliar la memoria durante la agregación. La transformación Agregado también se puede configurar para generar una advertencia en lugar de un error cuando el valor de un divisor es cero.
  • En el nivel de salida, se configura la transformación Agregado para el rendimiento especificando la cantidad de claves que se espera que contenga la salida. La transformación Agregado admite varias salidas y cada una se puede configurar de forma diferente.
  • En el nivel de columna, se especifica la agregación realizada por la columna y las opciones de comparación de la agregación. También puede configurar la transformación Agregado para el rendimiento especificando la cantidad de claves y claves de recuento diferente que contiene cada columna, e identificando las columnas como IsBig si una columna contiene valores numéricos grandes o valores numéricos con alta precisión.

La transformación Agregado es asincrónica, lo que significa que no utiliza ni publica datos fila por fila. En lugar de ello, utiliza todo el conjunto de filas, realiza sus agrupaciones y agregaciones, y, seguidamente, publica los resultados.

Esta transformación no pasa por ninguna columna, sino que crea nuevas columnas en el flujo de datos para los datos que publica. Sólo las columnas de entrada a las que se aplican las funciones de agregado o las columnas de entrada que usa la transformación para agrupar se copian en la salida de la transformación. Por ejemplo, una entrada de la transformación Agregado puede tener tres columnas: CountryRegion, City y Population. La transformación agrupa de acuerdo con la columna CountryRegion y aplica la función Sum a la columna Population. Por tanto, la salida no incluye la columna City.

Puede también agregar varias salidas a la transformación Agregado y dirigir cada agregación a una salida diferente. Por ejemplo, si la transformación Agregado aplica las funciones Sum y Average, cada agregación se puede dirigir a una salida diferente.

Puede aplicar varias agregaciones a una sola columna de entrada. Por ejemplo, si desea los valores de suma y promedio de una columna de entrada llamada Sales, puede configurar la transformación para aplicar las funciones Sum y Average a la columna Sales.

La transformación Agregado tiene una entrada y una o varias salidas. No admite una salida de error.

Operaciones

La transformación Agregado admite las siguientes operaciones.

Operación Descripción

GROUP BY

Divide conjuntos de datos en grupos. Se pueden usar columnas de cualquier tipo de datos para la agrupación. Para obtener más información, vea GROUP BY (Transact-SQL).

SUM

Suma los valores en una columna. Sólo se pueden sumar las columnas con datos de tipo numérico. Para obtener más información, vea SUM (Transact-SQL).

AVG

Devuelve el promedio de los valores de columna en una columna. Sólo se pueden obtener el promedio de las columnas con datos de tipo numérico. Para obtener más información, vea AVG (Transact-SQL).

COUNT

Devuelve el número de elementos de un grupo. Para obtener más información, vea COUNT (Transact-SQL).

COUNT DISTINCT

Devuelve el número de valores únicos diferentes de NULL de un grupo. Para obtener más información, vea Eliminar duplicados con DISTINCT.

MIN

Devuelve el valor mínimo en un grupo. Para obtener más información, vea MIN (Transact-SQL). En comparación con la función MIN de Transact-SQL, esta operación se puede usar únicamente con tipos de datos numéricos, de fecha y hora.

MAX

Devuelve el valor máximo en un grupo. Para obtener más información, vea MAX (Transact-SQL). En comparación con la función MAX de Transact-SQL, esta operación se puede usar únicamente con tipos de datos numéricos, de fecha y hora.

La transformación Agregado controla los valores NULL de la misma forma que el motor de base de datos relacional de SQL Server. Este comportamiento se define en el estándar SQL-92. Se aplican las reglas siguientes:

  • En una cláusula GROUP BY, los NULLS se tratan como cualquier otro valor de columna. Si la columna de agrupamiento contiene varios valores NULL, éstos se colocan en un grupo individual.
  • En las funciones COUNT (nombre de columna) y COUNT (nombre de columna DISTINCT), los NULLS se omiten y el resultado excluye las filas que contienen valores NULL en la columna con nombre.
  • En la función COUNT (*), se cuentan todas las filas, incluso las filas con valores NULL.

Control de números grandes en agregados

Una columna puede contener valores numéricos que requieren una consideración especial debido a su elevado valor o requisitos de precisión. La transformación Agregado incluye la propiedad IsBig, que se puede establecer en columnas de salida para invocar un control especial de números grandes o de alta precisión. Si el valor de la columna puede superar los 4 mil millones o se requiere una precisión más allá del tipo de datos float, IsBig se debe establecer en 1.

Si se establece la propiedad IsBig en 1, esto afecta la salida de la transformación Agregado de las siguientes maneras:

  • Se usa el tipo de datos DT_R8 en lugar del tipo de datos DT_R4.
  • Los resultados del recuento se almacenan como el tipo de datos DT_UI8.
  • Los resultados del recuento diferente se almacenan como el tipo de datos DT_UI4.

[!NOTA] No se puede establecer IsBig en 1 en columnas que se usan en las operaciones GROUP BY, MAX y MIN.

Consideraciones de rendimiento

La transformación Agregado incluye un conjunto de propiedades que se pueden establecer para mejorar el rendimiento de la transformación.

  • Establezca las propiedades Keys y KeysScale del componente y las salidas del componente. El uso de Keys, permite especificar la cantidad exacta de claves que se supone que la transformación controlará y el uso de KeysScale, permite especificar una cantidad aproximada de claves. Cuando se especifica un valor para Keys, que es el valor que recibirá la transformación cuando se ejecute el paquete, la transformación evita reorganizar los totales almacenados en caché, mejorando el rendimiento.
  • Establezca las propiedades CountDistinctKeys y CountDistinctScale del componente. Mediante CountDistinctKeys,, puede especificar la cantidad exacta de claves que se espera que la transformación controle para una operación de recuento diferente. Mediante CountDistinctScale, puede especificar una cantidad aproximada de claves para una operación de recuento diferente. Cuando se especifica un valor para CountDistinctScale que es el valor que recibirá la transformación cuando se ejecute el paquete, la transformación también evita reorganizar los totales almacenados en caché, mejorando el rendimiento.

Configurar la transformación Agregado

Puede establecer propiedades a través del Diseñador SSIS o mediante programación.

Para obtener más información sobre las propiedades que se pueden configurar en el cuadro de diálogo Editor de transformación Agregado, haga clic en uno de los siguientes temas:

El cuadro de diálogo Editor avanzado indica las propiedades que se pueden establecer mediante programación. Para obtener más información acerca de las propiedades que puede establecer a través del cuadro de diálogo Editor avanzado o mediante programación, haga clic en uno de los temas siguientes:

Para obtener más información sobre cómo establecer valores de propiedades, haga clic en uno de los temas siguientes:

Vea también

Conceptos

Crear un flujo de datos de paquetes
Transformaciones de Integration Services

Ayuda e información

Obtener ayuda sobre SQL Server 2005