El Proceso de Etl (Extract, Transform and Load)
El Proceso de Etl (Extract, Transform and Load)
(EXTRACT, TRANSFORM
AND LOAD)
EL PROCESO DE ETL
ÍNDICE
0. PRÓLOGO 5
1. EL PROCESO DE ETL (EXTRACT, TRANSFORM AND LOAD) 6
1.1 DEFINICIÓN 6
2. INTEGRACIÓN DE DATOS 38
3.2 TRANSFORMACIONES 48
3.3 TRABAJOS 52
3.4 EVALUACIÓN 52
Y
Página 2
EL PROCESO DE ETL
4. ANEXOS 73
4.3.2 JSON 88
Y
Página 3
EL PROCESO DE ETL
5. BIBLIOGRAFÍA 90
5.1 LIBROS 90
5.2 WEBS 90
Y
Página 4
EL PROCESO DE ETL
0. PRÓLOGO
Actualmente se generan muchos más datos que hace unos seis años atrás. Estamos
constantemente consultando nuestras redes sociales y usando nuestro teléfono móvil,
ordenador o Tablet. Tenemos diferentes conversaciones a lo largo del día y ese hecho
ya genera datos que posteriormente podrán ser analizados. También, leer un libro en
formato e-book, ver una serie o escuchar música son actividades que generan datos.
En el caso del e-book esos datos pueden ser el libro leído y la temática de este, las
páginas leídas en un día, etc. Y en el caso de una serie, podría ser la temática, cuántos
capítulos vemos en una semana, su duración, etc.
Precisamente, por la cantidad de datos que hay que tratar en la actualidad es tan
importante el Proceso de ETL. Este se encarga de extraer, transformar y cargar los
datos, además de gestionar y asegurarse de su integración y coherencia. Este proceso
nos permite extraer unos datos de un entorno y cargarlos en el entorno destino,
después de haberlos analizado.
Así, en este manual vamos a explicar de qué trata este proceso, los pasos a seguir para
lograr una única visión consistente de nuestros datos y las herramientas que existen en
el mercado para llevar a cabo el proceso. Además, nos centraremos en la explicación
del proceso sirviéndonos de la herramienta Pentaho Data Integration.
Y
Página 5
EL PROCESO DE ETL
El proceso de ETL es una tecnología que tiene la función de integración de los datos, de
modo que debe ofrecer una única visión de los datos. ETL corresponde a las siglas en
inglés:
Extract: Extracción.
Transform: Transformación.
Load: Carga.
Por lo tanto, como su propio nombre indica, este proceso se encarga de la extracción,
transformación y carga de los datos. También tiene la función de gestionar estos datos.
Debe asegurar su integridad, coherencia y disponibilidad en el destino.
Permite extraer datos del entorno de origen; según nuestras necesidades de negocio,
transformarlos y cargar los datos en los entornos destino. Habitualmente, los entornos
tanto de origen como de destino son ficheros y/o bases de datos, pero también
pueden ser mensajes de cierto middleware, así como otras fuentes no estructuradas,
semiestructuradas o estructuradas.
Y
Página 6
EL PROCESO DE ETL
Y
Página 7
EL PROCESO DE ETL
Es de gran importancia que la extracción de esos datos cause el menor impacto posible
en el sistema de origen. Cuando se tienen que extraer muchos datos es posible que el
sistema se ralentice o colapse, provocando que ya no pueda tener el mismo uso
cotidiano que tenía. Por ello, cuando hay que extraer gran cantidad de datos, se suelen
programar horarios o calendarios en los que se provoque el mínimo impacto.
- Reformateo de datos.
- Conversión de unidades: Por ejemplo, podría ser la conversión de
distintas monedas (euros, libras, etc.) en un único valor estándar. Otro
ejemplo sería la conversión de millas a kilómetros por hora o viceversa.
Y
Página 8
EL PROCESO DE ETL
Y
Página 9
EL PROCESO DE ETL
Es de gran importancia tener presente que esta fase de carga interactúa con la base de
datos de destino y en esa base de datos se aplicarán las restricciones que se hayan
definido en este proceso. La calidad de los datos en el proceso de ETL estará
garantizada si esas restricciones están bien definidas.
Aunque trataremos esta fase más adelante, creemos interesante introducir sus
ventajas. Estas son:
Y
Página 10
EL PROCESO DE ETL
Antes de pasar a ver las herramientas que podemos utilizar para nuestros procesos
ETL, resulta interesante presentar los beneficios que puede reportar a nuestra
empresa llevar a cabo este proceso.
- Unificar todos los datos en un único sitio, permite a los directivos tomar
decisiones estratégicas basadas en el análisis de los datos cargados en las
nuevas bases de datos.
- Nos permite tener una visión global de todos los datos consolidados en el
Data Warehouse, lo que nos permitirá una buena planificación estratégica.
Y
Página 11
EL PROCESO DE ETL
Estos software despuntan por su alto coste de licencias, limitando así su nicho de
mercado a las grandes empresas, destacando por su fiabilidad. No obstante, el
incremento de los sistemas de Business Intelligence (BI) dentro de las compañías de
presupuestos más modestos provocó que las empresas dedicadas al Software
OpenSource se centrasen en el mundo de las ETL.
Las herramientas ETL documentan cómo los datos son transformados (si lo son) entre
el origen y el destino, almacenando la información en un catálogo propio de
metadatos. Estos metadatos los intercambian con otras aplicaciones que puedan
necesitarlos y administran todos los procesos y ejecuciones de la ETL: log de errores,
planificación de la transportación de datos, log de cambios y estadísticas asociadas a
los procesos de movimientos de datos.
Las herramientas ETL permiten diseñar, administrar y controlar todos los procesos del
entorno ETL.
Ejemplos de herramientas ETL OpenSource son KETL, Talend, Jaspersoft ETL, Scriptella,
y la herramienta OpenSource por excelencia, Kettle (Pentaho Data Integrator):
Y
Página 12
EL PROCESO DE ETL
Y
Página 13
EL PROCESO DE ETL
Las herramientas ETL pueden ser útiles para diferentes propósitos y no únicamente
para entornos Data Warehousing o en la construcción de un Data WareHouse, como
por ejemplo:
Y
Página 14
EL PROCESO DE ETL
Según Gartner, las características más importantes que debe incluir un software ETL
son las que siguen:
Y
Página 15
EL PROCESO DE ETL
Las herramientas ETL han ido evolucionando y ahora incluyen más funcionalidades
propias de una herramienta de integración de datos. Podemos destacar las siguientes:
Y
Página 16
EL PROCESO DE ETL
- Ab Initio.
- Beneti.
- BI Tool – ETL Software.
- CloverETL.
- Cognos Decisionstream (IBM).
Y
Página 17
EL PROCESO DE ETL
Estos son:
Estos tres tipos de paralelismo pueden combinarse para realizar una misma operación
ETL.
Y
Página 18
EL PROCESO DE ETL
Es necesario que en un sistema de ETL se puedan detener ciertos datos hasta que
todas las fuentes estén sincronizadas. También cuando un almacén de datos debe ser
actualizado con los contenidos en un sistema de origen, se necesitan establecer puntos
de actualización y sincronización. Las múltiples y distintas bases de datos de origen
tienen distintos ciclos de actualización (unas pueden actualizarse cada pocos minutos y
otras pueden tardar semanas o días). La dificultad reside en asegurar que los datos que
se cargan son relativamente consistentes.
Hay que tener en cuenta que los procesos ETL pueden ser muy complejos, y es que un
sistema ETL que está mal diseñado puede provocar problemas operativos notorios.
Y
Página 19
EL PROCESO DE ETL
Matt Casters inició Kettle en 2001 y en 2006 Pentaho Data Integration (PDI) adquirió
Kettle y lo renombró después de que este pasara a ser open source.
PDI nos permite cargar datos de varias fuentes de origen en un Data WareHouse para
que después la información consolidada nos sea útil a nivel táctico, operativo y
estratégico.
Y
Página 20
EL PROCESO DE ETL
Y
Página 21
EL PROCESO DE ETL
Y
Página 22
EL PROCESO DE ETL
Y
Página 23
EL PROCESO DE ETL
En este apartado vamos a ver cómo se llevaría a cabo una carga de datos partiendo de
una fuente de datos y cómo cargar estos datos en un entorno conocido.
Ya hemos presentado Kettle y también hemos comentado que funciona mediante las
llamadas Transformaciones y Trabajos o Jobs.
Transformaciones
Cuando nos aparezca la pantalla para crear una nueva transformación dispondremos
de distintas opciones para la creación de pasos, que veremos en el menú que
aparecerá a nuestra izquierda. Las principales y más destacables opciones son:
Input: son las fuentes de información u orígenes a las que nos conectamos para
obtener datos. Por ello, esta es la parte principal de extracción de esta
herramienta ETL. Pentaho ofrece distintas posibilidades como origen de datos.
Aquí veremos los más habituales para llevar a cabo procesos ETL:
- Table input: para leer los datos en una base de datos. Estas bases de
datos acostumbran a ser bases de datos relacionales que tenemos en
nuestra organización.
- CSV input: son ficheros de tipo CSV que se usan para la extracción de
información por distintos programas.
Y
Página 24
EL PROCESO DE ETL
Y
Página 25
EL PROCESO DE ETL
Flow – Filter Rows: para filtrar los registros que queremos o no para nuestro
resultado final, o que queremos hacer pasar por otros pasos para llevar a cabo
distintas transformaciones a los mismos.
Flow – Switch/Case: es similar al anterior, pero nos permite enviar cada
registro a un paso distinto en función de si cumplen o no una condición. Filter
Rows puede desechar los registros que no cumplan la condición, en cambio
aquí siempre pasarán todos los registros a un paso.
Scripting – Execute SQL script: permite la ejecución de una consulta SQL2
escrita manualmente.
Joins – Merge Join: permite unir el resultado de dos pasos en uno mediante un
campo común.
Statistics – Group by: permite agrupar distintas filas en una, agrupando por un
campo o varios en común y pudiendo llevar a cabo operaciones matemáticas
en los campos que no agrupamos.
Y
Página 26
EL PROCESO DE ETL
Trabajo o Job
Cuando hablamos de la calidad de los datos, nos referimos a las técnicas, métodos,
procesos, algoritmos y operaciones orientadas a una mejora en la calidad de los datos
existentes. Con esto conseguimos:
La calidad de los datos no solo hace referencia al hecho de que no haya defectos en
estos, sino que los datos deben:
La validación de los datos intenta rechazar los registros erróneos durante la entrada al
sistema. Por su parte, el proceso de limpieza de los datos, del que hablaremos en el
siguiente apartado, consta también de la validación de datos, así como de la corrección
de los datos o eliminación de estos para lograr datos de calidad.
Y
Página 27
EL PROCESO DE ETL
Y
Página 28
EL PROCESO DE ETL
Para solucionar estos problemas de calidad tenemos lo que llamamos Data Cleaning o
Data Scrubbing, que es el proceso de limpieza de datos de los registros erróneos o
equívocos que podemos tener. Hay múltiples problemas con los que podemos
encontrarnos, por ejemplo, datos incorrectos o inexactos, incompletos, no lógicos, etc.
Por ello, hay que buscar esos datos y modificarlos, eliminarlos o sustituirlos según las
necesidades que tengamos.
De este modo, cuando encontramos que tenemos alguno o varios de estos problemas,
debemos llevar a cabo un proceso de limpieza de la base de datos. Para ello tenemos
que llevar a cabo un proceso de Data Cleaning para aquellas tablas en las que hayamos
detectado problemas.
Error en la introducción de los datos por parte del usuario: son los más
habituales al ser un error humano. Puede ser intencionado o no, pero ocurre a
menudo. Pueden ser unas direcciones de email incorrectas o nombres mal
escritos, por ejemplo.
Error en la transmisión de los datos o el almacenamiento de los mismos: nos
podemos encontrar con datos erróneos debido a los fallos en los equipos o un
error al haber insertado el dato en el almacenamiento. Por ejemplo, si hemos
definido que el campo Email del cliente puede ocupar 50 caracteres en la base
de datos, y un cliente inserta una que sobrepasa esa cifra, pueden suceder dos
cosas; o bien el problema se controla y no le permite al cliente hacer el registro
mostrándole un mensaje que se lo señala, o que no se controle el problema y
los datos del cliente se graben recortados, creando así un registro erróneo.
Y
Página 29
EL PROCESO DE ETL
Para poder encontrar estos errores y anomalías en nuestra base de datos, vamos a
llevar a cabo una auditoría de datos, que se refiere a la revisión de estos datos.
Mediante la utilización de diccionarios de datos y métodos estadísticos vamos a
encontrar esas anomalías en nuestra base de datos.
La auditoría de base de datos es llevada a cabo por los auditores de sistemas y consiste
en realizar una evaluación de los accesos a los datos almacenados en las bases de
datos con el objetivo de poder monitorear, medir y tener constancia de los accesos a la
información almacenada en esas bases de datos. El fin o el objetivo primordial en
todos los casos, es lograr la seguridad corporativa. Hacer este control de datos es más
complejo debido a las nuevas tecnologías, por ello normalmente es llevado a cabo por
expertos que, por lo general, son externos a la organización o compañía.
Para que una auditoría sea realizada de manera correcta será necesario seguir los
siguientes pasos:
Y
Página 30
EL PROCESO DE ETL
La fase de limpieza se refiere a eliminar todos aquellos registros que no son válidos. Se
aconseja que toda la información que se elimina se guarde como copia de seguridad,
por si en un futuro dicha información se requiere. Como registros no válidos nos
referimos a información no válida con campos nulos o incorrectos o que presentan
datos aislados.
Seguidamente, deberemos llevar a cabo una fase de normalización, que nos permitirá
que todos los valores que hagan referencia a un mismo dato tengan la información
unificada en un solo valor. Por ejemplo, en el campo referido al país de origen, deberá
constar dicho país en un único idioma, así, optaremos por España o Spain, nunca por
los dos.
Comentar que para llevar a cabo todas estas fases, disponemos de toda una serie de
herramientas en el mercado que nos facilitan estos procesos. Dichas herramientas nos
Y
Página 31
EL PROCESO DE ETL
permiten automatizar estos procesos, permitiéndonos diseñar un flujo que hace que
los cambios en la ETL tengan un mínimo impacto en el coste de desarrollo.
Una vez hayamos realizado estos procesos, se finaliza la parte de ETL y obtención de
datos. De este modo, estaremos en disposición de tratar y analizar la información.
Comentar que en esta primera fase, el objetivo clave es asegurar que los datos se
depuran e importan de manera correcta para su posterior exploración y aplicación.
Y
Página 32
EL PROCESO DE ETL
El proceso de Data Cleaning no es un proceso que solo se ejecute una vez, sino que
debemos mantener un control. Habitualmente, se establece cada cuánto tiempo
vamos a hacer el proceso de Data Cleaning. Este siempre será abierto a modificaciones
por si aparecen nuevas anomalías o casuísticas que debamos controlar en nuestros
sistemas.
Flow – Filter Rows: ya hemos comentado anteriormente este paso. Nos sirve
para filtrar los registros que queremos o no para nuestro resultado final, o qué
queremos hacer para pasar por otros pasos para llevar a cabo distintas
transformaciones a los mismos.
Y
Página 33
EL PROCESO DE ETL
Flow – Switch / Case: como sucede con el anterior, podemos usar este paso
para llevar los registros que tengan o no cierto valor hacia un camino u otro.
Es similar al anterior, pero nos permite enviar cada registro a un paso distinto
en función de si cumplen o no una condición. Filter Rows puede desechar los
registros que no cumplan la condición, en cambio aquí siempre pasarán todos
los registros a un paso.
Y
Página 34
EL PROCESO DE ETL
Transform – Unique Rows: este paso nos permite, en caso de tener registros
repetidos, eliminar los sobrantes.
Y
Página 35
EL PROCESO DE ETL
Transform – Replace in string: con este paso podemos reemplazar una parte
de un campo que veamos o consideremos erróneo por otro que no lo sea.
Transform – Calculator: nos permite llevar cabo distintas operaciones con los
datos que después podremos utilizar para evaluar los mismos.
Y
Página 36
EL PROCESO DE ETL
Estos que hemos comentado aquí, tan solo son algunos de los pasos más destacados
para llevar a cabo un proceso de limpieza de datos, pero no son los únicos.
Pentaho, como hemos comentado, está programado en java y por lo tanto, admite la
creación de módulos de java específicos para lo que se adapte mejor a las necesidades
que tenemos por medio de el paso User Defined Java Class.
Y
Página 37
EL PROCESO DE ETL
2. INTEGRACIÓN DE DATOS
Estructurados: son aquellos contenidos en bases de datos, son los que tienen
un formato ya predefinido, en el que los campos ocupan un sitio fijo y, por lo
tanto, conocemos de forma anticipada su organización, tipo, etc. Se almacenan
en tablas y la información se representa por datos elementales. Pueden ser
recibos, facturas en tablas, etc.
Semiestructurados: son aquellos que constan de un formato legible para
máquinas, pero no son completamente estructurados. Son datos que sí tienen
alguna estructura autodefinida pero, no tienen una estructura fija. Ofrecen
información poco regular ya que a veces, debido a su complejidad en el
proceso de carga, se pueden perder datos. Pueden ser documentos Excel,
HTML tabulado, etc.
No estructurados: son aquellos en formato legible para humanos, pero no para
máquinas. Son aquellos que no tienen una estructura específica. Manipular
estos es algo más complejo que los anteriores y no se pueden almacenar en
una tabla como sí sucede con los estructurados. Podrían ser los archivos Word,
PDF, HTML no tabulado, etc. Estos pueden obtenerse mediante text mining,
por ejemplo.
Por esta razón se necesita llevar a cabo la integración de datos que consiste en realizar
aplicaciones, técnicas, productos y tecnologías que nos permitan obtener una única
visión consistente de nuestros datos de negocio.
Y
Página 38
EL PROCESO DE ETL
Y
Página 39
EL PROCESO DE ETL
individuales para cada uno de los orígenes de datos físicos y la lanza contra
cada uno de estos datos involucrados. Cuando recibe todas las respuestas,
integra todos los resultados en uno único, realizando agregaciones y/o
ordenaciones, sumarizaciones, y devuelve los datos a la aplicación que lanzó la
consulta original. El catálogo de datos común es uno de los elementos clave del
motor de federación, puesto que contiene información sobre los datos
(estructura, localización, demografía, etc.). Esto permite que se elija el camino
más eficiente de acceso a los datos, optimizando la división de la consulta
original al enviarla a los gestores de bases de datos
CDC (Change Data Capture): se atrapan o capturan los cambios producidos por
las aplicaciones operacionales en las bases de datos de origen, así pueden ser
propagados y/o almacenados en los entornos destino para que estos
mantengan la consistencia con los entornos origen. Veamos las principales
técnicas de change data capture:
- CDC por aplicación: es la misma aplicación la que genera la
actualización de datos en origen, y actualiza los entornos destino o
almacena localmente los cambios en una tabla de paso (staging) por
medio de una operación de INSERT dentro de la misma unidad lógica de
trabajo.
- CDC por timestamp: se puede usar cuando los datos de origen
incorporan un timestamp (por ejemplo a nivel de fila si el origen es una
tabla relacional) de la última actualización de esta. El change data
capture se limitará a escanear los datos de origen para extraer así los
datos que posean un timestamp posterior al de la última vez que se
ejecutó el proceso de CDC. Son estos datos los que hay que actualizar
en los entornos destino porque son los que han cambiado desde la
última obtención de datos.
- CDC por triggers: los disparadores o triggers son acciones que se
ejecutan al actualizarse (mediante UPDATE, DELETE o INSERT) los datos
de cierta tabla sobre la que están definidos. Estos disparadores pueden
usar estos datos de la actualización en sentencias SQL para generar
Y
Página 40
EL PROCESO DE ETL
Y
Página 41
EL PROCESO DE ETL
Y
Página 42
EL PROCESO DE ETL
- Migración de datos.
- Corporate Performance Management (CPM).
- Business Intelligence (BI).
- Master Data Management (MDM).
- Customer Data Integration (CDI).
- Procesos de calidad de datos.
- Product Information Management (PIM).
- Enterprise Information Management (EIM).
- Data Warehousing.
Y
Página 43
EL PROCESO DE ETL
En este tema vamos a ver qué pasos debemos seguir para implementar los procesos
ETL con éxito.
Y por último vamos a ver cómo evaluar el rendimiento de las cargas. Esta etapa es
importante llevarla a cabo debido a que la ejecución de los procesos puede perder
rendimiento conforme pasa el tiempo a causa de que la volumetría de los datos
iniciales puede cambiar o porque en el enfoque que se había realizado al comienzo,
ahora ya no es factible aplicarlo.
Cuando estamos creando un proceso con una herramienta ETL, las primeras acciones
que debemos llevar a cabo son las siguiente:
Y
Página 44
EL PROCESO DE ETL
- Diseñar las operaciones que necesitamos para lograr que los datos que deben
cargase se conviertan en los datos que espera el negocio.
- Establecer la periodicidad de las cargas.
- Estudiar el volumen de los datos.
- Definir si la carga es incremental o total.
- Definir la materialización de los kips year to date, tam, previous year.
La implementación de los procesos será más sencilla cuanto mejor sea el análisis que
habremos llevado a cabo. Veamos distintas fases de análisis:
Análisis de los orígenes de datos a cargar: en esta fase tenemos que detectar
qué datos son los que se desean cargar, en qué sistema se encuentran y ver si
tenemos acceso a esos datos o no. Nos podemos encontrar con las siguientes
situaciones:
- Los datos se encuentran en un Excel, pero la herramienta ETL que
utilizamos para cargar no admite este formato.
- Necesitamos acceso a datos de un servicio web, pero el servidor, en el
que está instalado la ETL, no tiene salida a internet.
- Los datos que se cargan en el Data WareHouse son de un Excel, pero el
usuario que los mantiene no puede acceder a las ubicaciones en las que
el servidor ETL carga los datos.
- Los datos que se deben cargar se encuentran en un CRM y no
disponemos de conector para acceder.
- Los códigos en los distintos sistemas orígenes no se codifican del mismo
modo. En un sistema origen el código se encuentra guardado en
mayúsculas, en otro en minúsculas, con espacios en blanco al final, con
espacios en blanco a la derecha, etc. Si suceden estos casos, hay que
añadir la lógica en la ETL para convertir los códigos a códigos idénticos.
Análisis de los datos destino: aquí hay que tener en cuenta si los datos los
cargamos en una base de datos relacional para la creación de un Data
WareHouse, si los datos los cargamos en un entorno transaccional, si
generamos un fichero en una ubicación de FTP o en una ubicación de nuestra
Y
Página 45
EL PROCESO DE ETL
Y
Página 46
EL PROCESO DE ETL
Debemos comentar que estas tareas comentadas anteriormente hay que llevarlas a
cabo independientemente de la herramienta ETL que finalmente utilicemos para crear
procesos de carga. Cada ETL tiene sus puntos fuertes y sus debilidades, y es trabajo
nuestro identificar cuál es la que mejor se adapta a nuestras necesidades en cada
momento.
Y
Página 47
EL PROCESO DE ETL
3.2 TRANSFORMACIONES
Cada salto o hop nos permite llevar a cabo un proceso de entrada, transformación o
salida de registros. Pentaho Data Integration se puede conectar prácticamente a
cualquier origen de datos.
Y
Página 48
EL PROCESO DE ETL
Enlace: [Link]
kettle-de-una-coleccion-de-mongodb/
Kettle, ahora conocido como PDI (Pentaho Data Integration) tiene una interfaz intuitiva
y gráfica, de arrastrar y soltar. Por su facilidad de manejo para usuarios menos técnicos
y una arquitectura probada, escalable y basada en estándares, es cada vez más una
gran opción para las empresas de ETL tradicional que buscan herramientas de
integración de datos.
Y
Página 49
EL PROCESO DE ETL
Kettle: Una versión para usuario conocida como Spoon desde donde descargaremos la
información de MongoDB.
En nuestro ejemplo hemos incluido una query en formato json para la extracción de
datos que está parametrizada por Provincia. Este parámetro lo utilizaremos en el
informe para filtrar la información.
Informamos los campos que queremos recuperar para realizar el informe indicando el
formato y el nombre.
Y
Página 50
EL PROCESO DE ETL
4. Utilizamos la calculadora para definir los campos Año, Mes y Día, a partir de la
Fecha.
5. Realizamos el promedio del campo Resultado con la herramienta agrupar por, que
para utilizarla deberemos haber ordenado previamente por la clave.
Y
Página 51
EL PROCESO DE ETL
Hemos realizado un breve incursión por algunas de las herramientas de Kettle, pero
podríamos realizar cálculos más complejos, ya que ofrece muchísimas posibilidades.
Algunos enlaces para obtener más información sobre lo que aquí se explica son:
Enlace: [Link]
3.3 TRABAJOS
3.4 EVALUACIÓN
Y
Página 52
EL PROCESO DE ETL
Un proceso que en un inicio tarda un tiempo aceptable, tras unos años puede ser
inaceptable, por ello, esta evaluación debe perdurar en el tiempo. Si no se ha
modificado nada en el diseño, ¿a qué se debe este cambio de rendimiento?
Probablemente se deba al volumen de datos que movemos en el proceso
implementado, que ha variado del “scope” inicial al actual.
Y
Página 53
EL PROCESO DE ETL
Para ello nos centraremos en el estudio de los dashboards, también llamados cuadros
de mando. En líneas generales se trata de una herramienta de visualización de datos
que permite mostrar, mediante la representación gráfica de los diferentes KPI’s o
indicadores, el estado de un negocio. Además de visualizar el estado de nuestro
negocio, se trata de una herramienta muy útil en la toma de decisiones, ya que nos
enseña de manera gráfica y sencilla aquello que va según lo previsto y aquello que no,
así como las tendencias que están a la alza y a la baja. Ayudándonos ello a redirigir
nuestros objetivos y nuestro negocio hacia el logro de mejores beneficios.
Y
Página 54
EL PROCESO DE ETL
- Analiza en detalle aquellas causas por las que se generaron dichos datos.
- Permite contemplar todas las causas posibles que han generado algún
problema.
Y
Página 55
EL PROCESO DE ETL
Como hemos comentado, las empresas disponen de toda una serie de herramientas
para crear sus propios dashboards. Básicamente, de lo que se trata es de introducir los
datos objeto de estudio, que serán convertidos en información gráfica con el fin de
facilitar su interpretación.
1. Introducción
Y
Página 56
EL PROCESO DE ETL
[Link]
2. Requerimientos
Para realizar este Dashboard necesitamos instalar Pentaho Bi Server , disponible para
descargar desde la web de SourceForge
[Link]
0/
Estas son las tablas que tenemos disponibles para realizar nuestro Dashboard.
Y
Página 57
EL PROCESO DE ETL
./[Link]
Y
Página 58
EL PROCESO DE ETL
- Components Panel, los objetos que mostrarán los datos, como gráficos, tablas, etc.
Y
Página 59
EL PROCESO DE ETL
Y
Página 60
EL PROCESO DE ETL
➢ Layout Panel
Empezamos a crear la estructura física donde irán los objetos. En esta capa podemos
añadir los estilos css, código javascript y html
Y
Página 61
EL PROCESO DE ETL
Definimos las filas que tendrá nuestro diseño, y dentro de cada fila las columnas que
necesitaremos.
➢ Component Panel
Aquí tenemos diferentes objetos para utilizar, organizados por categoría (gráficos,
selectores..):
Y
Página 62
EL PROCESO DE ETL
Una vez definida la estructura de la presentación, vamos a crear los objetos necesarios.
Necesitamos:
Para crear el selector, primero debemos crear una variable (simple parametre) donde
guarde el valor asignado:
Y
Página 63
EL PROCESO DE ETL
DataSource: Ponemos este valor, que será el nombre de la consulta que crearemos a
continuación: SQL_SELECTOR
HtmlObject: Es el nombre del objeto que hemos declarado en el layout, donde irá, en
este caso, el selector DIV_SELECTOR
DataSource:
DataSource: Ponemos este valor, que será el nombre de la consulta que crearemos a
continuación: SQL_GRAFICO
HtmlObject: Es el nombre del objeto que hemos declarado en el layout, donde irá, en
este caso, el selector DIV_GRAFICO
➢ Datasource Panel
Y
Página 64
EL PROCESO DE ETL
Para actualizar los datos al cambiar la selección, debemos activar los “listeners”, y los
parámetros.
Y
Página 65
EL PROCESO DE ETL
Parameters, es el valor o los valores que se pasan como argumentos para ejecutar la
acción. En este caso solo pasamos un parámetro, el manager.
Y
Página 66
EL PROCESO DE ETL
Ahora vamos a añadir un panel de bootstrap, para mejorar la presentación del gráfico
de barras. Para añadirlo simplemente clicamos en el icono.
Y el en panel body irá el gráfico de barras. Por ello debemos actualizar el nombre del
objeto html que estaba asignando al gráfico.
Y
Página 67
EL PROCESO DE ETL
Y
Página 68
EL PROCESO DE ETL
Y
Página 69
EL PROCESO DE ETL
Y
Página 70
EL PROCESO DE ETL
Enlace: [Link]
Para acabar, como hemos comentado antes, es importante que el dashboard vaya
acompañado de un documento en el que se reflejen los resultados e impresiones del
análisis.
Tal y como su propio nombre indica, se trata de informes personalizados, es decir, son
informes creados en función de las necesidades del momento, en los que
obtendremos información y datos sobre el tema que hayamos escogido, de modo que
nos ofrecerá solamente aquella información concreta que nosotros o nuestra empresa
quiera.
Y
Página 71
EL PROCESO DE ETL
informe personalizado con dicha información, que nos permita valorar si la acción que
queremos llevar a cabo reportará o no beneficios.
Para la realización de estos informes podemos servirnos de herramientas como las que
ofrece Google Analytics.
Y
Página 72
EL PROCESO DE ETL
4. ANEXOS
En el anterior tema hemos explicado qué es un dashboard, de qué trata, cuáles son sus
beneficios, cuál es su función y hemos visto cómo crear un dashboard con Pentaho.
Ahora, en este apartado vamos a introducir unos enlaces en los que se explica cómo se
crea un dashboard en Google Analytics y en Excel 2010.
Enlace: [Link]
analytics/
En este enlace nos encontramos con el paso a paso, explicado de manera muy clara,
para llevar a cabo la creación de un dashboard en Google Analytics. En este se explica
o trata la configuración de unos widgets básicos e imprescindibles para medir el
resultado de las visitas que obtenemos, el comportamiento o los intereses de nuestros
lectores. También podremos descubrir, por ejemplo, cuáles de nuestros lectores ya los
tenemos fidelizados y qué fuentes dirigen tráfico a nuestra página web.
Enlace: [Link]
En este enlace tenemos el paso a paso para llevar a cabo la creación de un dashboard
básico en Excel 2010. En este se usa como ejemplo las ventas que se obtienen en una
tienda de mascotas, analizando los ingresos de la compañía, las mascotas vendidas y
qué vende cada vendedor y por lo tanto, lo que ingresa cada uno.
Y
Página 73
EL PROCESO DE ETL
[Link]
[Link]
En este enlace nos encontramos una guía en la que se explica todo detalladamente y
con el soporte de imágenes en cada paso, cómo realizar la ejecución de
transformaciones y trabajos o Jobs y el funcionamiento de cada componente en
Pentaho Data Integration.
[Link]
[Link]
Y
Página 74
EL PROCESO DE ETL
John Ward
Enlace: [Link]
He escrito sobre Kettle antes. Personalmente creo que es una gran herramienta, y es
fácil de ver que esto ha sido escrito por alguien que trabaja con molestos formatos de
datos constantemente. Bueno, Kettle ahora se conoce como el Proyecto de Integración
de Datos de Pentaho, y ahora está en la versión 3. Para ser breves, me referiré a él
como Kettle de aquí en adelante. Por supuesto, nada de esto cambia la funcionalidad
de la herramienta. En este artículo voy a mostrar una aplicación práctica de cómo he
estado usando Kettle para ayudar en la generación y transformación de molestos
formatos de datos.
El primer archivo que necesito para tratar con ellos es su archivo de Productos. El
archivo contiene aproximadamente 28 campos con varios números que no tienen
ningún sentido para mí. Los únicos campos de los que debo preocuparme son la
identificación del producto, el nombre del producto, la identificación interna (utilizada
para mapear con otros archivos), una identificación de categoría, el artista, el precio y
la fecha de disponibilidad. Los otros campos los puedo ignorar. Como estoy tratando
Y
Página 75
EL PROCESO DE ETL
Y
Página 76
EL PROCESO DE ETL
El campo del artista (Artist) irá en el campo de búsqueda 1, y los dos primeros
atributos que encuentre irán en los campos de búsqueda 2 y 3. Todo lo demás será un
simple mapeo 1 a 1.
Para comenzar, lo primero que tengo que hacer es iniciar [Link] y crear una nueva
transformación. Si estás utilizando un repositorio, genial; de lo contrario, elige Sin
repositorio en la pantalla de inicio. Cuando estés en Kettle, ves a Archivo / Nuevo /
Transformación.
Y
Página 77
EL PROCESO DE ETL
Con el nuevo archivo creado, arrastra más de 3 nuevas entradas de archivo de texto
(Text File Input), ubicadas en la sección Objetos Base (Core Objects) / Entrada, al área
de transformación.
Y
Página 78
EL PROCESO DE ETL
Ahora hemos de seleccionar los campos (fields). Para hacer esto, dado que tenemos un
archivo, todo lo que tenemos que hacer es hacer clic en el botón Obtener Campos
(Obtain Fields) en la pestaña Campos (Fields). Por cuestiones de desarrollo, nombraré
los campos que necesito y dejaré los nombres de campo solo para los campos
restantes. Además, dado que solo estamos usando estos campos como campos de
descripción, cambio los Date Fields a Strings.
Y
Página 79
EL PROCESO DE ETL
Eso es todo para Productos (Products), haremos lo mismo para las Tablas de Categorías
y Atributos. Ahora que las entradas de texto están configuradas, necesitamos hacer las
transformaciones. La parte más difícil será desnormalizar y unir los atributos en mi
flujo de entrada para alimentar mi archivo de texto de salida. El primer paso que debo
tener en cuenta es ordenar mis datos para el Field Row Delimeter. Por lo tanto,
arrastramos sobre un objeto Ordenar filas (Sort Row) desde debajo de la sección
Transformación. Necesito conectar el origen de datos de texto del atributo (Attribute)
al objeto Sort Rows para editarlo correctamente. Para hacer la conexión, necesitamos
mantener presionada la tecla Shift en el teclado y arrastrar desde Attibutes a Sort
Rows. Esto indicará a la transformación que debe producirse un "salto" en pasos entre
estos dos objetos. Ahora, edito mi clasificación para ordenar en función de la
identificación del producto.
Y
Página 80
EL PROCESO DE ETL
Y
Página 81
EL PROCESO DE ETL
Esta ha sido la parte fácil. Ahora necesitamos desnormalizar los datos. Lo que quiero
hacer es mostrar los primeros 3 atributos para cada producto en columnas
consecutivas. Intentamos usar Denormlizer aquí, sin éxito. Así que terminamos usando
el Row Flattener. La forma en que funciona es definiendo un solo campo que
contendrá los datos consecutivos. A continuación, define columnas adicionales. El
Flattener se copiará en cada columna en el orden en que recibe los datos. Entonces,
por ejemplo, digamos que tiene los siguientes datos definidos en un campo en su flujo
de datos entrantes:
Pantalla ancha
-Sub Titulado
-Español
-FieldOne
-FieldTwo
-FieldThree
-FieldTwo = Subtítulos
-FieldThree = Español
Y
Página 82
EL PROCESO DE ETL
También parece que una vez que se han agotado los valores únicos, simplemente se
completarán las columnas con el último valor único que queden. Para nuestro
propósito, esto está bien. Defino mi Acoplador de Campo (Field Flattener) con mis
valores para Nombre de Atributo (Attributes Name) en la siguiente figura.
Con este paso final en la transformación, el flujo de datos para el atributo se verá más
o menos así:
- ID Interno
-Search_Field_1
-Search_Field_2
-Search_Field_3
Y
Página 83
EL PROCESO DE ETL
-Search_Field_4
Ahora, necesitaremos unir el flujo de datos de productos (Product Data Stream). Para
hacer esto, utilizaremos una unión. Necesitaremos unirnos a la ID Interna o mi ID de
producto, ya que ambos identifican de forma exclusiva el producto. Así que lo usamos
como unión. También necesitamos establecer este tipo de unión Left Outer Join, ya
que necesitamos que los Porductos aparezcan aunque no haya Atributos que los unan.
También estableceré Productos como mi alimentación primaria, y Atributos como mi
alimentación secundaria. Es importante que cuando realicemos las conexiones en el
editor de Transformación, conectemos tanto la Entrada de Texto de Productos
(Product Text Input) como el Acoplador de Fila (File Flattener).
Y
Página 84
EL PROCESO DE ETL
Y
Página 85
EL PROCESO DE ETL
Y
Página 86
EL PROCESO DE ETL
Ahora, podemos crear el feed ficticio y añadirlo con solo hacer clic en un botón. Por
supuesto, esto también se aplica a las transformaciones de datos de producción reales.
Kettle funciona un poco más lento que una solución codificada a mano, pero no lo
suficiente como para descartarlo debido a la cantidad de tiempo que ahorra en el
desarrollo y la cantidad de tiempo ahorrada al modificarlo cuando es necesario.
Y
Página 87
EL PROCESO DE ETL
[Link]
En este enlace encontramos los manuales oficiales de Pentaho Data Integration. Hay
tanto la descripción de todos sus componentes como explicaciones para llevar a cabo
procesos con esta herramienta y cuenta también con vídeos explicativos.
4.3.2 JSON
[Link]
Este enlace nos lleva a una página web en la que podemos interpretar JSON.
[Link]
[Link]
[Link]
Y
Página 88
EL PROCESO DE ETL
[Link]
Facebook Developers.
[Link]
Entrando en este enlace y registrándonos como nos pide, podemos darnos de alta
como desarrolladores de Facebook.
Twitter Apps.
[Link]
Enlace para acceder a crear la aplicación en Twitter para conectarse con Kettle.
Y
Página 89
EL PROCESO DE ETL
5. BIBLIOGRAFIA
5.1 LIBROS
Jordi Conesa Caralt y Josep Curto Díaz. Introducción al Business Intelligence. Editorial
UOC, 2010.
Shazia Sadiq. Handbook of Data Quality: Research and Practice. Editorial Springer,
2015.
5.2 WEBS
[Link]
valen-productos-mas-conocidos-etl-s-open-sour
[Link]
[Link]
Extracci-n-En-qu-consiste
[Link]
transformaci-n-en-qu-consiste
[Link]
Y
Página 90
EL PROCESO DE ETL
[Link]
cuales-son-sus-beneficios/
[Link]
base-de-datos
[Link]
[Link]
[Link]/fileadmin/research/papers/techreports/2003-hub_ib_164-[Link]
[Link]
[Link]
Pentaho Tutorial.
[Link]
Y
Página 91