Tutorial de Pentaho - Proceso ETL con Spoon

March 26, 2018 | Author: anoriaroca | Category: Table (Database), Computer File, Databases, Information Science, Information


Comments



Description

TUTORIAL DEPENTAHO: DEFINICIÓN DE UN PROCESO ETL CON SPOON Miguel Velasco Gómez-Pantoja (jvel) Contenido Lista de ilustraciones..................................................................................3 Introducción................................................................................................ 4 Descarga e instalación de la herramienta...................................................4 Definición del proceso................................................................................. 4 Trabajo con Spoon....................................................................................... 6 Lectura de datos (Extract).......................................................................6 Transformación de datos (Transform).....................................................13 Carga de datos (Load)............................................................................16 .................................................21 .........16 17 – Envío de información para la escritura en base de datos...........................19 20 – Configuración del paso de salida a tabla............12 11 – Definición de campos del fichero CSV de entrada..........................14 13 – División de los campos código y nombre...............................5 3 – Paleta de entrada.........8 5 – Definición del contenido del fichero de entrada..5 2 – Fichero de población.........................16 16 – Definición de la tabla de personas.........17 18 – Configuración de la conexión a base de datos........9 6 – Delimitación de los campos del fichero de personas.....................................................................................................................10 9 – Selección del fichero CSV de entrada...............................9 7 – Nombres de los campos de personas.......................15 15 – Configuración de la búsqueda en flujo.................................................................................19 21 – Opciones de ejecución.....18 19 – Mapeo de los datos a insertar..................................Lista de ilustraciones Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración 1 – Fichero de personas..............................................11 10 – Definición del contenido del fichero CSV de entrada..............20 22 – Resultados de la ejecución..............13 12 – Envío de información entre pasos.10 8 – Previsualización de los datos de personas.....................................................................14 14 – Envío de información al paso de búsqueda.............7 4 – Selección del fichero de entrada..........................20 23 – Contenido de la base de datos.............................................................. de la herramienta Spoon. PL/SQL.Introducción Es muy habitual en el trabajo de un informático tener que desarrollar cargas de datos entre distintas fuentes. Por ejemplo cuando se requiere una migración entre bases de datos de distintas tecnologías.. El objetivo de este tutorial es mostrar cómo utilizar la fase de integración de datos para realizar cargas haciendo uso de la suite de BI Pentaho.0.01. dentro su módulo de integración de datos. y a realizar transformaciones sobre esa información para cargarla en un almacén desde el que se pueda explotar. Con la descarga obtendremos un fichero comprimido en Zip. En este tutorial veremos las posibilidades que ofrecen las herramientas de Bussines Intelligence (BI) para realizar este tipo de cargas sin necesidad de programar código específico. independientemente de su tecnología. Definición del proceso .1. en los procesos conocidos como ETL (Extraer. da problemas a la hora de arrancar en sistemas Windows. en la siguiente url: http://kettle.com/. la fase de integración de datos se orienta a obtener información de distintas fuentes de datos. Descarga e instalación de la herramienta El módulo de integración de datos de Pentaho puede descargarse desde su Web. Transformar.. que es la más nueva a fecha de este tutorial.pentaho. o Excel. o cuando se quieren cargar los datos de un Sistema que sólo permite su exportación en ficheros de texto. es por eso que utilizamos la versión 4. ya sean en lenguaje Java. En este tutorial trabajamos con la versión 4. NOTA: la versión 4. Dentro del BI. y la instalación es tan simple como extraer su contenido en la ubicación en que se quiera tener Pentaho. Cargar).1 para Windows. CSV. y en concreto. En estos casos se suele recurrir al desarrollo de programas. El primero de ellos contendrá datos de personas en líneas con un formato fijo. Este dato lo encontramos en el fichero de personas.El proceso que vamos a desarrollar en este tutorial pretende obtener información de un fichero de texto. Para ello disponemos de un fichero CSV descargado directamente de la Web del Instituto Nacional de Estadística (www. dado por los dos dígitos situados en las posiciones 182 y 183 de cada línea. como el que se muestra a continuación. vamos a tener que obtenerlo. y cargarlos finalmente en una base de datos. Esos dos dígitos corresponden con el código de la provincia. Ilustración 1 – Fichero de personas Nuestro objetivo va a ser almacenar en una base de datos el dni de cada uno de estas personas. Ilustración 2 – Fichero de población . tal como se muestra en la imagen. Como lo que queremos es almacenar el nombre. realizar un sencillo tratamiento de los datos. junto con el nombre de su provincia de nacimiento.ine.es). Como entrada vamos a trabajar con dos ficheros. Por tanto. en la que encontramos componentes para acceder a ficheros de texto. bases de datos. Lectura de datos (Extract) El primer paso será la obtención de información de distintas fuentes de datos. etc. para ahorrarnos algunos pasos de configuración. en la pestaña diseño. De modo que utilizaremos esta información para obtener el nombre asociado a cada código encontrado en el fichero de personas.En este fichero tenemos las cifras de población de todas las provincias españolas. En el lado derecho podemos ver una representación gráfica de la transformación que estamos creando.bat. o bien directamente en ficheros en el equipo local. y éstas están identificadas tanto por su nombre como por su código. Una vez abierta la herramienta. empezamos a trabajar generando una transformación. que está destinado a configurar la conexión al repositorio. Spoon puede trabajar almacenando los procesos creados en un repositorio (que puede estar basado en una base de datos o en ficheros). tenemos el fichero Spoon. . a través del menú Fichero – Nuevo. Así se hará visible la paleta. en la carpeta data-integration. desde la que podemos seleccionar las operaciones que formarán parte de nuestra transformación. Trabajo con Spoon Dentro del directorio de instalación. Para este tutorial utilizaremos la segunda opción. Las alternativas que nos ofrece la herramienta las podemos ver en la categoría Entrada de la paleta. servidores LDAP. que lógicamente se encuentra todavía vacía. Lo último que haremos será almacenar en una base de datos los datos procesados. podemos cerrar el diálogo mostrado al arrancar la herramienta. mediante el que podemos arrancar la herramienta. La arrastramos sobre nuestra transformación. y seleccionamos y añadimos el fichero de personas. que podemos ir añadiendo desde la pestaña Fichero. y hacemos doble clic para acceder a su configuración.Ilustración 3 – Paleta de entrada Vamos a empezar seleccionando la opción Entrada de Fichero de Texto. Este proceso puede obtener la información de uno o varios ficheros. Nombramos el paso como Leer personas. . Lo primero que tenemos que hacer es darle un nombre. y seleccionar los ficheros de entrada. Nuestro fichero de entrada muestra directamente los datos.Ilustración 4 – Selección del fichero de entrada A continuación tenemos que configurar cómo se obtendrá la información. tenemos que desmarcar el checkbox correspondiente. por lo que seleccionamos esta opción (Fixed). Por tanto. desde la pestaña Contenido. En ambos casos podremos configurar la carga de una forma muy intuitiva. . Para este primer caso vamos a trabajar con un fichero de formato fijo. Podemos trabajar con ficheros CSV o de formato fijo. sin contener ningún tipo de cabecera previa. En esta ventana podemos definir los campos pinchando sobre el contenido. Para ello tenemos a nuestra disposición un ayudante muy útil. disponible a través del botón Traer Campos. .Ilustración 5 – Definición del contenido del fichero de entrada Con esta configuración podemos pasar a la pestaña Campos. Si pulsamos sobre él. se abre una nueva ventana en la que vemos el contenido del mismo. con lo que creamos marcas que delimitarán dónde empieza y acaba cada uno. al haber seleccionado anteriormente la opción Fixed como tipo de fichero. en la que tenemos que indicar qué valores vamos a obtener del fichero. Para simplificar este paso podemos pulsar el botón Adivina Todos. y pulsamos en finalizar. vemos que la herramienta ha asignado a cada campo el tipo que le corresponde (cadena o número).Ilustración 6 – Delimitación de los campos del fichero de personas Una vez marcados los campos accedemos a la siguiente ventana. En el caso del campo codigoProvincia vamos a cambiar el tipo a String. evitando procesar todos los registros cuando lo único que queremos es ver cómo quedaría el resultado. y su longitud. Previamente se nos preguntará mediante un diálogo cuántas filas queremos previsualizar. Si vamos recorriéndolos. en la que podemos dar un nombre y tipo a cada uno de ellos. Asignamos un nombre descriptivo a cada uno de los campos. desde donde podemos pulsar el botón Previsualizar filas para ver los datos leídos del fichero de acuerdo a esta configuración. Ilustración 7 – Nombres de los campos de personas Volvemos a las propiedades del paso. Esta opción es interesante cuando trabajamos con fuentes de datos grandes. . Para leer este tipo de ficheros existe un paso en Spoon denominado CSV file input. pero de una forma más simple al eliminar gran parte de las opciones presentes. del que extraeremos esa información. Este paso permite hacer lo mismo que el que utilizamos anteriormente (Entrada fichero de texto). Sin embargo. que normalmente sería el más apropiado. que queremos ampliar con una nueva columna que contenga el nombre de la provincia. Por tanto. . Le damos el nombre Leer poblaciones. y añadimos a la lista de ficheros seleccionados el de poblaciones. El fichero de poblaciones es un fichero CSV. y esta posibilidad sólo la tenemos con Entrada fichero de texto. y accedemos a las propiedades haciendo doble clic. Con este primer paso hemos obtenido una colección de datos sobre personas.Ilustración 8 – Previsualización de los datos de personas Completamos el proceso pulsando el botón Vale. volvemos a arrastrar el paso sobre nuestra transformación. el fichero que vamos a leer ahora tiene una cabecera de 8 líneas que tenemos que ignorar. Antes de nada tenemos que leer el otro fichero de texto. y modificamos el separador al carácter coma (. El closure lo quitamos.). donde seleccionamos el tipo CSV. y se indican sus datos de contacto. .Ilustración 9 – Selección del fichero CSV de entrada Pasamos a la pestaña Contenido. Marcamos también el de pie. indicamos 8 para el número de líneas de cabecera. En el campo de cabecera. dejándolo en blanco. que son las líneas en las que se cita al INE. que en este caso sí dejamos marcado. e igualmente le damos el valor 8. si probamos con nuestro fichero veremos que detecta un único campo. . Sin embargo.Ilustración 10 – Definición del contenido del fichero CSV de entrada Nos vamos por último a la pestaña Campos. y el número de habitantes por el otro. así que vamos a meter la configuración a mano. Creamos dos campos de tipo cadena en los que se leerán el código y nombre de la provincia por un lado. Normalmente utilizaríamos el botón Traer campos para que la herramienta se encargue por sí misma de detectar los campos disponibles en el fichero. y antes de editarlo. . dentro del grupo Transformar.Ilustración 11 – Definición de campos del fichero CSV de entrada En este punto podemos pulsar Previsualizar filas para ver la información que obtendremos al ejecutar el paso. Elegimos el primero. Los flujos de información entre pasos se definen pulsando la tecla shift. Transformación de datos (Transform) En el primer campo leído del fichero tenemos ahora tanto el código como el nombre de la provincia. Una vez que hemos arrastrado el paso. tenemos que enviarle la información obtenida en Leer poblaciones. y arrastrando el cursor desde el paso de origen hasta el de destino. Para ello utilizamos el paso Partir campos. Vamos a incluir un nuevo paso a la transformación en el que dividiremos esa información en dos campos independientes. Posteriormente aceptamos el diálogo. Al hacerlo. que puede ser el principal o el de error. Spoon mostrará un menú contextual para seleccionar el tipo de envío. no la coma. incluido el separador. y buscar el código de la provincia de cada una de ellas en el que acabamos de obtener. Como nombre le ponemos Separar nombre y codigo. una para cada uno de los campos que vamos a obtener. . por lo que podemos volver al flujo de datos que obtuvimos del fichero de personas. Todas serán de tipo String. Este paso recibirá información tanto de Leer personas como de Separar nombre y codigo. En la tabla de campos vamos a tener que introducir tres filas. El separador tenemos que cambiarlo. En el desplegable de campo a partir tenemos los campos que le llegan al paso desde Leer poblaciones. Ilustración 13 – División de los campos código y nombre Ya tenemos el código y el nombre en campos distintos. entre los que elegimos CodigoNombre. ya que es el espacio.Ilustración 12 – Envío de información entre pasos Ahora podemos acceder a las propiedades de Partir campos. dentro de la categoría Búsquedas. Para hacer esta búsqueda podemos utilizar el paso Búsqueda en flujo de datos. y cómo se llamará el nuevo campo que se creará para contenerla. que se utilizará en aquellos casos en que la búsqueda no produzca resultados. y en la segunda. En la primera columna. En el desplegable Lookup step tenemos que elegir sobre cuál de los dos pasos de los que recibimos información haremos la búsqueda. Para este caso serán los datos de Separar nombre y codigo. y lo nombramos como Buscar nombre de provincia. Campo Búsqueda. en la última tabla tenemos que indicar de qué campo obtendremos la información que queremos agregar. Por últimos. tenemos que seleccionar el campo de los provistos por Leer personas. Campo. .Ilustración 14 – Envío de información al paso de búsqueda Abrimos la vista de propiedades del nuevo paso. Le damos también un valor por defecto. En la siguiente tabla tenemos que indicar por qué campos se hace la búsqueda. el campo de los disponibles en Separar nombre y codigo con el que lo vamos a igualar. El valor que necesitamos es Nombre. con una tabla homónima que contiene los campos nombre y provincia. ambos cadenas de tamaño 50. Para este ejemplo se ha utilizado Oracle XE 10g. . Ilustración 16 – Definición de la tabla de personas Dentro del grupo de pasos Salida encontramos Salida Tabla.Ilustración 15 – Configuración de la búsqueda en flujo Carga de datos (Load) Lo único que nos queda para completar la definición del proceso es guardar la información en una base de datos. Lo arrastramos sobre la transformación. y le enviamos los datos de Buscar nombre de provincia. creando un esquema denominado personas. accediendo por JDBC. en el que lo primero es seleccionar el tipo de conexión. Se abre el diálogo para crear conexiones.Ilustración 17 – Envío de información para la escritura en base de datos Accedemos a la edición del paso. Con cualquier otro SGBD como MySQL o SQL Server se trabajaría exactamente igual (cambiando sólo los parámetros necesarios para configurar la conexión. este ejemplo se ha hecho con una base de datos Oracle. Pulsamos el botón Nuevo…. y le damos el nombre Guardar en base de datos. Como hemos dicho. que son específicos de cada base de datos). junto al campo Conexión. En la configuración de este tipo de pasos lo primero es definir una conexión a la base de datos que vayamos a utilizar. informamos el resto de campos. . tal como se muestra a continuación. Una vez seleccionado el tipo de conexión. También marcamos Specify database fields. la herramienta los asociará automáticamente. y continuamos configurando el paso de inserción de datos. Para el resto. Aquí tenemos que indicar qué campos del flujo se van a cargar en qué campos de la tabla.Ilustración 18 – Configuración de la conexión a base de datos Aceptamos el diálogo. Si hay campos que tienen el mismo nombre tanto en la tabla como en el flujo de datos de entrada. que es Personas. por lo que seleccionamos el check. La forma más sencilla de hacerlo es pulsar el botón Enter field mapping. Accedemos a la pestaña Database fields. Tenemos que indicar el esquema y tabla de destino. Entre las opciones disponibles está la de vaciar la tabla cada vez que se inserten nuevos datos. tenemos que indicar nosotros cómo se relacionarán. o bien siendo sustituida en cada ejecución. Vamos a elegir esta última opción. Dependiendo de la naturaleza de nuestro proceso puede que la información que vayamos a cargar deba ir incrementándose. . dado que queremos indicar nosotros mismos qué campos de la tabla van a ser informados. Ilustración 19 – Mapeo de los datos a insertar Tras aceptar. la configuración el paso queda como se muestra. habremos terminado de configurar el proceso ETL. . Ilustración 20 – Configuración del paso de salida a tabla Si aceptamos el cuadro de propiedades. No vamos a utilizar ninguna de estas opciones. que nos permite depurar. etc. y vemos que se han insertado los valores esperados. de modo que pulsamos sobre Ejecutar. Aparece el cuadro de configuración de la ejecución. Podemos hacerlo en el menú Action – Ejecutar. . Ilustración 22 – Resultados de la ejecución Para comprobar que todo es correcto. podemos ver tanto el log como las métricas de los pasos ejecutados. Ilustración 21 – Opciones de ejecución En la sección de Resultados de la ejecución. en la parte inferior de la pantalla. enviar parámetros.Lo único que nos queda es ejecutarlo para ver el resultado. inspeccionamos la tabla de la base de datos. además de revisar que no hay errores en el log. o directamente con el botón de la barra representado con una flecha verde. Ilustración 23 – Contenido de la base de datos .
Copyright © 2024 DOKUMEN.SITE Inc.