Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Por tanto en este tipo de procesos, la carga de trabajo mas costosa (en cpu y memoria) se realiza fuera del
origen de los datos, aliviando de carga a las fuentes.
En un proceso ETL terico, los datos se extraen en bruto de las fuentes; todo el procesamiento como
dar formatos a los campos, traducciones, generacin de datos (secuencias), agregacin de estos y
validacin y verificacin de la calidad del dato se podra hacer en la fase de transformacin. Con ello se
minimiza el impacto sobre las fuentes y los sistemas de destino de la informacin.
En la realidad, los procesos que podemos encontrar son de tipo mixto ETL con ELT .
La herramienta Talend Open Studio for Big Data est basada en el entorno de programacin java llamado
Eclipse.
Bloque 1: en este bloque se muestran los distintos jobs y elementos que contiene nuestro repositorio.
Bloque 2: en este bloque se muestran por pestaas los jobs que tengamos abiertos para editar.
Bloque 3: en este bloque se muestran las pestaas de variables de contexto del job, una pestaa de
configuracin para el componente que tengamos seleccionado dentro del job, una pestaa para hacer
ejecuciones del job y otras.
Bloque 4: en este bloque se muestra la lista de componentes que tenemos disponibles para agregar a
nuestros jobs; dichos componentes estn agrupados por categoras.
Componentes de entrada (Input): se puede obtener la informacin de fichero, una base de datos e
incluso internet.
Componentes de salida (Output): como para los de entrada, los componentes de salida pueden volcar la
informacin sobre ficheros, bases de datos u otros.
Existen otros tipos de componentes, como aquellos que permiten realizar operaciones de sistema
operativo o por FTP, pero principalmente se usarn componentes de los tres tipos anteriores.
En este flujo que mostramos de ejemplo se tienen dos entradas: una de un fichero delimitado (un .csv) y
una consulta oracle. El componente tMap se encarga de hacer join complejos entre los datos y permite
varias salidas que generan flujos paralelos (se realizan procesamientos en paralelo, no como en un
procedimiento almacenado Oracle en el que el procesamiento es en serie). En uno de los flujos se hace un
filtro de filas segn una cierta condicin y en el otro se realiza una agregacin de datos y a continuacin
una sustitucion de caracteres. Finalmente se vuelca informacin de salida a un fichero posicional y a una
tabla Oracle.
Dentro de un job, como la herramienta est basada en Java se usan los tipos de campo de dicho lenguaje.
Descripcin
tFileInputDelimited
tOracleInput
tFileInputFullRow
Descripcin
tFileOutputPositional
tOracleOutput
tFileOutputDelimited
Los componentes de output tienen multitud de opciones que permiten por ejemplo:
Estos componentes pueden ser usados como componentes intermedios en un flujo de manera que este
pueda continuar.
tFilterRow
Descripcin
tConvertType
tFilterColumns
tJavaRow
tReplace
tSortRow
tSetGlobalVar
Componente
tJoin
Descripcin
tOracleCommit
tAggregateRow
Permite realizar commit para una conexin abierta que se est usando
por componentes oracle.
Permite el clculo de valores agregados (sumas, max, avg,..)
especificando una agrupacin (similar a group by en SQL).
El inicio de ejecucin de los flujos se configura a travs de triggers que enlazan los flujos o componentes:
Por ejemplo, podemos conectar dos flujos A y B para que B se ejecute si el flujo A ha finalizado
correctamente (On Subjob Ok).
Podemos conectar flujos padres-hijos con una relacin 1-N (1 padre, varios hijos), lo que nos permite
paralelizar flujos (ejecuciones simultneas).
Hay componentes como tPivotToColumns que obligan a finalizar un flujo para poder usar los datos
procesados. En este caso se puede crear otro flujo tomando el fichero de salida de tPivotToColumns como
fichero de entrada para continuar el procesamiento.
Todo flujo que no est conectado con otro del job se ejecutar al comienzo de la ejecucin del job.
Variables de contexto.
Se pueden especificar variables de contexto de igual manera a como se tratan en un proyecto java.
Estas variables se pueden incluir en un fichero de contexto java o bien cargarlas de ficheros de entrada
usando los componentes:
Componente
Descripcin
Carga valores de variables de contexto desde una entrada con los campos:
tContextLoad
tJavaRow
Exportar el job, creandose un fichero java .jar junto con un .bat (y un .sh para linux) ejecutable que
permite ejecutar el job . De esta manera podemos ejecutar los jobs en cualquier ordenador (PC o no,
porque es java) siempre que se tenga la estructura de carpetas configurada en el job y haya acceso a los
ficheros y BD usadas.
En una ejecucin desde la herramienta se muestran en la ventana del Bloque2 el nmero de filas
procesadas, el tiempo total de trabajo de cada componente, si el flujo ha terminado o est en espera, etc.
Dentro del job podemos incluir trazas y aadir informacin a este log de ejecucin.
En los jobs que he creado he incluido el siguiente flujo para capturar posibles errores java: