Transformación de agregador en Informatica con ejemplo
⚡ Resumen inteligente
En Informatica, la transformación de agregador es el objeto activo que realiza cálculos como suma, promedio y recuento en un grupo de filas, manteniendo esas filas en una caché de agregados hasta que se complete cada grupo.

¿Qué es la transformación agregadora?
La transformación de agregación es una transformación activa que realiza cálculos de agregación como suma, promedio y recuento.
Por ejemplo, si desea calcular la suma de los salarios de todos los empleados por departamento, puede utilizar la transformación Agregador.
Las operaciones agregadas se realizan en un grupo de filas, por lo que se requiere un marcador de posición temporal para almacenar todos estos registros y realizar los cálculos.
Para ello, se utiliza la caché del agregador. Se trata de una memoria principal temporal asignada a la transformación Agregador para realizar dichas operaciones, y se divide en dos partes: la caché de índices almacena los valores de grupo, mientras que la caché de datos almacena los datos de las filas que se están agregando.
La transformación está activa porque cambia el número de filas en la canalización. Pueden entrar varios miles de registros de empleados y solo sale una fila por departamento.
Cómo utilizar la transformación de agregación en Informatica
En este ejemplo, calcularemos la suma de los salarios por departamento. Para ello, necesitamos una nueva columna para almacenar esta suma. Por lo tanto, en primer lugar, prepararemos una nueva columna.
Paso 1) Cree una nueva tabla de destino de base de datos, por ejemplo, “sum_sal_deptwise”, utilizando el script a continuación. Verá la nueva tabla de destino de base de datos creada en la Targetcarpeta s en el siguiente paso.
Descargue el archivo Create_table_sal_deptwise.txt anterior
Paso 2) Crear un nuevo mapaping “m_sum_sal_deptwise”.
Para crear el nuevo mapapingNecesitamos la tabla de origen (EMP) y la tabla de destino (sum_sal_deptwise) en el mapa.ping Diseñador, así que necesitamos
- Importa la tabla de destino “sum_sal_deptwise” en el mapa.ping.
- Importe la tabla fuente "emp".
Ambas definiciones aparecen ahora en el lienzo, como se muestra a continuación.
Paso 3) En el mapaping,
- En el campo Calificador de fuente, elimine las columnas empno, ename, job, mgr, hiredate y comm, dejando solo las columnas deptno y sal.
- Crea una nueva transformación de Agregador usando el menú de la caja de herramientas, como se muestra en la captura de pantalla. Al hacer clic en el icono del agregador, se creará una nueva transformación de Agregador.
El nuevo objeto AGGTRANS aparece junto al calificador de origen recortado.
Paso 4) Arrastre y suelte las columnas SAL y DEPTNO del Calificador de origen (SQ_EMP) en la transformación Agregador. Los dos puertos ahora están vinculados a AGGTRANS.
Paso 5) Double-haga clic en la transformación Agregador para abrir sus propiedades y luego
- Agregar un nuevo puerto en la transformación.
- Cambie el nombre del puerto a SUM_SAL.
- Cambie el tipo de datos de este nuevo puerto a doble
- Convierta este puerto en un puerto de salida seleccionando la casilla de verificación del puerto de salida.
- Haga clic en la opción de expresión
La pestaña Puertos ahora muestra SAL, DEPTNO y el nuevo puerto de salida SUM_SAL.
Paso 6) En la ventana del Editor de expresiones
- Agregue la expresión sum(SAL); usted mismo debe escribir esta expresión.
- Seleccione el botón Aceptar; esto hará que vuelva a aparecer la ventana Editar transformaciones.
El editor de expresiones muestra la expresión agregada asignada a SUM_SAL.
Paso 7) En la ventana Editar transformaciones, seleccione la opción "Agrupar por" marcando la casilla de verificación junto a la columna deptno y haga clic en Aceptar. Al seleccionar "Agrupar por" junto a deptno, le indicamos a Informatica que agrupe los salarios por deptno.
Paso 8) Vincula las columnas deptno y sum_sal de la transformación Agregador a la tabla de destino. El mapaping Entonces se completa el proceso desde el origen hasta el destino.
Ahora guarda el mapa.ping y ejecutarlo después de crear uno nuevo durante toda la sesión. para este mapapingLa tabla de destino contendría la suma de los salarios por departamento. De esta forma, podemos utilizar la transformación Agregador para calcular los resultados agregados.
Agrupar por puertos en la transformación del agregador
El paso anterior marcó un único puerto como Agrupar por, lo que convirtió el total de toda la empresa en un total por departamento. Cualquier puerto de entrada, entrada/salida, salida o variable puede marcarse de la misma manera.
Tres reglas rigen el conjunto de resultados:
- Una fila por grupo. Cuando se agrupan los valores, el Servicio de Integración genera una fila para cada combinación única del grupo por puertos.
- Sin agrupar por, una fila. Si no se marca ningún puerto, toda la entrada se trata como un solo grupo y se devuelve una fila por cada fila de entrada.
- Gana la última fila. Junto con el resultado agregado, el Servicio de Integración suele pasar la última fila recibida en el grupo, a menos que una función como FIRST especifique una fila diferente.
Cuando se marcan varios puertos, el orden de los puertos decide el grupo.ping orden, y el orden puede cambiar el resultado. Grupoping por DEPTNO y luego JOB no es lo mismo que grouping por JOB y luego DEPTNO, porque los valores de la segunda columna no son necesariamente únicos.
Propiedades de transformación del agregador
La pestaña Propiedades de la ventana Editar transformaciones contiene la configuración que determina dónde se almacena la caché y cuánto se utiliza. La tabla siguiente enumera estas opciones.
| Configuración | Lo que controla |
|---|---|
| Directorio de caché | Directorio local donde el Servicio de Integración crea los archivos de índice y caché de datos. Por defecto, se utiliza la variable de proceso $PMCacheDir configurada en el Administrador de flujos de trabajo. |
| TracNivel de ing | Cantidad de detalles registrados en el archivo de registro de la sesión para esta transformación. |
| Entrada ordenada | Declara que los datos entrantes ya están ordenados por grupo por puertos. Selecciónelo solo cuando el mapaping Realmente proporciona datos ordenados. |
| Tamaño de la caché de datos del agregador | Tamaño de la caché de datos. El valor predeterminado es de 2,000,000 bytes, y la opción Automático permite que el Servicio de Integración ajuste su tamaño. |
| Tamaño de la caché del índice del agregador | Tamaño de la caché de índices. El valor predeterminado es 1,000,000 de bytes, y la opción Automático permite que el Servicio de Integración determine su tamaño. |
| Alcance de la transformación | Aplica la lógica a cada transacción o a todos los datos entrantes. La opción "Todas las entradas" elimina los límites de las transacciones entrantes. |
Cuando se habilita la agregación incremental, el Servicio de Integración escribe una copia de seguridad de los archivos de caché en cada ejecución, por lo que el directorio de caché debe contener dos conjuntos de archivos en lugar de uno.
Reglas de expresiones agregadas y consejos de rendimiento
Una expresión agregada puede combinar una función agregada con cláusulas condicionales y funciones no agregadas, lo que permite realizar sumas y recuentos condicionales dentro de un mismo puerto. Dos reglas limitan lo que se puede escribir.
- Un nivel de anidamiento. Solo se puede anidar una función agregada dentro de otra, y la expresión interna se evalúa primero.
- Sin mezclar. Una transformación puede contener funciones de un solo nivel o funciones anidadas, nunca ambas. Si contiene ambas, el Diseñador marca el mapa.ping No es válido, así que divida la lógica en dos transformaciones de Agregador.
En lo que respecta a la afinación, tres ajustes hacen la mayor parte del trabajo:
- Entrada ordenada. Cuando las filas llegan ordenadas por grupo según los puertos, cada grupo se libera en cuanto llega su última fila, lo que reduce considerablemente el almacenamiento en caché y acelera la sesión. La entrada ordenada no se puede combinar con la agregación incremental.
- Agregación incremental. Las nuevas filas de origen se pasan a través del mapa.ping y combinado con la caché histórica en lugar de recalcular el historial, lo que resulta adecuado para una carga nocturna sobre un total acumulado.
- Filtrar temprano. Las filas que nunca contribuirán a un total deben eliminarse antes del Agregador, ya sea en la consulta del Calificador de origen o en un Transformación de filtro, porque cada fila que llega al Agregador consume memoria caché. Esta es una de las comprobaciones estándar durante la optimización del rendimiento.







