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.