Transformación de rango en Informatica con EJEMPLO
⚡ Resumen inteligente
La transformación de rango en Informatica es un objeto activo y conectado que conserva solo las N filas superiores o inferiores de cada grupo, asignando a cada fila restante una posición a través de su puerto de salida automático RANKINDEX.

¿Qué es la transformación de rango?
La transformación de rango es una transformación activa y conectada que filtra los datos según grupos y rangos. Por ejemplo, si desea obtener los diez empleados con el salario más alto, este tipo de filtrado se puede realizar mediante la transformación de rango.
La transformación de rango también proporciona la función de realizar clasificaciones basadas en grupos. Por ejemplo, si desea obtener los diez empleados mejor pagados por departamento, ese grupoping se puede hacer con esta transformación.
La transformación de rango es una transformación activa, ya que afecta el número de filas de salida.
La transformación Rank tiene un puerto de salida mediante el cual asigna un rango a las filas. Ese puerto se llama RANKINDEX y el Diseñador lo crea automáticamente tan pronto como se agrega la transformación a la mapaping.
Debido a que la clasificación tiene que comparar cada fila en un grupo antes de poder decidir qué filas ganan, el Servicio de Integración almacena en caché los datos entrantes. Los valores del grupo van a una caché de índice y el resto de los datos de la fila van a una caché de datos, de la misma manera que una caché Transformación de carpintero Mantiene su oleoducto principal.
Puertos en una transformación de rango
Antes de ver el ejemplo práctico, conviene saber qué hace realmente cada indicador de puerto en la pestaña Puertos, ya que dos de ellos realizan el trabajo principal de esta transformación.
| Tipo de puerto | ¿Qué hace? |
|---|---|
| entrada (yo) | Recibe una columna de la transformación anterior. Cada columna vinculada a la transformación Rank es un puerto de entrada. |
| Salida (O) | Pasa una columna a la siguiente transformación o al destino. |
| Variable (V) | Contiene un cálculo local dentro de la transformación, exactamente igual que en una transformación de expresión. |
| Rango (R) | Indica la columna sobre la que se calcula la clasificación. Solo un puerto en la transformación puede llevar esta bandera. |
| Agrupar por | Reinicia la clasificación para cada valor distinto, por lo que un filtro de los tres primeros devuelve tres filas por grupo en lugar de tres filas en total. |
| ÍNDICE DE CLASIFICACIÓN | Puerto de salida creado por el Diseñador. Almacena la posición de cada fila dentro de su grupo y puede dejarse sin conectar. |
La clasificación solo puede realizarse en un único puerto, por lo que un requisito como "el salario más alto, seguido del servicio más antiguo" necesita que el valor de desempate esté preparado en la parte superior del proceso, en lugar de en un segundo puerto de clasificación.
Cómo utilizar la transformación de rango en Informatica
Nuestro requisito es cargar los 3 empleados mejor pagados de cada departamento; implementaremos esto utilizando la transformación Rank. Siga los ocho pasos que se muestran a continuación en el mapa.ping Diseñador.
Paso 1) crear un mapaping con origen EMP y destino EMP_TARGET. Ambas definiciones se encuentran ahora en el lienzo, como se muestra a continuación.
Paso 2) Luego en el mapaping
- Seleccionar menú de transformación
- Seleccione la opción de crear
A continuación se muestra el menú Transformación con la opción Crear.
Paso 3) En la ventana de creación de transformación
- Seleccionar transformación de rango
- Ingrese el nombre de la transformación "rnk_salary"
- Seleccione el botón Crear
Paso 4) La transformación de rango se creará en el mapa.pingSeleccione el botón "Listo" en la ventana. El objeto vacío rnk_salary ahora aparece en el lienzo.
Paso 5) Conecte todos los puertos desde calificador de origen a la transformación Rank, de modo que cada columna de empleado esté disponible para la clasificación.
Paso 6) Double Haz clic en la transformación Rank y se abrirá la ventana "editar transformación". En esta ventana
- Seleccionar menú de propiedades
- Seleccione la opción "Superior" de la propiedad Superior/Inferior.
- Ingrese 3 en el número de rangos
La pestaña Propiedades ahora muestra "Superior" con tres rangos, como se puede apreciar en la captura de pantalla.
Paso 7) En la ventana “editar transformación” nuevamente
- Seleccionar pestaña de puertos
- Seleccione la opción grupo por para la columna Número de departamento
- Seleccione Rango en la columna Salario
- Seleccione el botón Aceptar
La pestaña Puertos ahora muestra el indicador de grupo en el número de departamento y el indicador R en el salario.
Paso 8) Conecte los puertos de la transformación Rank a la tabla de destino. El mapaping ahora va desde EMP a través de rnk_salary hasta EMP_TARGET.
Ahora, guarda el mapa.ping y ejecutarlo después de crear un durante toda la sesión. y flujo de trabajoEl calificador de origen recuperará todos los registros, pero la transformación de rango solo pasará los registros que tengan tres salarios altos para cada departamento.
Propiedades de transformación de rango
La pestaña Propiedades que se utiliza en el paso 6 contiene más opciones que las dos que se modifican en el ejemplo. Las opciones que se muestran a continuación controlan cuántas filas se conservan, cómo se comparan las cadenas y dónde se escriben los archivos de caché.
| Propiedad | Lo que controla |
|---|---|
| Arriba / abajo | Indica si se conservan los valores más altos o los más bajos para la columna clasificada. El ejemplo utiliza "Top". |
| Número de rangos | ¿Cuántas filas se devuelven por grupo? El ejemplo utiliza 3, por lo que cada departamento devuelve tres empleados. |
| Comparación de cadenas que distingue entre mayúsculas y minúsculas | Si las comparaciones de cadenas respetan las mayúsculas y minúsculas al realizar la clasificación. Solo importa cuando el puerto de clasificación contiene texto. |
| Directorio de caché | Directorio donde se crean los archivos de índice y caché de datos. Por defecto, se utiliza la variable de proceso $PMCacheDir. |
| Tamaño de la caché de datos de clasificación | Tamaño de la caché de datos que almacena los datos de las filas. El valor predeterminado es Automático, lo que permite que el Servicio de Integración determine su tamaño. |
| Tamaño de la caché del índice de clasificación | Tamaño de la caché de índices que almacena los valores del grupo. El valor predeterminado es Automático. |
| Alcance de la transformación | Aplica la clasificación a cada transacción o a todos los datos entrantes. |
| TracNivel de ing | Cantidad de detalles escritos en el registro de sesión: Breve, Normal, Inicialización detallada o Datos detallados. |
El tamaño de la caché es una configuración que vale la pena revisar en fuentes grandes. Cuando las cachés son demasiado pequeñas, las páginas del Servicio de Integración se guardan en el disco, lo cual es una de las primeras cosas que se comprueban durante la optimización del rendimiento de un mapaping.
Transformación de rango frente a transformación de agregador
Ambas transformaciones están activas, ambas almacenan en caché su entrada y ambas ofrecen puertos Group By, por lo que es fácil seleccionar la incorrecta. La diferencia radica en el resultado.
| Punto de comparación | Transformación de rango | Transformación del agregador |
|---|---|---|
| Propósito | Devuelve las N filas completas superiores o inferiores de cada grupo. | Devuelve valores calculados como SUMA, AVG, MÁX o MÍN por grupo |
| Las filas regresaron | Hasta el número de rangos por grupo, con todas sus columnas intactas | Normalmente una fila de resumen por grupo. |
| Puerto adicional añadido | ÍNDICE DE RANGO, que mantiene la posición de cada fila. | Ninguna |
| Columna clasificada o agregada | Un puerto señalado como puerto de rango | Cualquier número de puertos que contengan expresiones agregadas |
En pocas palabras, un Transformación del agregador responde "¿cuál es el salario más alto en este departamento?", mientras que la transformación de Rank responde "¿qué empleados lo ganan?". Cuando solo se debe descartar un subconjunto de filas en una condición simple y no hay ordenación involucrada, una Transformación de filtro es la opción más económica, porque no necesita ningún tipo de caché.








