Tuesday, September 19, 2017
Integración de datos, Talend Open Studio

Talend Open Studio : Encontrando datos duplicados con tUniq

>helibertoarias helibertoarias
mayo 20, 2014

 

Esta entrada es la respuesta a la interrogante planteada por un lector en Talend Open Studio: Componentes básicos. Lo que se quiere saber es ¿Cómo identificar las filas repetidas en un flujo de datos utilizando Talend Open Studio?, para ello usaremos el componente tUniq de Talend.

Que haremos?

Crearemos una base de datos a la que llamaremos Demo. En esta base de datos estarán dos tablas en la que simularemos dos fuentes de datos. Cada una de estas tablas contiene las mismas dos columnas; una llamada ID la cual es el identificador y otra llamada texto de tipo varchar. Para la prueba solo se ingresará una letra en la columna de texto. Luego se agregará una conexión desde Talend Open Studio a la  base de datos Demo y se adicionara un nuevo Job en el que se incluirán 2 componentes tMSSQLinput, estos se utilizaran para extraer los registros que posteriormente se unirán con el componente tUnite. El tUnite genera una única salida con todos los datos de entrada, incluidos los duplicados. El resultado de tUnite sera transferido al componente tUniqRow el cual permite especificar si se quiere filtrar por los datos únicos o los duplicados. Finalmente para ver el resultado del Job agregaremos un tLogRow el cual permite ver en consola salida de datos.

Requerimientos

Para el siguiente ejemplo se utilizará :

  • Talend Open Studio 5.4.1 (Sin embargo los componentes usados también están en versiones previas)
  • Sql Server 2008 R2 (Puedes emplear otro motor de base de datos pero deberás cambiar los componente usados por los equivalentes en la nueva base de datos dentro de Talend)

1. Empezando

Crearemos un proyecto en Talend Open Studio al que llamaremos Blog. Si no sabes como crear el proyecto te recomiendo revisar Primeros pasos con Talent Open Studio TOS : Importando datos.

2. Creando la base de datos

Crearemos una base de datos llamada Demo con dos tablas las cuales contendrán diferentes identificadores pero la columna de texto contendrán valores duplicados entre ambas tablas. Por ejemplo A y C se encuentran registrados en ambas tablas. Ejecutaremos el script anexo en el Microsoft SQL Managment Studio.

 3. Creando las conexiones a base de datos

Agregaremos la conexión a la base de datos Demo. En este ejemplo nos conectaremos a una base de datos SQL Server. Sin embargo puedes cambiarla por cualquiera de las que dispone Talend y para cada una de ella podrás encontrar los mismo componentes.

Creando conexión a base de datos

Creando conexión a base de datos

Obtendremos el esquema de las tablas contenidas en la base de datos registrada.

Obteniendo esquema

Obteniendo esquema

Para efectos de la prueba generaremos el esquema de todas las tabla de la base de datos.

Filtrando tablas

Filtrando tablas

Seleccionaremos la TablaUno y la TablaDos para generar el esquema y poder utilizarlas en el Job que pronto crearemos.

Seleccionando tablas

Seleccionando tablas

 4. Creando el Job

Adicionaremos al proyecto un Job al que llamaremos EncontrarDuplicadoJob.

Creando job

Creando job

 

Creando job

Creando job

Adicionaremos al Job creado dos componente tMSSQLInput. Estos componentes permiten seleccionar información de la base de datos; el primero uno se usará para seleccionar todos los registros de TablaUno y de TablaDos. Para facilitara este proceso Talend permite arrastrar y soltar el esquema de la tabla dentro del Job y luego debemos especificar el componente tMSSQLInput.

Agregando componentes de entrada

Agregando componentes de entrada

Agregaremos también tres componentes más; tUnite, tUniqRow y tLogRow. Luego vemos cual sera su objetivo. Por ahora seleccionaremos el componente TablaUno  y lo enlazaremos a tUnite a traves de Row->Main. Repetimos el paso anterior con el componente TablaDos.

Enlazando inputs

Enlazando inputs

Hasta ahora en el Job hemos unido el flujo de datos de dos tablas en uno solo a través del componente tUnite. Este componente dará como resultado todas las fila de TablaUno y TablaDos independientemente si estas están duplicadas. Luego transferimos este flujo de datos al componente tUniqRow el cual ofrece la posibilidad retornar los registros duplicados o los únicos.

Enlazando a tUnite a tUniqRow

Enlazando a tUnite a tUniqRow

Enlazamos el control tUniq al control tLogRow, este ultimo componente permite visualizar en consola el resultado del proceso del Job.

Enlazando tUniq a tLogRow

Enlazando tUniq a tLogRow

Para que el componente tUniqRow pueda identificar cuando un registro es único o es duplicados es necesario definir la llave. Para ello damos doble clic en el componente tUniqRow y seleccionamos la columna texto debido que para este ejemplo solo nos interesa identificar la letras duplicadas.

Definiendo campos unicos

Definiendo campos unicos

5. Ejecutando el Job

Una vez definido el Job solo resta ejecutar.

Salida de datos

Salida de datos

Como veras en consola se visualizan los registros A y C como los duplicados.

 

(Visitado 183 veces, 1 visitas hoy)
Heliberto Arias
Mi nombre es Heliberto Arias y vivo en Barranquilla, Colombia. Soy desarrollador de software. He estado en el desarrollo de software desde el 2007. Cree este blog en 2013 para compartir lo que voy aprendiendo cada año, en el escribo de tecnologías Microsoft principalmente en C# (y aunque he usado VB declaro que lo detesto) y SQL Server desarrollado aplicaciones y servicios web entre otros.Me gustaría mucho si te suscribes a mis redes en Youtube, Google+, Twitter, e Instagram.

Comments

No comments found!

Leave a Comment

Your email address will not be published.

7 + 10 =

Login
Remember me
Lost your Password?
Password Reset
Login