Utilización de la iteración con un flujo de datos incrustado

La configuración de la iteración especifica cómo un flujo de datos incrustado debe procesar los registros entrantes. De manera predeterminada, un flujo de datos incrustado procesa cada registro individualmente, tal como lo haría cualquier otra etapa en el flujo de datos. Sin embargo, si utiliza la iteración, puede procesar grupos de registros en conjunto, lo que puede resultar útil para cosas como procesar comparaciones o cálculos a partir de grupos de registros, en lugar de todo el conjunto de datos de entrada. También puede utilizar la iteración para establecer opciones de etapa, según los datos en cada registro.

Existen dos tipos de iteración; iteración por registro e iteración por grupo. En la iteración por registro, un flujo de datos incrustado procesa un registro a la vez y el resultado se envía a lo largo de la siguiente etapa después del flujo de datos incrustado. La iteración por registro es útil si desea establecer opciones de etapa de forma individual en cada registro mediante el uso de valores de campo.

En la iteración por grupo, los registros se agrupan por un campo clave y el flujo de datos incrustado procesa cada grupo. Todos los registros en un grupo se procesan en una iteración, luego el grupo se escribe junto a la siguiente etapa después del subflujo incrustado. Utilice la iteración por grupo para realizar el procesamiento en grupos de registros relacionados, así como también, para establecer opciones de etapa para usar cuando se procese el grupo de registros. Por ejemplo, es posible que dese agrupar los registros por la ID de cliente, de modo que pueda realizar un análisis de los registros de cada cliente, quizás para determinar qué tienda un cliente visita con mayor frecuencia.

Debe considerar el impacto en el rendimiento cuando utilice la iteración. Cada vez que comienza una nueva iteración, existe cierta sobrecarga durante la inicialización del flujo de datos incrustado y esta sobrecarga puede ser considerable especialmente si tiene flujos de datos incrustados dentro de otros flujos de datos incrustados. Por ejemplo, si un flujo de datos incrustado itera 1.000 veces y contiene en su interior otro flujo de datos incrustado que también itera 1.000 veces, la cantidad total de iteraciones sería de 1.000.000. El uso de la iteración por registro tiene un impacto más significativo en el rendimiento, dado que cada registro ejecuta una nueva iteración.

  1. Cree un flujo de datos incrustado que contenga las etapas que use para la iteración.
    Nota: Existen ciertas restricciones en cuanto a lo que se puede incluir en los flujos de datos incrustados que tienen la iteración activada:
    • La etapa Stream Combiner no puede ser la primera etapa en un flujo de datos incrustado que tenga la iteración activada.
    • El flujo de datos incrustado no puede contener un receptor que escriba en un archivo ubicado en el cliente. El receptor en el interior de un flujo de datos incrustado debe escribir en un archivo del servidor de Spectrum™ Technology Platform o en un servidor de archivos.
  2. Haga doble clic en el icono del flujo de datos incrustado.
  3. Marque la casilla de verificación Activar iteración.
  4. Si existe más de un canal de entrada conectado al flujo de datos incrustado, use el campo Puerto para elegir el puerto cuyos registros desea utilizar para accionar la iteración.

    Por ejemplo, considere que tiene dos puertos de entrada, A y B, y elige iterar cada vez que cambie un campo clave. Si elige usar el puerto B para la iteración, el flujo de datos incrustado comenzará una nueva iteración cada vez que cambie un campo clave en los registros desde el puerto B. Todos los registros desde el otro puerto, el A, se leerán en el flujo de datos incrustado, se almacenarán en la caché y se utilizarán para cada iteración.

  5. Seleccione el tipo de iteración que desee realizar.
    Iterar cada vez que un campo de clave cambia
    En este tipo de iteración, el flujo de datos incrustado procesa los grupos de registros que tienen el mismo valor en uno o más campos. Cuando el flujo de datos incrustado termina de procesar el grupo de registros, este flujo de datos se restablece y se procesa un nuevo grupo de registros. Utilice este tipo de iteración para crear flujo de datos incrustados que procesen grupos de registros y luego generen cada grupo de registros separadamente.
    Consejo: Si elige este tipo de iteración, puede mejorar el rendimiento al colocar una etapa Sorter antes del flujo de datos incrustado y ordenar los registros por campo clave.
    Iterar por segundo
    En este tipo de iteración, el flujo de datos incrustado procesa un registro a la vez. cada vez que un registro completa el procesamiento del flujo de datos incrustado, el resultado se envía a la salida y se procesa un nuevo registro. Los flujo de datos incrustados que iteran por registro, manejan cada registro como una nueva ejecución del flujo de datos incrustado.
  6. Si elige Iterar cada vez que el campo clave cambia, marque la casilla Ignorar casos de comparación de valores si desea ignorar las diferencias en los casos cuando se evalúan los valores de campos clave para determinar los grupos de registros.
  7. Especifique uno o más campos clave.
    1. Haga clic en Agregar.
    2. Elija el campo que desea utilizar como campo clave.
    3. Si desea usar el valor del campo para establecer una opción de etapa dentro del flujo de datos incrustado, especifique el nombre de la opción que desee establecer.
    4. Haga clic en Aceptar.
    5. Agregue campos clave adicionales si es necesario.

      Si tiene más de un campo clave y elije la opción Iterar cada vez que el campo clave cambia, los registros deben incluir el mismo valor en todos los campos clave que se van a agrupar.