Record Joiner

Record Joiner realiza una operación de estilo SQL JOIN para combinar los registros de diferentes flujos basándose en la relación entre los campos en los flujos. Puede utilizar Record Joiner para combinar registros de varios archivos, varias bases de datos, o de cualquier canal ascendente en el flujo de datos. Debe conectar al menos dos canales de entrada a Record Joiner. Los resultados de la operación de JOIN se escriben entonces en un canal de salida. De manera opcional, los registros que no alcancen la condición de combinación pueden ser escritos en un canal de salida independiente.

Nota: Antes de usar Record Joiner debe comprender bien la operación JOIN de SQL. Para obtener más información, consulte wikipedia.org/wiki/Join_(SQL).

Definición de combinación

Opción Descripción

Puerto izquierdo

El puerto cuyos registros desea utilizar como tabla izquierda en la operación JOIN. Todos los demás puertos de entrada se utilizarán como tabla derecha en la operación JOIN.

Nota: Tablas "izquierda" y "derecha" son conceptos JOIN de SQL. Antes de usar Record Joiner debe comprender bien la operación JOIN de SQL. Para obtener más información, consulte wikipedia.org/wiki/Join_(SQL).

Tipo de combinación

El tipo de operación JOIN que desea realizar. Una de las siguientes:

Externa izquierda
Devuelve todos los registros desde el puerto izquierdo incluso si no hay cruces entre el puerto izquierdo y los demás puertos. Esta opción devuelve todos los registros desde el puerto izquierdo además de cualquier registro que coincida con los demás puertos.
Completo
Devuelve todos los registros de todos los puertos.
Interna
Devuelve todas las filas que presenten un cruce entre el puerto izquierdo y otro puerto. Por ejemplo, si tiene cuatro orígenes de entrada y el puerto 1 es el izquierdo, una combinación interna devolverá registros con los campos que presenten cruces entre puerto y puerto 2, puerto y puerto 3, y puerto y puerto 4.

Campos de combinación

El campo o los campos del puerto izquierdo que deben coincidir con los datos de un campo en otro puerto para el cual se han combinado registros.

Nota: Sólo los campos que tienen un tipo de datos de cadena o entero o bien de fecha o fecha y hora se pueden utilizar como campos de combinación.

Se ordenan los datos del puerto izquierdo

Especifica si los registros del puerto izquierdo ya están clasificados por el campo especificado en Campos de combinación. Si los registros ya se han clasificado, l marcar esta casilla puede mejorar el rendimiento. Si no activa esta casilla, Record Joiner ordenará los registros según el campo especificado en Campos de combinación antes de realizar la operación de combinación.

Si se han definido varios campos de combinación, los registros deben clasificarse en el orden de los campos que se muestran en Campos de combinación. Por ejemplo, si tiene dos campos de combinación:

  • Monto
  • Región

Los registros deben clasificarse en primer lugar por el campo Monto, y luego por el campo Región.

Importante: Si selecciona esta opción, pero los registros no se clasifican, se obtendrá resultados incorrectos de Record Joiner. Seleccione esta opción sólo si está seguro de que los registros del puerto izquierdo ya están clasificados.

Definiciones de combinación

Describe las condiciones de combinación que se utilizarán para determinar si un registro del puerto izquierdo debe combinarse con un registro de alguno de los demás puertos. Por ejemplo:

port1.Name = port2.Name

Esto indica que si el valor en el campo de Nombre de un registro de port1 coincide con el valor en el campo Nombre de un registro de port2, los dos registros se unirán.

Para modificar una condición de combinación, haga clic en Modificar. Seleccione un campo en el puerto derecho cuyos datos deben coincidir con los datos de los campos de combinación del puerto izquierdo para que los registros se combinen. Si desea cambiar el puerto izquierdo, haga clic en Cancelar y cámbielo en el campo Combinación. Si los registros en el puerto derecho se clasifican según el campo de combinación, marque la casilla Se ordenan los datos del puerto derecho. Marcar esta casilla puede mejorar el rendimiento.

Importante: Si selecciona Se ordenan los datos del puerto derecho, pero los registros no se clasifican, obtendrá resultados incorrectos de Record Joiner. Seleccione esta opción sólo si está seguro de que los registros en el puerto derecho ya están clasificados.

Resolución de campo

Esta ficha especifica los datos de que puerto se utilizarán en el registro combinado en los casos en que exista el mismo nombre de campo en más de un puerto de entrada. Por ejemplo, si realiza una combinación de dos orígenes de datos, y cada origen contiene un campo denominado DateOfBirth, puede especificar los datos del puerto que se usarán en el campo DateOfBirth en el registro combinado.

Si hay campos del mismo nombre pero con diferentes datos, y desea conservar ambos campos de datos en el registro combinado, debe cambiar el nombre de uno de los campos antes de que los datos se envíen a Record Joiner. Puede utilizar la etapa Transformer para cambiar el nombre de los campos.

Manejo de los registros que no están combinados

Para que un registro se incluya en los resultados de Record Joiner deben cumplir la condición de la combinación, o debe seleccionarse un tipo de combinación que devuelva tanto registros combinados como aquellos que no cumplen con la condición de combinación. Por ejemplo, una combinación completa devolverá todos los registros de todos los puertos de entrada independientemente de si los registros cumplen con la condición de combinación. En el caso de un tipo de combinación que no devuelve todos los registros de todos los puertos, como por ejemplo una combinación de salida izquierda o una combinación interna, sólo los registros que coinciden con la condición de combinación se incluyen en Record Joiner.

Para capturar los registros de los que no se incluyen en el resultado de la operación de combinación, utilice el puerto de salida not_joined. La salida de este puerto contiene todos los registros que no se incluyeron en el puerto de salida. El puerto de salida not_joined es el triángulo blanco en el lado derecho de la etapa Record Joiner, como se indica a continuación:

Los registros que salen de este puerto tienen añadido el campo InputPortIndex. Este campo contiene el número del puerto de entrada de Record Joiner de procedencia del registro. Esto le permite identificar el origen del registro.

Nota:
  • Para obtener un rendimiento óptimo en esta etapa, asegúrese de unir dos flujos independientes de registros para generar un resultado consolidado.
  • Si una ruta única se deriva con un router Broadcaster o Conditional y se vuelve a unir con un Record Joiner, es posible que el flujo deje de funcionar. En el caso de que se utilicen múltiples etapas entre la derivación y la unión, use Sorter tan cerca de Record Joiner como sea posible.