Conocer las diferentes transformaciones involucradas en un proceso ETL (Extract Transform Load) permite aplicar las buenas prácticas de implementación, y con ello optimizar el rendimiento de los procesos. En el presente artículo se recoge el detalle sobre el Joiner.
Es una transformación con la función de comparar y combinar dos flujos de datos (tablas, ficheros planos o combinaciones), uno definido como Máster y otro Detail, en base a una o varias igualaciones preestablecidas, y su objetivo es devolver un único conjunto de datos compuesto por todos los campos de entrada.
Se define como transformación activa, es decir, el número de registros que entran y salen no es siempre el mismo. El volumen de datos a la salida está directamente relacionado con el tipo de cruce y las coincidencias de éste.
Los tipos de cruce se definen en función de los flujos Máster y Detail; lo recomendado es fijar como Master el de menor volumetría, debido a que éste es el primero en ser procesado y se almacena en la caché.
Normal Join
La información de salida contiene los datos de ambos flujos que cumplan las igualaciones establecidas; el resto son descartados.
Master Outer Join
La información de salida contiene todos los datos del flujo Detail más los datos del flujo Master que cumplan las igualaciones establecidas.
- Los registros del Detail que no cumplen las igualaciones vienen con los campos del Master informados a null
- Los registros del Master que no cumplen las igualaciones son descartados
Detail Outer Join
Este caso es idéntico al anterior; intercambiando Detail por Master y viceversa.
Full Outer Join
La información de salida contiene todos los datos de ambos flujos independientemente de si cumplen o no las igualaciones establecidas.
- Los registros del Detail que no cumplen las igualaciones vienen con los campos del Master informados a null
- Los registros del Master que no cumplen las igualaciones vienen con los campos del Detail informados a null
- Ningún registro es descartado
Adicionalmente, es posible establecer que los flujos van a venir ordenados por los campos de cruce; opción que mejora el rendimiento del proceso. En este caso, lo óptimo es fijar como Master el de menor volumetría duplicada para la clave de cruce; sólo se almacenan los registros repetidos en la caché.
En conclusión, el Joiner muestra diferentes métodos de implementación en función de los requisitos y necesidades, por lo que se debe estudiar en detalle el objetivo del proceso y configurar la transformación idónea en cada ocasión.