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.

  • ???? N superior o inferior: La propiedad Top/Bottom y la propiedad Number of Ranks, en conjunto, deciden qué filas sobreviven al filtro.
  • 🗂️ Clasificación por grupo: Los puertos de Agrupar por reinician la clasificación para cada grupo, de modo que cada departamento pueda devolver sus tres primeros puestos.
  • 🔢 Puerto de clasificación: Exactamente un puerto lleva la bandera R, y esa única columna es el valor sobre el que se calcula la clasificación.
  • 📍 ÍNDICE DE CLASIFICACIÓN: El diseñador agrega automáticamente este puerto de solo salida para mantener la posición de cada fila dentro de su grupo.
  • 🧪 Ejemplo trabajado: Mapa ochoping Los pasos del diseñador cargan a los tres empleados mejor pagados de cada departamento en EMP_TARGET.
  • 💾 En caché y activo: Los valores de grupo y los datos de las filas se almacenan en un índice y una caché de datos, y el número de filas cambia.

Transformación de rango en Informatica

¿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.

Mapearping Diseñador que muestra la definición de origen EMP y la definición de destino EMP_TARGET.

Paso 2) Luego en el mapaping

  1. Seleccionar menú de transformación
  2. Seleccione la opción de crear

A continuación se muestra el menú Transformación con la opción Crear.

El menú de transformación se abrió en el mapa.ping Diseñador con la opción Crear resaltada

Paso 3) En la ventana de creación de transformación

  1. Seleccionar transformación de rango
  2. Ingrese el nombre de la transformación "rnk_salary"
  3. Seleccione el botón Crear

Ventana Crear transformación con Rango seleccionado y el nombre rnk_salary ingresado

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.

Transformación de rango rnk_salary creada y colocada en el mapaping 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.

Todos los puertos Source Qualifier vinculados a la transformación de rango rnk_salary

Paso 6) Double Haz clic en la transformación Rank y se abrirá la ventana "editar transformación". En esta ventana

  1. Seleccionar menú de propiedades
  2. Seleccione la opción "Superior" de la propiedad Superior/Inferior.
  3. 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.

Pestaña Propiedades de la transformación Rank con Top seleccionado y tres introducido como número de rangos.

Paso 7) En la ventana “editar transformación” nuevamente

  1. Seleccionar pestaña de puertos
  2. Seleccione la opción grupo por para la columna Número de departamento
  3. Seleccione Rango en la columna Salario
  4. 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.

Pestaña Puertos de la transformación Rank con la agrupación establecida en el número de departamento y el rango establecido en la columna de 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.

Puertos clasificados vinculados desde la transformación de rango rnk_salary a la tabla 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é.

Preguntas Frecuentes

No. La función Rank solo está conectada, por lo que debe ubicarse en el flujo de datos entre dos objetos. El puerto RANKINDEX puede dejarse sin conectar, pero la transformación en sí no puede invocarse de la misma manera que una función Lookup sin conexión.

Las filas empatadas reciben el mismo valor en el índice de clasificación y la transformación omite el siguiente valor. Por lo tanto, dos empleados que comparten el segundo lugar muestran un 2, y la siguiente fila muestra un 4 en lugar de un 3.

Toda la fuente se trata como un solo grupo, por lo que la transformación devuelve solo el número total de rangos. Al establecer tres rangos sin un puerto de grupo, se obtienen los tres empleados mejor pagados de toda la empresa, no por departamento.

Sí. Los puertos numéricos, de cadena y de fecha/hora pueden marcarse como puerto de prioridad. Para texto, la propiedad Comparación de cadenas sensible a mayúsculas y minúsculas determina si el uso de mayúsculas y minúsculas afecta al orden, así que compruébelo antes de que se ejecute la sesión.

No está garantizado. La transformación selecciona qué filas se conservan, pero no asegura el orden en que llegan al destino. Añada una transformación Sorter en el puerto RANKINDEX cuando el orden de carga sea importante.

A SQL La función de ventana etiqueta cada fila y deja el filtrado a una consulta externa. La transformación de Informatica etiqueta y filtra en una sola pasada, y funciona con archivos planos y otras fuentes no relacionales donde no hay un motor de base de datos disponible.

Los modelos de aprendizaje automático califican los registros según la probabilidad de abandono, fraude o conversión, y esa calificación se convierte en la columna de clasificación. Los asesores de IA también analizan el tamaño de los grupos para que la configuración de la caché y el número de clasificaciones se elijan a partir de datos reales en lugar de conjeturas.

Copilot elabora la consulta de función de ventana equivalente o Python Agrupar rápidamente, lo cual es útil para validar resultados. No puede leer su mapa.pingPor lo tanto, trate cada sugerencia como un borrador y compare el número de filas con el registro de la sesión.

Resumir este post con: