Conexión a Base de Datos con PDI.


Empezaremos con las conexiones a base de datos mediante el PDI y la realización de un pequeño ETL o Transformación.

El ejemplo se realiza con PostgreSQL como base de datos, debe estar instalada y seguir las instrucciones.

Crear la Base de Datos

Ejecutar los siguientes scrips, son sencillos, sólo para la realización de éste laboratorio.

CREATE DATABASE tutorial
    WITH OWNER = postgres
    ENCODING = 'UTF8'
    TABLESPACE = pg_default
    LC_COLLATE = 'es_VE.UTF-8'
    LC_CTYPE = 'es_VE.UTF-8'
    CONNECTION LIMIT = -1;

Crear la tabla

CREATE TABLE usuarios(
    id integer,
    nombre char(70),
    apellido char(70),
    telefono varchar(15),
    usuario varchar(70),
    primary key (id)
);



Inicie el PDI utilizando el script de arranque spoon que se encuentra en la carpeta descomprimida data-integration. Tome en cuenta que debe utilizar el script correspondiente a su Sistema Operativo: ejecutar el comando sh spoon.sh para sistemas UNIX o presionar doble click al script spoon.bat para sistemas Windows.

Las conexiones pueden ser creadas desde las tareas (Jobs), las transformaciones y el repositorio.

Para crear una nueva conexión, abra una nueva transformación
(File → New → Transformation):

1. En el panel izquierdo, en la sección View, presione click derecho sobre la carpeta Database connections, y seleccione New. Aparecerá una ventana para establecer la conexión (estas opciones varían dependiendo de la base de datos).

2. En tipo de conexión (Connection type) seleccione PostgreSQL (o la base de datos que tenga instalada) e ingrese los siguientes datos:
    • Nombre de la conexión (Connection name): Conexión Tutorial
    • Acceso (Access): Native (JDBC).
    • Nombre del Host (Host Name): localhost
    • Nombre de la base de datos (Database name): tutorial
    • Número del puerto (Port number): 5432 (Por defecto en PostgreSQL)
    • Usuario (User Name): <usuario para el acceso>
    • Contraseña (Password): <contraseña del usuario>

Se recomienda hacer un test en la conexión para comprobar su estado como se muestra en la imagen.


Si quiere profundizar la conexión, hacer click  en Explore, para explorar las tablas de la base datos a la cual se estableció la conexión.




TRANSFORMACIONES

Las transformaciones son una serie de tareas lógicas (pasos), organizados para cumplir un proceso de extracción, transformación o carga de los datos.

Por ejemplo:
  1. Leer de un archivo plano.
  2. Descartar los registros nulos.
  3. Ordenarlos.
  4. Seleccionar los campos que queremos guardar.
  5. Cargarlos en una base de datos. (Y muchas otras tareas).
      
    En el panel izquierdo, en la sección Design, se encuentran los pasos disponibles para la creación de ETLs. Para insertar un paso al panel derecho, despliegue cualquier grupo de pasos, y arrastre el paso al panel derecho. 


     

Ya hemos realizado la conexión y verificado su estatus, lo que significa que podemos crear nuestro primer etl.

El ejemplo trata de la lectura de un archivo .csv que se le aplicarán algunos cambios para luego ser insertado a la tabla que creamos en la base de datos.

AMBIENTE DE DESARROLLO

El ambiente de desarrollo del PDI se divide en dos paneles principales: el panel izquierdo, que contiene las vistas y herramientas para el diseño de tareas y transformaciones, y el panel derecho, donde se crea el proceso ETL. Para visualizar las opciones en el panel izquierdo, cree una nueva transformación seleccionando:  File → New → Transformation

Así se verá nuestra tranformación luego de terminada, pasemos ahora a configurar cada step o paso.



1. Crear un archivo .csv con los siguientes datos y guardar, ésta información son nuestros datos de entrada que serán tratados en la transformación 




2.  Selecciona el paso CSV file input para establecer la entrada de datos al PDI, en éste paso damos la ruta donde se encuentra el archivo csv en mi caso /home/jeison/Documentos/Tutorial/usuarios.csv, presionamos el botón Get Fields que nos muestra todos los campos leídos en el archivo.



Es recomendable hacer Preview presionando el botón, para mostrar los registros encontrados.
   
  

Para que los pasos puedan seguir un orden de ejecución, es necesario enlazarlos con los saltos (Hop). Los saltos permiten que los meta datos del esquema sean pasado de paso a paso, determinando el flujo de los datos a través de todo el ETL. Cuando un paso envía varios saltos a diferentes pasos, los datos pueden ser copiados a todos los pasos de destino o pueden ser distribuidos entre ellos. Para poder enlazar los pasos, siga las siguientes instrucciones:

  • Con los dos pasos al panel derecho ( CSV file input y Split Fields).
  • Coloque el ratón sobre el paso CSV file input.
  • Seleccione el conector de salida (la cuarta opción de izquierda a derecha).
  • Presione el paso de destino Split Fields.
3. Seleccionar el paso Split Fields, Enlazar el paso CSV file input con Split Fields. En éste paso seleccionamos el campo a dividir, en nuestro caso nombre, en el campo Delimiter agregamos un espacio que será nuesto pivote para la división del nombre. Agregamos los nuevos campos que tomarán los valores de la división, nombre y apellido, y establecemos un tipo de dato Type = String.


 

4.- Agregar el paso Calculator, y enlazar el paso Split Fields al nuevo paso. Aquí pasaremos los datos del campo apellido a minísculas.


5.- Agregar el paso String Cut, enlazar el paso Calculator con String Cut. En éste paso vamos a tomar el primer valor del campo nombre.


6.- Añadir otro paso Calculator, enlazar el paso String Cut con el nuevo paso Calculator. Aquí crearemos una constante llamada under con el valor _ (Gión Bajo), el nombre es de su preferencia. Luego creamos un nuevo campo que contendrá los valores de los campos inicial_nombre + under + lowercase, ésta suma será el valor del campo usuario en nuestra base de datos.


 7.- Agregar el paso Select values, enlazar el Paso Calculator 2 con el paso Select values, éste paso es muy util, en este caso le daremo un uso básico que es el de remover campos que ya no necesitaremos, lowercase,inicial_nombre,under.





8.- Agregar el paso Sort rows, enlazar el paso Select values con el nuevo paso Sort rows, en este ETL, no es de gran de importancia ordenar los registros, pero, es un paso útil cuando se le requiere.




9.- Agregar el paso Add sequencia, enlazar el paso Sort rows con el paso Add sequencia, este paso nos creará  una secuencia numérica para el campo id de la base tabla usuarios.





10.- Agregar el paso Table ouput, enlazar el paso Add sequencia con Table ouput, éste paso será la salida del ETL en la tabla usurios de la base de datos tutorial, para ello ya hemos establecido la Conexión Tutorial.
  • Target schema, seleccionamos el esquema public que es por defecto donde PostgreSQL establece las tablas.
  • Target table, seleccionamos nuestra única tabla usuarias.
  • Tildamos el campo Specify database fields.
  • hacemos click en el botón Get fields, para traernos todos los campos que serán en la tabla. 


Es recomendable hacer  Preview, luego de haber configurado cado paso del ETL, para ello, hacemos click sobre el paso, luego click derecho y la lista que se despliega al final aparece la opción Preview, nos mostrará una preliminar de como se está comportando nuetsro flujo, y si hay algún error.

10.- Guardamos y ejecutamos nuestro ETL. Sí se ejecuta correctamente se mostrará con señal de color  verde en cada paso.




Verificamos en la base datos para ver el comportamiento de la tabla usuarios, en la cual podemos apreciar, que se insertarón los cambios que se realizarón en el ETL.



 

No hay comentarios.:

Publicar un comentario

"Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica. Esa fuerza es la voluntad"- Albert Einstein


Tú comentario nos ayuda a Mejorar..... Gracias!!!