Académique Documents
Professionnel Documents
Culture Documents
Facultad de Ciencias.
Escuela de Computación.
< Para analizar y diseñar sistemas de información apropiados, los analistas de sistemas de información tienen
que visualizar a las organizaciones donde trabajan como sistemas formados por las interacciones de tres
fuerzas fundamentales: los niveles de administración, el diseño de las organizaciones y las culturas
organizacionales. >
Historial de Revisiones
Fecha Versión Descripción Autor
Tabla de Contenidos
1. Definir Conexiones ......................................................................................................................... 4
2. Pasos de ETL ................................................................................................................................. 6
3. Pasos de Entrada ........................................................................................................................... 6
3.1 Entrada por hoja de Excel .......................................................................................................................... 7
3.2 Entrada por archivos de texto ................................................................................................................... 11
3.3 Entrada por Base de datos ........................................................................................................................ 14
3.4 Generate Rows ......................................................................................................................................... 16
3.5 Get system info......................................................................................................................................... 17
4. Pasos de salida ............................................................................................................................ 18
4.1 Salida por archivo ..................................................................................................................................... 18
4.2 Salida por archivo de excel ...................................................................................................................... 19
4.3 Salida por dimensión ................................................................................................................................ 21
Actividad de laboratorio:
1. Definir Conexiones
Para definir una conexión hacemos clic en el icono con la lupa que tiene la etiqueta View, hacemos
doble clic en la carpeta que dice Transformations y luego hacegurandonos que estemos en la sección
de View, hacemos doble clic en la carpeta de nombre Database connections
Se abrirá una ventana en la que configuraremos dos conexiones, una con la base de datos ol_oltp y otra
con la base de datos ol_olap, cree estas dos conexiones guiándose por las siguientes imágenes:
*Nota: el password es el mismo password que se colocaron en la creación de los usuarios de postgres que
controlan las bases de datos (ol_oltp y ol_olap)
2. Pasos de ETL
Hacemos clic en el icono con el pincel con la etiqueta Design para empezar a agregarle pasos a
nuestra transformación. Para importar un elemento al lienzo arrastramos el elemento que queramos
añadir desde la ventana de la izquierda hasta la ventana de la derecha. Para unir varios pasos
Seleccione el paso fuente, deje presionado la tecla de shift y arrastre el ratón hasta el paso destino, se
sabrá si dos pasos están conectados porque una flecha dirigida aparecerá entre los pasos
3. Pasos de Entrada
En la ventana de lado izquierdo (Steps) abrimos la carpeta de input para ver todos los pasos de
entrada que nos proporciona kettle. En este laboratorio atacaremos 5 de estos elementos que son
entrada por un archivo Excel, entrada por un archivo de texto, entrada por una tabla de base de datos,
generación de filas y Obtención de información del sistema, le invitamos a que utilice los demás por
cuenta propia.
Arrastre y coloque en el lienzo el paso de excel input, haga doble clic en el paso, oprima el botón
browse para buscar el archivo del que vamos a extraer los datos. Busque el archivo makefix.xls y
luego haga clic en el botón Add para añadirlo al paso.
Haga clic en la pestaña Fields y luego haga clic en el botón Get Fields from headers now, aparecerán
dos filas, una MAKE y otra CORRECTED_MAKE, termine haciendo clic en el botón ok para
guardar la información del paso.
Haga clic en la carpeta de la izquierda de nombre transform, arrastre el paso de dummy(Do nothing)
al lienzo, una los pasos y ejecute la transformación Haciendo clic en el botón similar al de play que se
encuentra entre los iconos que se encuentran en la parte superior del lienzo.
Despues de hacer clic en el botón de play aparecerá una ventana en la que presionaran launch
Si no han guardaron la transformación, se les presentara una ventana emergente que dira que necesita
guardar la transformación antes de ejecutarla, presionen el botón de yes y guarden la transformación.
Si no les dio error debe aparecer una ventana como la siguiente y note la parte debajo del lienzo
donde dice Step Metrics.
Para ser un poco mas ilustrativos, haremos el paso que tiene como icono el símbolo de play junto a la lupa, este
paso se denomina preview, seleccione el paso Dummy y haga clic en preview, aparecerá una ventana en la que
oprimirán el botón Quick Launch
Si todo funciona correctamente les debe aparecer una ventana como la siguiente
Arrastre y coloque en el lienzo el paso de text file input, haga doble clic en el paso, oprima el botón
browse para buscar el archivo del que vamos a extraer los datos. Busque el archivo
Zipssortedbycitystate.txt y presione el botón Add
*Nota: no siempre debe configurarse el contenido del archivo de la misma forma, particularmente en
el caso del archivo que estamos escogiendo para extraer los datos vino en formato unix y sin
cabecera, le invitamos a que repase el contenido del archivo ejemplo del excel para entender que
maneja el contenido de forma distinta.
Hacemos clic en la pestaña error handling y seleccionamos Ignore Errors y Skip Error Lines
Hacemos clic en la pestaña de Fields para obtener los campos del archivo de texto, hacemos clic en el
botón get fields para que se traiga los campos del archivo, en nuestro caso deben ser 7 campos donde
6 son string y 1 es entero.
Colocamos el paso dummy, hacemos el flujo de datos desde Entrada de Archivo hasta dummy, nos
aseguramos de situarnos en el paso dummy y ejecutamos pre visualizar.
Arrastramos el paso Table input al lienzo, hacemos doble clic en este paso y modificamos:
En el área de Connection seleccionamos ol_oltp de la lista, luego hacemos clic en el botón Get
SQL Select Statement, aparecerá una ventana emergente donde escogemos la tabla gencode al
pulsar el botón ok otra ventana emergente aparecerá preguntándonos si queremos traernos todos
los campos de la tabla y le decimos que si.
Hacemos clic en el botón ok, arrastramos el paso dummy establecemos el workflow y ejecutamos
pre visualizar
Con este paso podemos crear filas, arrastramos generate rows al lienzo le hacemos doble clic para
colocarle dos campos uno de nombre prueba1 de tipo string con el valor hola mundo y el otro
campo de nombre prueba2 de tipo numeric y le colocamos como valor 12321. El numero 10 en el
campo limit en la parte superior indica que se generaran 10 filas.
Este paso sirve para agregar información del sistema a nuestro workflow, arrastramos al lienzo el
paso Get system info, le hacemos doble clic creamos un campo de nombre prueba y le colocamos
el tipo system date (fixed).
4. Pasos de salida
Estos pasos nos sirven para cargar en diversas fuentes de datos los resultados del proceso de
transformación. Tocaremos solo tres pasos de transformación de salida invitándolo a probar el
resto por cuenta propia. Los pasos a tratar son Salida por archivo, salida por excel y salida por
dimensión. En ingles los pasos de salida en están en el menú de output.
Arrastramos al lienzo el paso que de nombre text file output, le hacemos doble clic para
modificarlo, hacemos clic en el botón de browse para seleccionar la ruta del archivo buscamos la
carpeta de escritorio, le colocamos el nombre de texto y le damos ok para guardar y salir del paso.
Arrastramos también los pasos de entrada generate rows y get system info, armamos los pasos
como se ilustra a continuación
Repetimos el paso anterior pero colocando al final el paso de excel output en vez de text file
output. Arrastramos el paso de Excel output al lienzo, le hacemos doble clic para modificarlo y:
Haciendo clic en el botón browse buscamos el escritorio y le colocamos de nombre excel
Hacemos clic en la pestaña Fields para colocar los campos que va a tener nuestra tabla de excel,
hacemos clic en el botón get fields para obtener todos los campos que vienen por el workflow,
deben aparecer tres campos uno de tipo string, un de tipo number y otro de tipo date.
En este paso llenaremos la dimensión terminaldim examine la tabla gencode antes de continuar
con el laboratorio para entender como la vamos a usar, véase también el diagrama estrella y el
diagrama relacional para entender que relación tienen, necesitaremos tener en el lienzo: un paso
get system info, un paso table input y el nuevo paso dimensión lookup/update que se encuentra en
el menú Data Warehouse. Nuestro primer paso en el flujo será el table input, aca vamos a
seleccionar la base de datos de ol_oltp y la tabla gencode, del query resultante solo vamos a
necesitar los campos abbr y desctxt. Adicionalmente a esto vamos a agregar un where para
colocar que el campo labeltype sea igual a Terminal.
El siguiente paso es el Get system info, crearemos una columna de nombre update_dt y le
colocaremos el tipo system date(fixed)
Por ultimo tenemos el nuevo paso, Dimension Lookup/Update. Lo primero que tenemos que hacer
es seleccionar la conexión con la base de datos ol_olap, luego seleccionamos usando el botón
browse vamos a buscar dentro de schemas->ol_olap el esquema terminaldim, aproveche para
anotar el nombre del id de secuencia que se encuentra dos esquemas mas abajo (note el id_seq al
final del esquema). La pestaña keys sirve para establecer la relación que existe entre la dimensión
y la tabla operacional, se observa en el esquema estrella específicamente la dimensión
terminaldim que el campo terminal_code tiene un icono al lado derecho, este icono indica que
este campo es quien guarda la relación con la tabla operacional, la tabla gencode es quien tiene
esta relación específicamente el campo abbr(es por esto que fue uno de los campos seleccionados
en el query), por ende coloque en la columna Dimension Field terminal_code y en el field in
stream colocaremos abbr, en la pestaña colocaremos otros campos de la dimensión y su
correspondiente valor en nuestro flujo, colocaremos en Dimension Field el campo de la dimensión
Terminal_Name y campo Stream Field to Compare With el campo en nuestro flujo que tiene esa
correspondencia que vendría siendo desctxt por ultimo en type of dimension update colocaremos
insert porque no nos interesa guardar un historial de los nombres de los terminales. En el campo
technical key field colocaremos el campo clave o sustito de la dimensión el cual lo reconoceremos
en el esquema estrella por tener una llave de lado izquierdo, en nuestro caso ese valor es
terminal_id, en el campo creation of technical key usaremos la opción Use Sequence donde
colocaremos la secuencia que habíamos hablado antes, el campo stream field es el campo que
indica la fecha en la que se ingreso el valor, en nuestro caso es el campo relevante a la
información del sistema( update_dt ) los campos versión field, date range start field y table
daterange end serán iguales para todas las dimensión que trataremos en el resto del laboratorio,
sus valores son versión field: dim_version, date range start field: dim_effect_date y por ultimo el
campo table daterange end: dim_expire_date
Haga una pre visualización sobre el paso dimensión lookup/update para verificar la correctitud de
la transformación
Adicionalmente use pgAdmin III para ver el resultado reflejado en la base de datos terminaldim