Compartir a través de


Transformación Agregar en Asignación de Data Flow

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

Los flujos de datos están disponibles en las canalizaciones Azure Data Factory y Azure Synapse. Este artículo se aplica a los flujos de datos de asignación. Si carece de experiencia con las transformaciones, consulte el artículo de introducción Transformación de datos mediante flujos de datos de asignación.

En la transformación Agregar se definen las agregaciones de columnas de flujos de datos. Mediante el Generador de expresiones, puede definir diferentes tipos de agregaciones, tales como SUM, MIN, MAX y COUNT agrupados por columnas calculadas o existentes.

Agrupar por

Seleccione una columna existente o cree una nueva columna calculada para usarla como una cláusula Agrupar por para la agregación. Para usar una columna existente, selecciónela en la lista desplegable. Para crear una nueva columna calculada, mantenga el mouse sobre la cláusula y haga clic en Columna calculada. Se abrirá el generador de expresiones de flujo de datos. Una vez creada la columna calculada, escriba el nombre de la columna de salida en el campo Name as (Nombre como). Si desea agregar una cláusula Agrupar por adicional, mantenga el mouse sobre una cláusula existente y haga clic en el icono "más".

Aggregate transformation group by settings

Una cláusula Agrupar por es opcional en una transformación Agregar.

Columnas agregadas

Vaya a la pestaña Agregados para generar las expresiones de agregación. Puede sobrescribir una columna existente con una agregación, o bien crear un campo nuevo con un nombre nuevo. La expresión de agregación se escribirá en el cuadro de la derecha, junto al selector de nombre de columna. Para editar la expresión, haga clic en el cuadro de texto y abra el generador de expresiones. Para agregar más columnas agregadas, haga clic en Agregar encima de la lista de columnas o en el icono de signo más junto a una columna agregada existente. Elija Agregar columna o Add column pattern (Agregar patrón de columna). Cada expresión de agregación debe contener al menos una función de agregado.

Aggregate settings

Nota:

En el modo Depurar, el Generador de expresiones no puede generar vistas previas de los datos con las funciones de agregado. Para ver las vistas previas de los datos para las transformaciones Agregar, cierre el Generador de expresiones y vea los datos a través de la pestaña "Vista previa de los datos".

Patrones de columnas

Utilice patrones de columna para aplicar la misma agregación a un conjunto de columnas. Esto resulta útil si desea que persistan muchas columnas del esquema de entrada, ya que se anulan de manera predeterminada. Use una heurística como first() para que las columnas de entrada persistan en la agregación.

Reconexión de filas y columnas

Las transformaciones Agregar son similares a las consultas de selección de agregado de SQL. Las columnas que no estén incluidas en la cláusula Agrupar por o en las funciones de agregado no fluirán a través de la salida de la transformación Agregar. Si desea incluir otras columnas en la salida agregada, siga uno de estos métodos:

  • Use una función de agregado como last() o first() para incluir esa columna adicional.
  • Vuelva a unir las columnas al flujo de salida con el patrón self join.

Eliminación de filas duplicadas

Un uso común de la transformación de agregados es quitar o identificar entradas duplicadas en los datos de origen. Este proceso se conoce como desduplicación. En función de un conjunto de claves Group by, utilice una heurística de su elección para determinar qué fila duplicada desea conservar. Las heurísticas comunes son first(), last(), max() y min(). Use patrones de columna para aplicar la regla a todas las columnas excepto para las columnas Group by.

Deduplication

En el ejemplo anterior, las columnas ProductID y Name se usan para la agrupación. Si dos filas tienen los mismos valores para esas dos columnas, se consideran duplicadas. En esta transformación de agregados, se conservarán los valores de la primera fila coincidente y se quitarán todos los demás. Con la sintaxis de patrón de columnas, todas las columnas cuyos nombres no son ProductID y Name se asignan a su nombre de columna existente y se les proporciona el valor de las primeras filas coincidentes. El esquema de salida es el mismo que el esquema de entrada.

En escenarios de validación de datos, la función count() se puede usar para contar el número de duplicados que hay.

Script de flujo de datos

Sintaxis

<incomingStream>
    aggregate(
           groupBy(
                <groupByColumnName> = <groupByExpression1>,
                <groupByExpression2>
               ),
           <aggregateColumn1> = <aggregateExpression1>,
           <aggregateColumn2> = <aggregateExpression2>,
           each(
                match(matchExpression),
                <metadataColumn1> = <metadataExpression1>,
                <metadataColumn2> = <metadataExpression2>
               )
          ) ~> <aggregateTransformationName>

Ejemplo

En el ejemplo siguiente se toma un flujo entrante MoviesYear y las filas se agrupan por columna year. La transformación crea una columna de agregado avgrating que se evalúa como el promedio de la columna Rating. Esta transformación Agregar se denomina AvgComedyRatingsByYear.

En la interfaz de usuario, esta transformación es similar a la siguiente imagen:

Group by example

Aggregate example

En el siguiente fragmento de código se muestra el script del flujo de datos para esta transformación.

MoviesYear aggregate(
                groupBy(year),
                avgrating = avg(toInteger(Rating))
            ) ~> AvgComedyRatingByYear

Aggregate data flow script

MoviesYear: columna derivada que define las columnas year y title AvgComedyRatingByYear: transformación de agregados para la clasificación media de comedias agrupadas por año avgrating: nombre de la nueva columna que se va a crear para contener el valor agregado

MoviesYear aggregate(groupBy(year),
	avgrating = avg(toInteger(Rating))) ~> AvgComedyRatingByYear