Transformación Agregado

Se aplica a:SQL Server SSIS Integration Runtime en Azure Data Factory

La transformación Agregado aplica funciones de agregado, como Average, a los valores de columnas y copia los resultados en la salida de 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.

Operations

La transformación Agregado admite las siguientes operaciones.

Operación Descripción
Agrupar por Divide los conjuntos de datos en grupos. Se pueden usar columnas de cualquier tipo de datos para la agrupación. Para más información, vea GROUP BY (Transact-SQL).
Sum Suma los valores de una columna. Solo podrán sumarse las columnas con tipos de datos numéricos. Para más información, vea SUM (Transact-SQL).
Average Devuelve la media de los valores de columna de una columna. Solo podrá calcularse la media de las columnas con tipos de datos numéricos. Para más información, vea AVG (Transact-SQL).
Recuento Devuelve el número de elementos de un grupo. Para más información, vea COUNT (Transact-SQL).
COUNT DISTINCT Devuelve el número de valores únicos distintos de NULL de un grupo.
Mínima Devuelve el valor mínimo en un grupo. Para 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.
Máxima Devuelve el valor máximo en un grupo. Para 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 valores NULL 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 valores NULL 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.

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.

  • Cuando realice una operación Group by , defina las propiedades Keys o KeysScale del componente y las salidas de componente. Si usa Keys, puede especificar el número exacto de claves que se espera que la transformación administre. (En este contexto, Keys hace referencia al número de grupos que se espera como resultado de una operación Group by ). Con KeysScale, puede especificar un número aproximado de claves. Si especifica un valor correcto para Keys o KeyScale, mejorará el rendimiento porque la transformación podrá asignar la memoria adecuada a los datos que almacena en memoria caché.

  • Cuando realice una operación Distinct count , defina las propiedades CountDistinctKeys o CountDistinctScale del componente. Con CountDistinctKeys, puede especificar el número exacto de claves que se espera que la transformación controle en una operación count distinct. (En este contexto, CountDistinctKeys hace referencia al número de valores distintos que se esperan como resultado de una operación Distinct count ). Mediante CountDistinctScale, puede especificar una cantidad aproximada de claves para una operación count distinct. Si especifica un valor correcto para CountDistinctKeys o CountDistinctScale, mejorará el rendimiento porque la transformación podrá asignar la memoria adecuada a los datos que almacena en memoria caché.

Configuración de la transformación Agregado

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

  • En el nivel de la transformación, se configura la transformación Agregado a efectos de rendimiento especificando los valores siguientes:

    • El número de grupos que esperan obtenerse como resultado de la operación GROUP BY .

    • El número de valores distintos que esperan obtenerse como resultado de la operación COUNT DISTINCT .

    • El porcentaje en el que la memoria se puede ampliar 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, la transformación Agregado se configura a efectos de rendimiento especificando el número de grupos que se esperan como resultado de una operación GROUP BY . La transformación Agregado admite varias salidas y cada una se puede configurar de forma diferente.

  • En el nivel de columna, se especifican los valores siguientes:

    • La agregación que la columna realiza.

    • Las opciones de comparación de la agregación.

La transformación Agregado también se puede configurar a efectos de rendimiento especificando estos valores:

  • El número de grupos que se espera obtener como resultado de la operación GROUP BY de la columna.

  • El número de valores distintos que se espera obtener como resultado de la operación COUNT DISTINCT de la columna.

También puede identificar 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. Solo 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 transformación. Por ejemplo, una entrada de la transformación Agregado puede tener tres columnas: CountryRegion, Cityy 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 quiere los valores de suma y promedio de una columna de entrada denominada 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.

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

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:

Agregar valores en un conjunto de datos mediante la transformación Agregado

Editor de transformación Agregado (pestaña Agregaciones)

Use la pestaña Agregaciones del cuadro de diálogo Editor de transformación Agregado para especificar las columnas que desea agregar y las propiedades de agregación. Puede aplicar diversas agregaciones. Esta transformación no genera una salida de errores.

Nota

Las opciones para el recuento de claves, la escala de claves, la clave Count Distinct y la escala de claves distintas estarán disponibles en el componente si se especifican en la pestaña Avanzadas , en la salida si se especifican en la pantalla avanzada de la pestaña Agregaciones y en la columna si se especifican en la lista de columnas en la parte inferior de la pestaña Agregaciones .

En la transformación Agregado, Claves y Escala de claves hacen referencia al número de grupos que se esperan como resultado de una operación Agrupar por . Claves Count Distinct y Escala Count Distinct hacen referencia al número de valores distintos que se esperan como resultado de una operación Recuento distinto .

Opciones

Avanzadas/Básicas
Muestra u oculta opciones para configurar diversas agregaciones para varias salidas. De forma predeterminada, las opciones Avanzadas aparecen ocultas.

Nombre de agregación
En la pantalla Avanzadas, escriba un nombre descriptivo para la agregación.

Agrupar por columnas
En la pantalla Avanzadas, seleccione las columnas que quiere agrupar en la lista Columnas de entrada disponibles como se explica a continuación.

Escala de claves
En la pantalla Avanzadas, especifique opcionalmente el número aproximado de claves que podrá escribir la agregación. De forma predeterminada, el valor de esta opción es No especificado. Si se seleccionan las propiedades Escala de claves y Claves , tendrá prioridad el valor de Claves .

Value Descripción
Sin especificar No se utiliza la propiedad Escala de claves.
Bajo La agregación podrá escribir aproximadamente 500 000 claves.
Media La agregación podrá escribir aproximadamente 5.000.000 claves.
Alto La agregación podrá escribir más de 25.000.000 claves.

Claves
En la pantalla Avanzadas, especifique opcionalmente el número exacto de claves que podrá escribir la agregación. Si se especifican Escala de claves y Claves , tendrá prioridad Claves .

Columnas de entrada disponibles
Seleccione una columna en la lista de columnas de entrada disponibles con las casillas de la tabla.

Columna de entrada
Seleccione las columnas de entrada disponibles de la lista.

Alias de salida
Escriba un alias para cada columna. El nombre predeterminado es el de la columna de entrada, pero puede elegir cualquier nombre descriptivo único.

operación
Elija una operación de la lista de operaciones disponibles con la siguiente tabla como guía.

Operación Descripción
GroupBy Divide los conjuntos de datos en grupos. Podrán agruparse columnas con cualquier tipo de datos. Para obtener más información, vea GROUP BY.
Sum Suma los valores de una columna. Solo podrán sumarse las columnas con tipos de datos numéricos. Para obtener más información, vea SUM.
Average Devuelve la media de los valores de columna de una columna. Solo podrá calcularse la media de las columnas con tipos de datos numéricos. Para obtener más información, vea AVG.
Recuento Devuelve el número de elementos de un grupo. Para obtener más información, vea COUNT.
CountDistinct Devuelve el número de valores únicos distintos de NULL de un grupo. Para obtener más información, vea COUNT y Distinct.
Mínimo Devuelve el valor mínimo en un grupo. Está restringido a los tipos de datos numéricos.
Máximo Devuelve el valor máximo en un grupo. Está restringido a los tipos de datos numéricos.

Marcas de comparación
Si selecciona Agrupar por, use las casillas para controlar cómo realiza la transformación la comparación. Para obtener más información acerca de las opciones de comparación de cadenas, vea Comparing String Data.

Count Distinct Scale
Opcionalmente, puede especificar el número aproximado de valores DISTINCT que podrá escribir la agregación. De forma predeterminada, el valor de esta opción es No especificado. Si se especifican CountDistinctScale y CountDistinctKeys , tendrá prioridad CountDistinctKeys .

Value Descripción
Sin especificar No se utiliza la propiedad CountDistinctScale .
Bajo La agregación podrá escribir aproximadamente 500.000 valores DISTINCT.
Media La agregación podrá escribir aproximadamente 5 000 000 valores DISTINCT.
Alto La agregación podrá escribir más de 25.000.000 valores DISTINCT.

Count Distinct Keys
Opcionalmente, puede especificar el número exacto de valores DISTINCT que podrá escribir la agregación. Si se especifican CountDistinctScale y CountDistinctKeys , tendrá prioridad CountDistinctKeys .

Editor de transformación Agregado (pestaña Avanzadas)

Utilice la pestaña Avanzadas del cuadro de diálogo Editor de transformación Agregado para establecer las propiedades del componente, especificar agregaciones y establecer las propiedades de las columnas de entrada y salida.

Nota

Las opciones para el recuento de claves, la escala de claves, la clave Count Distinct y la escala de claves distintas estarán disponibles en el componente si se especifican en la pestaña Avanzadas , en la salida si se especifican en la pantalla avanzada de la pestaña Agregaciones y en la columna si se especifican en la lista de columnas en la parte inferior de la pestaña Agregaciones .

En la transformación Agregado, Claves y Escala de claves hacen referencia al número de grupos que se esperan como resultado de una operación Agrupar por . Claves Count Distinct y Escala Count Distinct hacen referencia al número de valores distintos que se esperan como resultado de una operación Recuento distinto .

Opciones

Escala de claves
Si lo desea, especifique el número aproximado de claves que espera la agregación. La transformación utiliza esta información para optimizar el tamaño de caché inicial. De forma predeterminada, el valor de esta opción es No especificado. Si se especifica tanto Escala de claves como Número de claves , prevalece la opción Número de claves .

Value Descripción
Sin especificar No se utiliza la propiedad Escala de claves .
Bajo La agregación podrá escribir aproximadamente 500 000 claves.
Media La agregación podrá escribir aproximadamente 5.000.000 claves.
Alto La agregación podrá escribir más de 25.000.000 claves.

Número de claves
Si lo desea, especifique el número exacto de claves que espera la agregación. La transformación utiliza esta información para optimizar el tamaño de caché inicial. Si se especifica tanto Escala de claves como Número de claves , prevalece la opción Número de claves .

Escala Count Distinct
Opcionalmente, puede especificar el número aproximado de valores DISTINCT que podrá escribir la agregación. De forma predeterminada, el valor de esta opción es No especificado. Si se especifica tanto Escala Count Distinct como Claves Count Distinct , prevalece la opción Claves Count Distinct .

Value Descripción
Sin especificar No se utiliza la propiedad CountDistinctScale.
Bajo La agregación podrá escribir aproximadamente 500.000 valores DISTINCT.
Media La agregación podrá escribir aproximadamente 5 000 000 valores DISTINCT.
Alto La agregación podrá escribir más de 25.000.000 valores DISTINCT.

Claves Count Distinct
Opcionalmente, puede especificar el número exacto de valores DISTINCT que podrá escribir la agregación. Si se especifica tanto Escala Count Distinct como Claves Count Distinct , prevalece la opción Claves Count Distinct .

Factor de ampliación automática
Utilice un valor comprendido entre 1 y 100 para especificar el porcentaje en el que se puede ampliar la memoria durante la agregación. De forma predeterminada, el valor de esta opción es 25%.

Consulte también

Flujo de datos
Transformaciones de Integration Services