Está en la página 1de 20

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE INGENIERÍA DE SISTEMAS


INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Laboratorio de:

Business Intelligence

Práctica No.: 05

Tema:

ETL de carga de dimensiones y hechos al Data Mart de ventas

Integrantes

Deyvid Paucar

Objetivos:

• Realizar el histórico de carga de dimensiones y hechos para el data mart de ventas


usando la herramienta Pentaho.
• Integrar las cargas en job con Pentaho.

Marco teórico:

ETL
ETL es un tipo de integración de datos que hace referencia a los tres pasos que son extraer,
transformar y cargar, los cuales se utilizan para mezclar datos de múltiples fuentes. Se utiliza a
menudo para construir un almacén de datos. [1]
Proceso ETL:
1. Los datos se toman de un sistema de origen
2. Se convierten en un formato en el que se puedan almacenar
3. Se almacenan en un data warehouse u otro sistema.

Características:
• ETL provee profundo contenido histórico para la empresa.
• ETL facilita a los usuarios de negocios analizar y generar reportes sobre datos
relevantes para sus iniciativas.
• ETL puede mejorar la productividad de los profesionales de los datos porque codifica y
reutiliza procesos que mueven datos sin requerir habilidades técnicas para escribir
código o scripts.
• ETL ha evolucionado para satisfacer requisitos de integración emergentes para cosas
como los datos transmitidos por streaming.

Job
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Un trabajo o job es similar al concepto de proceso. Un proceso es un conjunto sencillo o


complejo de tareas con el objeto de realizar una acción determinada. En los trabajos se pueden
utilizar pasos específicos como para recibir un fichero vía ftp, mandar un email, ejecutar un
comando, etc. Los trabajos estarían en un nivel superior a las transformaciones. [2]

En la ilustración 1 se muestra los componentes que forman un job.

Ilustración 1. Componentes de un Job.

Herramienta Pentaho

Es una plataforma de Business Intelligence orientada a la solución y centrada en procesos que


incluye los componentes requeridos para implementar soluciones basadas en procesos como
minería de datos, ETL, generación de informes, etc. [3]

Ventajas:

• Open Source.
• Multiplataforma.
• Fácil de instalar y configurar.
• Es una solución flexible que permite crear nuevas funcionalidades o módulos, que se
adaptan a las necesidades de la organización.
• Cuenta con un motor de Data mining y servidor OLAP.
• Enfocado Big Data y bases de datos no relacionales.

Desarrollo de la práctica:

En el desarrollo de la siguiente práctica se utilizará las herramientas PostgreSQL y Spoon.


Además, se considerará el modelo entidad-relación de factura de la ilustración 2 y el modelo
dimensional de ventas de la ilustración 3.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 3. Modelo entidad-relación de factura

Ilustración 4. Modelo dimensional de ventas

ETL de carga de dimensiones y hechos al Data Mart de ventas.

Tabla Cliente a Tabla dimensión cliente


Primero se va a seleccionar como entrada y salida la opción tabla y como operación de
transformación se selecciona select values como se muestra en la ilustración 5.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 5. ETL de la tabla clientes.

A continuación, se da doble clic en la tabla clientes y se muestra la pantalla de la ilustración 6


donde se puede crear una nueva conexión dando clic en el botón New.

Ilustración 6. Tabla input.

Posteriormente, se ingresa los respectivos datos para crear una conexión con la base de datos
factura en PostgreSQL y si todo es correcto, entonces se tendrá una conexión satisfactoria como
se muestra en la ilustración 7 y se guardará dando clic en el botón OK.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 8. Conexión con la base de datos factura en PostgreSQL.

Luego, en la tabla input se da clic sobre el botón Get SQL select statement y se mostrará la
ventana donde se puede elegir la tabla clientes de la base de datos factura como se muestra en
la ilustración 9.

Ilustración 9. Elegir la tabla cliente.


ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Para poder observar que los datos se han cargado entonces se da clic en el botón Preview y
automáticamente se mostrará la ventana con los datos cargados como se muestra en la
ilustración 10; finalmente se guarda todo dando clic sobre el botón clic.

Ilustración 10. Vista previa de los datos cargados.

A continuación, se va a configurar la operación para la transformación, para lo cual se da doble


clic sobre la transformación select values y autmáticamente se muestra la venta de la ilustración
11. En esta ventana se procede a seleccionar el botón Get fields to select donde se eligen las
columnas que se van a utilizar y si es necesario se las pueden renombrar como se muestra a
continuación.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 11. Select values.

Luego de configurar la operación de la transformación se procede a configurar la tabla output


que en este caso es la tabla dimensión_cliente. De la misma manera en cómo se configuró la
conexión para la base de datos de factura, también se va a configurar la conexión para la base
de datos de Datamart_ventas como se muestra en la ilustración 12.

Ilustración 12. Conexión a la base de datos datamart_ventas.


ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Posteriormente, en la opción “Target table” de la ventana Table output se puede crear una tabla
o seleccionar una existente de la base de datos datamart_ventas para añadir los datos
previamente transformados. En la ilustración 13 se puede observar cómo se elige la tabla
dimensión_cliente para guardar los datos de la tabla cliente transformados.

Ilustración 13. Elegir la tabla dimension_cliente como tabla output.

Finalmente, si el procedimiento anterior es correcto entonces se puede ejecutar la operación


ETL dando clic en el botón run; secuencialmente, se mostrará los datos transformados en la tabla
de salida dimensión_cliente como se puede observar en la ilustración 14.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 14. Resultados de la operación ETL sobre los datos de la tabla cliente.

Tabla Producto a Tabla dimensión producto

Para la tabla producto se realiza el mismo procedimiento de la tabla cliente, es decir se


selecciona la base de datos y en este caso se elige la tabla productos para extraer los datos. En
la figura 15 se pude observar la operación ETL.

Ilustración 15. Operación ETL sobre la tabla producto.

Para la transformación se selecciona los campos y se cambian sus nombres para que sean
coincidentes con los campos de la tabla dimensión producto como se muestra en la ilustración
16.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 16. Transformación para la tabla producto

Luego en la tabla dimensión producto se realiza el mismo procedimiento de la tabla dimensión


cliente. Finalmente, se muestra los datos transformados sobre la tabla dimensión producto
como se puede observar en la ilustración 17.

Ilustración 17. Resultados de la operación ETL sobre los datos de la tabla producto.

Transformar a la tabla hechos ventas

Para realizar la tabla hechos ventas se va a aplicar varias transformaciones a los datos de la base
de datos facturas. En la ilustración 18 se muestra el procedimiento ETL para obtener la tabla
hechos ventas.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 18. Procedimiento ETL para la tabla Hechos Ventas.

Primero, conectar las tablas inputs con la base de datos factura y extraer los datos de la tabla
detalle factura y cabecera factura. Además, extraer la fecha en un formato específico como se
puede observar en la ilustración 19.

Ilustración 19. Extraer datos de Detalle Factura.

Secuencialmente, conectar al datamart ventas y extraer los registros con su fecha de la tabla
dimensión tiempo como se puede observar en la ilustración 20.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 20. Extraer datos de Dimensión tiempo

Luego, mediante el uso de un join rows se combina las filas de la extracción de detalle factura
con las filas de la extracción de dimensión tiempo de acuerdo al campo fecha como se observa
en la ilustración 21.

Ilustración 21. Aplicar Join Rows.

A continuación, se va a calcular el valor_total_linea para lo cual se utiliza una fórmula. En la


ilustración 22 se muestra la formula donde se multiplica la cantidad por el precio unitario menos
el descuento unitario de cada producto y más el IVA total para la factura obteniendo así el valor
total.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 22. Calcular el valor_total_línea.

Ahora se selecciona los datos que van a estar en la tabla hechos ventas y a la vez se las renombra
para que coincidan con las columnas de la tabla de salida como se observa en la ilustración 23.
Así mismo se remueve los valores que no se desean incluir en esta tabla.

Ilustración 23. Seleccionar columnas para la tabla hechos ventas.

Posteriormente, conectar la tabla de salida con el Data mart de ventas y seleccionar la tabla
hechos_ventas donde se van a guardar los valores previamente transformados. En la ilustración
24 se puede observar la conexión al Data mart ventas.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 24. Conexión al Data mart ventas para crear la tabla hechos_ventas.

Finalmente, ejecutar el procedimiento ETL y como se puede observar en la ilustración 25 los


datos transformados están cargados a la tabla hechos_ventas

Ilustración 25. Tabla hechos_ventas.

Transformar la Tabla Tiempo

Para realizar la tabla Tiempo se va a aplicar varias transformaciones a los datos de la BD facturas.
En la ilustración # se muestra el procedimiento ETL para obtener la tabla hechos ventas.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 26. Procedimiento ETL para la tabla tiempo.

Primero en la entrada ExtraccionCabeceraFactura realizamos una consulta a la tabla


cabecera_factura en la BD Facturas obteniendo el campo fecha y un campo generado fecha2
que contiene el valor de fecha, pero convertido a carácter.

Ilustración 27. Extracción Cabecera Factura

En la transformación filas únicas que llamamos filtras fechas duplicadas se eliminarán las fechas
duplicadas obtenidas de la consulta anterior.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 28. Filtrar fechas duplicadas

Para la tabla del datamart dimension_tiempo requerimos de agregar valores a los campos anio,
mes y dia, estos valores necesitan obtenerse con la transformación para partir campos separar
fechas como se ve en la figura 29.

Ilustración 29. Separar Campos

Para agregar valores al campo trimestre de la tabla dimension_tiempo del Data Mart es
necesario usar un elemento scripping que nos permite definir una función que permite dar con
el trimestre en función del campo mes obtenido anteriormente. La regla es: if(OR([mes]
="01";[mes] ="02"; [mes] ="03"; [mes]="04") ; 1; IF(OR([mes] ="05";[mes] ="06"; [mes] ="07";
[mes]="08"); 2; IF(OR([mes] ="09";[mes] ="10"; [mes] ="11"; [mes]="12");3; 0) ))

Ilustración 30. Generar Campo Trimestre


ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

A todos los valores se les añade una constante hora indicando a qué momento del día se
ingresaron los datos al Data Mart para lo cual usamos una transformación add constant

Ilustración 31. Añadir constantes

Finalmente seleccionamos todos los campos que vamos a poner en nuestra tabla tiempo con la
transformación select values que están acorde al diseño del data mart ventas.

Ilustración 32. Seleccionar los campos a ser enviados

Finalmente configuramos nuestra tabla de salida con una conexión al data mart de ventas, a la
tabla dimension_tiempo.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ilustración 33. Conexión dimensión_tiempo

Debido a que todos los productos fueron agregados con la misma fecha se puede evidenciar que
solo hay una entrada en la tabla dimensión_tiempo en la ilustración 34.

Ilustración 34. Inscersión dimensión_tiempo


ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Integrar las cargas en un JOB

Al tener desarrollado cada ETL como se mostró a lo largo de la práctica se desarrolla un job.

Ilustración 35. Transformaciones

Como primer paso colocamos la opción “Start” y las transformaciones necesarias es este caso
son 4: Transformación cliente, transformación producto, transformación tiempo y
transformación hechos ventas. De manera secuencial, cada una de estas haciendo referencia a
su ETL, previamente desarrollados

Ilustración 36. Jobs

Obteniendo los siguientes resultados:

Ilustración 37. Ejecución Jobs

Y la tabla de hechos ventas:

Ilustración 34. Jobs Tabla hechos_ventas


ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Conclusiones y recomendaciones:

• El procedimiento ETL permite tomar los datos de una base de datos para transformarlos
en un conjunto de datos y que sean almacenados en un Data mart. Esta transformación
puede ser de cualquier tipo de acuerdo con las necesidades del usuario.
• ETL son procesos que organizan los flujos datos entre distintos sistemas en una
organización y aporta los métodos y herramientas necesarias para movilizar los datos
desde múltiples fuentes a un almacén de datos, para transformarlos, limpiarlos y
cargarlos en otra base de datos. ETL es parte de la Inteligencia de Negocios, también
llamado “Gestión de los Datos” (Data Management).
• Se ha realizado de manera eficiente la practica , teniendo en cuenta lo aprendido en
clase lo cual nos ha ayudado para desarrollar esta practica con el uso de datamarts en
el laboratorio de esta materia

Bibliografía:

[1] “¿Qué es ETL? | SAS.” https://www.sas.com/es_ar/insights/data-management/what-is-


etl.html (accessed Jun. 18, 2022).

[2] “Primer contacto con el entorno de trabajo PENTAHO (Parte II) - CodigoBinario por
Jorge Grau.” https://www.codigo-binario.es/primer-contacto-con-el-entorno-de-
trabajo-pentaho-parte-ii/ (accessed Jun. 18, 2022).

[3] “¿Qué es Pentaho y cuáles son sus beneficios?” https://www.itop.es/blog/item/que-es-


pentaho-y-cuales-son-sus-beneficios.html (accessed Jun. 18, 2022).

También podría gustarte