0% encontró este documento útil (0 votos)
280 vistas91 páginas

El Proceso de Etl (Extract, Transform and Load)

Este documento explica el proceso ETL (Extract, Transform, Load) de forma detallada. Describe las tres fases del proceso (extracción, transformación y carga) y los pasos involucrados en cada una. También menciona herramientas ETL y el uso de ETL en Pentaho.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
280 vistas91 páginas

El Proceso de Etl (Extract, Transform and Load)

Este documento explica el proceso ETL (Extract, Transform, Load) de forma detallada. Describe las tres fases del proceso (extracción, transformación y carga) y los pasos involucrados en cada una. También menciona herramientas ETL y el uso de ETL en Pentaho.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

EL PROCESO DE ETL

(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

1.2 HERRAMIENTAS ETL 11

1.2.1 PROCESAMIENTO EN HERRAMIENTAS ETL 18

1.3 RETOS EN LOS PROCESOS Y HERRAMIENTAS ETL 19

1.4 ETL EN CONTEXTO PENTAHO 20

1.4.1 CARGA DE LOS DATOS (LOAD DATA) 24

1.4.2 CALIDAD DE LOS DATOS (DATA QUALITY) 27

1.4.3 LIMPIEZA DE LOS DATOS (DATA CLEANING) 29

2. INTEGRACIÓN DE DATOS 38

2.1 TÉCNICAS DE INTEGRACIÓN DE DATOS 39

2.2 TECNOLOGÍAS DE INTEGRACIÓN DE DATOS 41

2.3 USOS DE LA INTEGRACIÓN DE DATOS 43

3. IMPLEMENTAR UN PROCESO ETL 44

3.1 ANÁLISIS DEL PROCESO DE CARGA 44

3.2 TRANSFORMACIONES 48

3.3 TRABAJOS 52

3.4 EVALUACIÓN 52

Y
Página 2
EL PROCESO DE ETL

3.5 CREACIÓN DE DASHBOARDS 54

4. ANEXOS 73

4.1 CREACIÓN DE UN DASHBOARD 73

4.1.1 CREACIÓN DE UN DASHBOARD EN GOOGLE ANALYTICS 73

4.1.2 CREACIÓN DE UN DASHBOARD EN EXCEL 2010 73

4.2 EJECUCIÓN DE TRANSFORMACIONES Y TRABAJOS 74

4.2.1 GUÍA DE COMPONENTES PENTAHO 74

4.2.2 EJECUTAR UNA TRANSFORMACIÓN O TRABAJO 74

4.2.3 TRANSFORMACIÓN GRÁFICA ETL CON SPOON 74

4.2.4 ETL: EJEMPLO PRÁCTICO DE TRANSFORMACIÓN DE DATOS USANDO


KETTLE 75

4.3 ENLACES DE INTERÉS 88

4.3.1 MANUAL DE PENTAHO 88

4.3.2 JSON 88

4.3.3 API DE TWITTER 88

4.3.4 API DE FACEBOOK 88

4.3.5 API YAHOO 89

4.3.6 DESARROLLADOR DE FACEBOOK 89

4.3.7 TWITTER APPS 89

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.

De esto ya hablamos en el manual de Big Data y Business Intelligence, en el que


apareció el término Procesos de ETL (Extract, Transform and Load) que es el tema que
vamos a tratar aquí.

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

1. EL PROCESO DE ETL (EXTRACT, TRANSFORM


AND LOAD)
1.1 DEFINICIÓN

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

*Representación gráfica del proceso de ETL. Fuente: [Link]


intelligence/integracion-datos/guia-procesos-eleccion-herramientas-etl

Precisamente este proceso consta de estas tres fases ya mencionadas:

 Fase de extracción: se conectan sistemas de fuentes de datos y según los


objetivos que hemos marcado, se analizan, recogen y procesan los datos. Los
pasos que se deben seguir en esta fase son los siguientes:
- Extraer los datos del sistema de origen.
- Analizar los datos que han sido extraídos y chequearlos.
- Interpretar ese chequeo para comprobar así si los datos cumplen con
nuestros requisitos y lo que habíamos establecido previamente.
- Si por el contrario, no cumplen nuestras pautas, esos datos serán
rechazados.
- Convertir los datos al formato adecuado para poder pasar a la siguiente
fase; la transformación.

En cuanto a esta fase, debemos diferenciar tres tipos de extracción:

- Full extract o extracción total: se refiere a extraer la totalidad de los


datos. Aquí se barren tablas completas que pueden llegar a tener
millones de registros.

Y
Página 7
EL PROCESO DE ETL

- Incremental extract o extracción incremental: en esta modalidad se va


procesando por lotes únicamente lo que fue modificado o agregado.
Además, puede haber filas que se borren por estar duplicadas o por
tratarse de datos erróneos.
- Update notification o notificación de actualizaciones: en esta
modalidad solo se van extrayendo los datos a medida que se produce
una actualización, como puede ser un inserto.

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.

 Fase de transformación: los datos mediante una serie de reglas, se convierten


en formatos normalizados que pueden ser tratados. Estas reglas pueden estar
basadas en excepciones o restricciones o pueden ser declarativas pero, para
potenciar e incrementar su eficacia y pragmatismo, debemos asegurarnos que
sean:
- Declarativas.
- Independientes.
- Claras.
- Inteligibles.
- Útiles para el negocio.

Veamos las diferentes acciones o procesos de transformación que podemos


llevar a cabo:

- 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

Esto es algo muy común al extraer datos de países con unidades


métricas diferentes.
- Selección de columnas para su carga posterior: un ejemplo sería hacer
que no se carguen las columnas con valores nulos.
- Agregación de columnas: un ejemplo sería añadir una columna con el
lugar de procedencia de ciertos automóviles.
- Dividir una columna en varias: esto es de gran utilidad para, por
ejemplo, dividir en tres columnas la identificación de una persona que
está en un solo campo. Así, se puede usar una columna para el nombre
y otras dos columnas para los apellidos.
- Traducir códigos: si por ejemplo, se almacena una “H” para hombres y
una “M” para mujeres en la fuente de origen, hay que dar las
instrucciones necesarias para que en destino se guarde un “1” para
hombres y un “2” para mujeres.
- Obtener nuevos valores calculados.
- Unir datos de diversas fuentes.
- Lookups: tiene lugar cuando se compara un dato con otro tipo de datos,
cruzando información. Un ejemplo sería capturar un código de cliente
de una base de datos y cruzar este con otra base de créditos concedidos
para saber si ese cliente disfruta o no de ese préstamo.
- Pivoting: es un proceso parecido al anterior, pero con mayor
complejidad, puesto que se cruzan datos de diferentes fuentes de
información.
 Fase de carga: es el proceso más complejo. En este, se importan los datos ya
transformados a la estructura de almacenamiento que hemos seleccionado.
Esta fase de carga puede desarrollarse de dos formas:
- Acumulación simple: se realiza un resumen de las transacciones
realizadas en el periodo seleccionado y se transporta el resultado hacia
el Data WareHouse como una única transacción. Se almacenará un valor
calculado que resultará la suma o promedio de la magnitud

Y
Página 9
EL PROCESO DE ETL

considerada. Esta es la forma más sencilla de desarrollar el proceso de


carga.
- Rolling: se almacena la información resumida a diferentes niveles, que
corresponden a diferentes agrupaciones de la unidad de tiempo o
distintos niveles jerárquicos en varias o alguna de las dimensiones de la
magnitud almacenada. Por ejemplo, totales semanales, totales
mensuales, etc.

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.

Finalmente, y aunque no se considere parte del proceso ETL, es interesante mencionar


la fase de limpieza de datos. Se trata de una fase previa a todo el proceso ETL y de gran
importancia, ya que nos permite asegurar que todos los datos de que disponemos son
correctos.

Aunque trataremos esta fase más adelante, creemos interesante introducir sus
ventajas. Estas son:

- Nos permite asegurar la calidad de los datos que vamos a procesar.


- Evita información no veraz y errónea.
- Ahorra costes de espacio en el disco debido a que gracias a esta fase podemos
eliminar la información duplicada.
- Nos permite agilizar las consultas por la ausencia de datos repetidos o
inservibles.
- Ayuda en la toma de decisiones estratégicas.
Comentar que no es posible lograr un buen resultado en un proceso ETL en sintonía
con los objetivos marcados si antes no hemos llevado a cabo este proceso de limpieza
de datos que nos proporcionará una base de datos de calidad que nos permitirá poder
tomar decisiones acertadas en los niveles estratégico y ejecutivo.

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.

Dichos beneficios son:

- Nos permite crear un Master Data Management; un repositorio central


estandarizado de todos los datos de la organización. De este modo, los
mismos datos pertenecientes a un cliente y disponibles en varias bases de
datos de la empresa se unificarán en una única base de datos, de modo que
ello nos permita disponer de toda la información en un mismo sitio.

- 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.

- Este proceso sirve para integrar sistemas. Las empresas y organizaciones


crecen de manera orgánica, y de cada vez se van agregando más fuentes de
datos, provocando ello que surjan nuevas necesidades en relación a estos
datos, como puede ser la integración de los datos nuevos con los antiguos.

- 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.

1.2 HERRAMIENTAS ETL

Conforme los Data WareHouse iban ganando importancia en las grandes


corporaciones, la programación de los procesos ETL empezó a estar compuesta de un
gran número de líneas de código que los hacía muy difíciles de mantener. Esta
dificultad para mantenerlos y la lenta curva de aprendizaje que tienen los mismos
causó que se buscasen alternativas.

Las empresas más importantes en el sector de los sistemas de información deciden, a


mediados de los 90, invertir y desarrollar sus propias herramientas. Empresas como
Informativa, IBM, SAS u Oracle empiezan a lanzar herramientas potentes orientadas al

Y
Página 11
EL PROCESO DE ETL

desarrollo y diseño de procesos ETL sin necesitar específicamente programas en


código. De este modo, nacen Informativa powerCenter, ODI (Oracle Data Integrator),
IBM Datastage o SAS Data Integrator.

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

*Representación gráfica de distintas herramientas ETL. Fuente: [Link]

Ventajas de estas herramientas:

 Entorno intuitivo y visual: al permitir seguir y diseñar el flujo y transformación


de datos de este modo, se incrementa la velocidad de desarrollo de los
procesos.
 Agilidad en la depuración de errores de desarrollo.
 Mantenimiento: la interfaz gráfica de las herramientas hace más sencillas las
tareas de mantenimiento.
 Operaciones y capacidades de administración: la administración de errores
tiene lugar mediante logs y estadísticas de ejecución.
 Conectividad: estas herramientas hacen más fácil la conexión a los distintos
sistemas de origen. Bases de datos, ficheros XML, páginas web, etc.
 Manejo de metadatos y modelos: pueden haberse creado por herramientas
externas o por la propia herramienta.
 Planificación global de conjuntos de procesos: permiten la programación en
tiempo real o batch, administración de excepciones o lanzamiento de eventos
disparadores entre otras cosas.
 Interfaces con sistemas Frontoffice.

Y
Página 13
EL PROCESO DE ETL

 Interfaces de datos con sistemas externos: envío de información a


proveedores, clientes, recepción, proceso e integración de la información que
se recibe.
 Capacidades SOA: es la arquitectura orientada a servicios, que establece una
estructura de diseño para integrar aplicaciones y que permite a las
organizaciones o compañías unir sus objetivos de negocio en cuanto a
flexibilidad de integración con alineación directa a los procesos de negocio, con
la infraestructura TI y con sistemas legados. Esto también permite reducir los
costes de implementación, adaptación rápida frente a los cambios y reacción
ágil ante la competitividad e innovación de los servicios a clientes. Todo esto se
da gracias a que las nuevas tecnologías combinan fácilmente con aplicaciones
independientes, permitiendo de este modo que los componentes del proceso
se puedan coordinar e integrar de modo efectivo y rápido.
 La descentralización del control de la ejecución y de todos los procesos.

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:

 Tareas de Bases de datos: se usan para consolidar, sincronizar y migrar bases


de datos operativas.
 Migración de datos en distintas aplicaciones debido a cambios de versión o
cambio de aplicativos.
 Sincronización entre diferentes sistemas operacionales.
 Consolidación de datos: los sistemas con volúmenes grandes de datos se
consolidan en sistemas paralelos para procesos de borrado en los sistemas
originales o para mantener así históricos.
 Interfases de datos con sistemas externos: envío de información a
proveedores y clientes. Recepción, proceso e integración de la información
recibida.
 Interfases con sistemas Frontoffice: interfaces de subida y bajada con sistemas
de venta.

Y
Página 14
EL PROCESO DE ETL

 Otros: preparación de procesos masivos como newsletter o mailings,


actualización de usuarios a sistemas paralelos, etc.

Según Gartner, las características más importantes que debe incluir un software ETL
son las que siguen:

 Conectividad / capacidades de adaptación (con soporte a orígenes y destinos


de datos): habilidad para conectar con distintos tipos de estructura de datos,
tanto bases de datos relacionales como no relaciones, diferentes formatos de
ficheros, XML, colas de mensajes, páginas web, emails, repositorios de
contenido, aplicaciones ERP, CRM o SCM o herramientas de ofimática.
 Capacidades de entrega de datos: habilidad para facilitar datos a otras
aplicaciones, bases de datos o procesos en varias formas, con capacidades para
programación de procesos batch, mediante el lanzamiento de eventos o en
tiempo real.
 Capacidades de transformación de datos: habilidad para transformar los datos,
ya sean transformaciones básicas como conversión de tipos, cálculos simples o
manipulación de cadenas; transformaciones intermedias como sumarización,
agregaciones o lookups; o transformaciones más complejas como análisis de
texto en formato libre o texto enriquecido.
 Capacidades de Metadatos y Modelado de Datos: recuperación de los
modelos de datos desde los inicios de datos o aplicaciones, creación y
mantenimiento de modelos de datos, mapeo de modelos físico a lógico,
repositorio de metadatos abierto con la posibilidad de interactuar con otras
herramientas, sincronización de los cambios en los metadatos en los diferentes
componentes de la herramienta, documentación, etc.
 Capacidades de diseño y entorno de desarrollo: representación gráfica de los
modelos de datos, objetos del repositorio y flujos de datos, soporte para test y
debugging, gestión de workflows de los procesos de desarrollo, capacidades
para trabajar en equipo, etc.
 Capacidades de gestión de datos: perfiles, calidad de datos y minería de datos.

Y
Página 15
EL PROCESO DE ETL

 Adaptación a las distintas plataformas hardware y sistemas operativos


existentes: mainframes (IBM Z/OS), AS/400, HP Tandem, Unix, Wintel, Linux,
Servidores Virtualizados, etc.
 Las operaciones y capacidades de administración: habilidades de gestión,
control de los procesos de integración de datos y monitorización, como
recolección de estadísticas de ejecución, controles de seguridad, gestión de
errores, etc.
 La arquitectura y la integración: grado de compactación, interoperabilidad y
consistencia de los distintos componentes que forman la herramienta de
integración de datos con un mínimo de productos, un único repositorio,
interoperabilidad con otras herramientas o vía API, un entorno de desarrollo
común, etc.
 Capacidades SOA: como ya hemos dicho antes, SOA es la arquitectura
orientada a servicios, que establece una estructura de diseño para integrar
aplicaciones y que permite a las compañías unir sus objetivos de negocio, en
cuanto a flexibilidad de integración con alineación directa a los procesos de
negocio, con la infraestructura TI y con sistemas legados. Esto también permite
reducir los costes de implementación, adaptación rápida frente a los cambios y
reacción ágil ante la competitividad y la innovación de los servicios a clientes.
Todo esto se da gracias a que las nuevas tecnologías combinan fácilmente con
aplicaciones independientes, permitiendo de este modo que los componentes
del proceso se puedan coordinar e integrar de manera efectiva y rápida.

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:

- Servicios de entrega/acceso de datos (mediante conectores o adaptadores).


- Gestión de servicios.
- Data profiling.
- Data quality.
- Procesos operacionales.
- Servicios de transformación: CDC, SCD, validación, agregación.

Y
Página 16
EL PROCESO DE ETL

- Servicios de acceso a tiempo real.


- Extract, Transform and Load (ETL).
- Enterprise Information Integration (EII).
- Enterprise Application Integration (EAI).
- Capa de transporte de datos.
- Gestión de metadatos.

*Representación gráfica de Integración de datos. Fuente:


[Link]

Algunas herramientas ETL:

- Ab Initio.
- Beneti.
- BI Tool – ETL Software.
- CloverETL.
- Cognos Decisionstream (IBM).

Y
Página 17
EL PROCESO DE ETL

- Data Integrator (herramienta de Sap Business Objects).


- ETI Solution (anteriormente era ETI*Extract).
- IBM Webshere DataStage (anteriormente Ascential DataStage).
- Microsoft Integration Services.
- Oracle Wrehouse builder.
- WebFocus-iWay DataMigrator Server.
- Pervasive.
- Informatica PowerCenter.
- Oxio Data Intelligence ETL full web.
- SmartDB Workbench.
- Sunopsis (Oracle).1
- SAS Dataflux.
- Sybase.
- Syncsort: DMExpress.
- Opentext (anteriormente Genio, Hummingbird).

1.2.1 Procesamiento en herramientas ETL

Para mejorar el rendimiento de los procesos ETL en grandes volúmenes de datos se ha


desarrollado en el software ETL la aplicación de procesamiento paralelo. Existen tres
tipos de paralelismos que se pueden implementar en las aplicaciones.

Estos son:

 De datos: se divide un único archivo secuencial en pequeños archivos de datos


para así proporcionar acceso paralelo.
 De segmentación (pipeline): permite el funcionamiento simultáneo de diversos
componentes del mismo flujo de datos.
 De componente: permite el funcionamiento simultáneo de múltiples procesos
en distintos flujos de datos en el mismo puesto de trabajo.

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.

1.3 RETOS EN LOS PROCESOS Y HERRAMIENTAS ETL

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.

Es posible que en un sistema operacional la calidad de los datos o el rango de valores


no coincida con las expectativas de los diseñadores en el momento de especificar las
reglas de transformación o validación. Por ello, es importante y recomendable realizar
una evaluación completa de la validez de los datos (Data profiling) del sistema de
origen durante el análisis para identificar así las condiciones que se precisan para
poder tratar los datos de manera adecuada por las reglas de transformación
especificadas. Esto nos llevará a modificar las reglas de validación implementadas en el
proceso ETL.

Los Data WareHouse, normalmente, son alimentados de forma asíncrona desde


diferentes fuentes, que sirven a propósitos distintos. El proceso ETL es vital para lograr
que los datos extraídos de manera asíncrona de orígenes heterogéneos se integren en
un entorno homogéneo.

Durante el análisis se debe establecer la escalabilidad de un sistema ETL durante su


vida útil. Esto también incluye la comprensión de los volúmenes de datos que deberán
ser procesados según los acuerdos de nivel de servicio (SLA: Service level agreement).
Es posible que el tiempo para realizar la extracción de los sistemas de origen cambie,
hecho que implica que la misma cantidad de datos deba ser procesada en menos
tiempo. Hay algunos sistemas ETL que son escalados para poder procesar diversos

Y
Página 19
EL PROCESO DE ETL

terabytes de datos con el objetivo de actualizar un Data WareHouse que es posible


que contenga decenas de terabytes de datos. Los lotes que se procesaban a diario
pueden pasar a procesarse en micro-lotes durante un mismo día o incluso a la
integración con colas de mensajes o a la captura de datos modificados (CDC: change
data capture) en tiempo real para una transformación y actualización continua. Todo
esto es debido al incremento de volúmenes de datos.

1.4 ETL EN CONTEXTO PENTAHO

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.

Pentaho Data Integration (PDI) es una solución de integración de datos programada en


java orientada por completo al usuario y que se basa en un enfoque de metadatos. Los
procesos ETL son encapsulados en metadatos, los cuales se ejecutan mediante el
motor ETL.

*Representación gráfica icon de Pentaho Data Integration (PDI). Fuente:


[Link]

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

*Representación gráfica de la arquitectura Pentaho Data Integration. Fuente:


[Link]

Las principales características de Pentaho Data Integration son las siguientes:

 Entorno gráfico orientado al desarrollo ágil y rápido basado en el área de


trabajo y la de vista o diseño.
 Multiplataforma.
 Consta de varios conectores a bases de datos, tanto comerciales como
propietarias. También incluye conectores a ficheros planos, XML, Excel u otros.
 Arquitectura extensible por medio de pluguins.
 Soporta procesos ETL en paralelo, uso de cluster y arquitecturas servidor
maestro-esclavo.
 Integrado por completo con la suite de Pentaho.

Y
Página 21
EL PROCESO DE ETL

 Basado en el desarrollo de dos tipos de objetos:


- Trabajos: permiten la administración y la gestión de procesos ETL a un
alto nivel.
- Transformaciones: permiten definir las operaciones de transformación
de datos.
 Está formado por cuatro componentes:
- Spoon: entorno gráfico para desarrollar trabajos y transformaciones.
- Pan: permite ejecutar transformaciones.
- Kitchen: permite ejecutar trabajos.
- Carte: servidor remoto que permite ejecutar trabajos y
transformaciones.
 Pasos disponibles para trabajos:
- Generales: permite comenzar un trabajo, ejecutar trabajos o
transformaciones entre otras operaciones.
- Correo: permite enviar correos, validar cuentas o recuperarlas.
- Gestión de fichero: permite llevar a cabo operaciones con ficheros
como crear, comparar, borrar o comprimir.
- Condiciones: permite llevar a cabo comprobaciones necesarias para
procesos ETL como la existencia de una carpeta, una tabla o un fichero.
- Scripting: permite crear scripts de SQL, JavaScript y Shell.
- Carga Bulk: permite llevar a cabo cargas Bulk a MSSQL, Acces, MySQL y
ficheros.
- XML: permite validar XML y XSD.
- Envío de ficheros: permite coger o enviar ficheros desde SFTP y FTP.
- Repositorio: permite llevar a cabo operaciones con el repositorio de
trabajos y transformaciones.
 Pasos disponibles para transformaciones:
- Entrada: permite la recuperación de datos desde bases de datos (JDBC),
CSV, Acces, Excel ficheros, Mondrian, RSS, LDAP u otros.
- Salida: permite la carga de datos en bases de datos y en otros formatos
de salida.

Y
Página 22
EL PROCESO DE ETL

- Transformar: permite llevar a cabo operaciones con datos como filtrar,


mapear, ordenar, añadir nuevos campos, etc.
- Utilidades: permite operar con columnas o filas y también otras
operaciones como escribir a un log o enviar un email.
- Flujo: permite llevar a cabo operaciones con el flujo de datos como
fusionar, la detección de flujos vacíos, llevar a cabo operaciones
distintas en función de una condición, etc.
- Scripting: permiten la creación de scripts de JavaScript, SQL,
expresiones regulares, fórmulas y expresiones java.
- Búsqueda de datos: permite incorporar información al flujo de datos
por medio de la búsqueda en bases de datos y otras fuentes.
- Uniones: permite la unión de filas dependiendo de distintos criterios.
- Almacén de datos: permite trabajar con dimensiones SCD.
- Validación: permite validar datos, direcciones de correo, tarjetas de
crédito o XSD.
- Estadística: permite llevar a cabo operaciones estadísticas sobre un
flujo de datos.
- Trabajos: permite llevar a cabo operaciones propias de un trabajo.
- Mapeado: permite llevar a cabo el mapeo entre campos de entrada y
campos de salida.
- Embebido: permite llevar a cabo operaciones con sockets.
- Experimental: incluye aquellos pasos que están en fase de validación.
- Obsoleto: incluye aquellos pasos que en la siguiente versión del
producto desaparecerán.
- Carga bulk: permite llevar a cabo cargas bulk a Infobright, LucidDB,
Oracle y MonetDB.
- Historial: recopila los pasos habitualmente usados por el desarrollador.

Y
Página 23
EL PROCESO DE ETL

1.4.1 Carga de los datos (Data Load)

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

Una transformación es un conjunto de pasos que pueden conectarse o no entre sí,


dependiendo de su relación por medio de lo que llamamos saltos. Estos pasos
terminan en uno o varios destinos y pueden ser ejecutados de modo secuencial o en
paralelo. Estos pasos son los que mueven los datos entre sí.

Para la creación de transformaciones se dispone de las opciones siguientes:

- Presionar las teclas CTRL-N.


- Seleccionar en el menú principal la opción: Fichero- Nuevo- Transformación.
- Hacer click en el botón que se encuentra en la barra de herramientas.

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

- Text file input: es semejante al anterior, pero en este no tenemos la


limitación por tipo de fichero.
 Output: son los destinos de los datos, es decir, la parte principal de la carga de
esta ETL. Veamos los destinos de datos más habituales que nos ofrece para
realizar procesos ETL:
- Table output: para escribir datos en una base de datos que escojamos
nosotros.
- Text file output: permite escribir los datos en un archivo de texto plano.
- Insert/Update: nos sirve para escribir los datos en una base de datos,
sobrescribiendo los datos si el registro ya ha sido insertado o insertando
el registro si no ha sido insertado aún. Esto es útil ante las posibles
actualizaciones de registros.
- Update: Si el registro ya ha sido insertado, sobrescribe los datos.
- JSON Output: escribe en formato de texto compatible con WebServices.
- XML Output: escribe en formato de texto que es compatible con
WebServices.
 Transform: pasos para transformar los datos de modo que nos sean útiles
dependiendo de nuestras necesidades. Se pueden hacer cálculos con los datos
que recibimos, añadir datos estáticos, secuencias numéricas, concatenar
distintos campos, etc. Debido a esto, esta es la parte más importante de las
transformaciones de esta ETL. Veamos las transformaciones de datos más
habituales que nos ofrece para realizar procesos ETL:
- Calculator: permite llevar a cabo operaciones de fechas en los campos
de tipo fecha que vienen de origen u operaciones matemáticas con los
campos numéricos que también nos vienen en origen.
- Concat Fields: concatena uno o varios campos en uno solo. Un ejemplo
serían los nombres y apellidos de un cliente, que podemos tenerlos en
dos campos y querer juntarlos en uno. En dicho caso, se utilizaría esta
opción.
- Replace in string: remplaza una cadena de texto por otra que
escojamos nosotros.

Y
Página 25
EL PROCESO DE ETL

- Select values: permite seleccionar los campos que queramos en el caso


que el origen nos dé mucha más información de la que queramos.
- Sort rows: permite ordenar los campos.
- Unique rows: nos permite desechar de forma automática los registros o
filas iguales que nos lleguen de origen y quedarnos únicamente con un
registro.
 Big Data: encontramos aquí los pasos principales para escribir y leer datos en
bases de datos consideradas Big Data. Los pasos anteriores también sirven para
Big Data, pero estos se centran exclusivamente en bases de datos para Big Data
y los otros sirven para leer múltiples fuentes distintas y controlar los datos y
transformarlos como mejor nos vaya dependiendo de nuestras necesidades.

Veamos los pasos más habituales para transformar los datos:

 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

Por su parte, un Trabajo o Job es un conjunto de transformaciones que se ejecutan de


modo secuencial. Por tanto, un Trabajo no mueve los registros o datos, sino secuencias
de tareas.

1.4.2 Calidad de los datos (Data Quality)

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:

 Potenciar acciones de marketing.


 Optimizar la fidelización de nuestros clientes.

La calidad de los datos no solo hace referencia al hecho de que no haya defectos en
estos, sino que los datos deben:

- Proporcionar una única visión.


- Ser consistentes.
- Ser completos.
- Ser adecuados para su función.
- Estar relacionados de forma correcta con todas las fuentes.
- Cumplir las leyes y normativas.

Al hablar de calidad de datos, debemos diferenciar entre dos vertientes: la validación


de los datos y la limpieza de datos.

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

En cierto modo, podemos utilizar Pentaho como herramienta de Data Quality.


Pentaho, por defecto, ya tiene distintos validadores de datos que nos permiten hacer
validaciones sencillas con las que podremos transformar, aceptar o rechazar distintos
registros en función de los datos que tengamos. De estos pasos, el más completo a
utilizar es Data Validator, porque nos ofrece una gran cantidad de validaciones como,
por ejemplo, definir un rango de valores numéricos aceptados (Maximum Value-
Minimum Value) con lo que se puede, por ejemplo, validar si la edad es correcta. Data
Validator también nos ofrece, por ejemplo, validar si no aceptamos valores en blanco
(Null Allowed).

*Representación gráfica ejemplo Data Validator. Fuente: [Link]

Y
Página 28
EL PROCESO DE ETL

1.4.3 Limpieza de los datos (Data Cleaning)

A la hora de analizar grandes volúmenes de información o no tan grandes volúmenes,


uno de los problemas con los que podemos encontrarnos es la calidad de los datos. Es
fundamental una buena calidad de datos para lograr buenos informes, cuadros de
mandos, etc.

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.

Estos problemas o errores se producen, normalmente, por:

 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

 Error por distintas definiciones de datos en los diccionarios: por ejemplo,


pongamos que accedemos a una fuente de información en la que tenemos el
registro de los clientes que se han dado de alta en nuestra página web en
Estados Unidos. Al tener la página web en inglés, cuando seleccionan país de
origen hemos cargado un diccionario de datos en inglés en el que aparecen los
siguientes registros: USA/SPAIN/FRANCE. Y en nuestra página web en España,
tenemos cargados para el mismo registro los siguientes datos:
EEUU/ESPAÑA/FRANCIA. Al hacer la carga de los usuarios dados de alta en
ambos países, tendremos datos inexactos que nos pueden llevar al error al ver
las altas por países.

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:

- Detección de datos incorrectos.


- Limpieza.
- Normalización.
- Deduplicación.
- Integración.

Y
Página 30
EL PROCESO DE ETL

Lo primero que debemos hacer es determinar las posibles casuísticas de datos


erróneos. El hecho de que la mayoría de datos e informaciones provienen,
normalmente, de una base de datos operativa, lo más habitual es que estas casuísticas
estén ya identificadas. No obstante, es importante ejecutar procesos tales como
conteos de datos nulos o acumulados, ya que ello puede evitarnos sorpresas de última
hora. Facilitando así nuestro trabajo.

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.

El proceso referido a deduplicación se refiere a la identificación de posibles datos


duplicados. Estos datos duplicados los dejaremos en cuarentena hasta que sean
desestimados y eliminados según criterios determinados. En algunas ocasiones, será
necesario realizar procesos de cálculo paralelos, como sumas, conteos, medias y
porcentajes, con el fin de agrupar los diferentes valores contenidos en cada uno de los
distintos códigos que tiene el cliente.

Si realizamos correctamente todos estos pasos que conforman la auditoría de datos,


aseguraremos la integridad y coherencia de los datos, de modo que podremos
proceder a la fase de carga en nuestro proceso de ETL.

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.

Hecha la auditoría y una vez hayamos detectado el problema, definiremos el motivo de


esa anomalía, qué la ha producido y de qué modo podemos corregirlo. Para corregir
estos problemas existen diferentes métodos:

 Transformación: se puede cambiar el valor de un valor a otro en función de


aquello que nosotros parametricemos mediante el uso de algoritmos
matemáticos básicos o de un diccionario. Si por ejemplo, en nuestra base de
datos nos aparece como país de origen ESPAÑA y nos viene SPAIN, podemos
tener en el proceso de limpieza el cambio de un valor por el otro.
 Eliminación: habitualmente, se realiza la eliminación de registros a causa de
registros duplicados. Estos pueden suceder por fallos al introducir los datos, ya
sea un error automático o manual. Normalmente, las tablas tienen un registro
o más que actúan como clave primaria que no se puede duplicar, pero puede
ocurrir que la clave primaria no se haya activado en la tabla o que no sea
correcta.
 Estadística: el uso de funciones matemáticas que contienen desviaciones,
rangos, promedios o algoritmos y que son llevadas a cabo por expertos en la
materia, nos puede llevar a comprobar si los datos son correctos o no, aunque
es complejo, su valor estadístico lo determina. Del primer punto que hemos
comentado, la transformación, se diferencia porque en la primera sabemos que
un dato es erróneo de manera fehaciente. Si por ejemplo, la edad de una
persona es -2, no precisamos un algoritmo muy complejo para saber que ese
dato es erróneo.

Y
Página 32
EL PROCESO DE ETL

 Análisis: para detectar los errores de sintaxis se usa un analizador gramatical


que decide si una frase es aceptable o permitida. Es parecido a lo que usamos
para revisar la ortografía o la sintaxis con un programa de tratamiento de texto.

Cuando ya hemos definido el problema, debemos ejecutar el proceso para corregir


esos errores o eliminar registros. Hay que tener en cuenta cómo se ha planteado el
proceso ya que es posible que un proceso se haya planteado perfectamente, pero que
la ejecución se alargue más de la cuenta.

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.

Podemos usar la herramienta Pentaho Data Integration como herramienta de Data


Cleaning. Anteriormente ya hemos comentado que esta incluye la validación de datos,
por lo que podemos seguir los mismos pasos para un proceso de limpieza u otros de
diferentes:

 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

*Representación gráfica de un ejemplo Filter Rows. Fuente:


[Link]

 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

*Representación gráfica de un ejemplo Switch/Case. Fuente: [Link]


[Link]/2015/05/[Link]

 Transform – Unique Rows: este paso nos permite, en caso de tener registros
repetidos, eliminar los sobrantes.

*Representación gráfica de un ejemplo Unique Rows. Fuente:


[Link]

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.

*Representación gráfica de un ejemplo de Replace in string. Fuente: [Link]


[Link]/2015/06/[Link]

 Transform – String Operations: nos permite llevar a cabo diversas operaciones


con un campo. Como por ejemplo, poner el campo entero en mayúsculas o en
minúsculas, eliminar caracteres en blanco o eliminar caracteres especiales.

*Representación gráfica de un ejemplo String Operations. Fuente:


[Link]
me-hubiera-gustado-saber-desde-un-principio/

 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

*Representación gráfica de un ejemplo de Calculator. Fuente:


[Link]
integration-is-it-possible

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

Como hemos comentado anteriormente, las herramientas ETL han evolucionado, y


esta evolución es debida a diferentes causas. Una de estas es que existen diferentes
tipos de datos y que nuestras necesidades de negocio también van cambiando.

Veamos los tipos 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

2.1 TÉCNICAS DE INTEGRACIÓN DE DATOS

Existen distintas técnicas de integración de datos:

 Propagación de datos: se copian los datos de un lugar origen a un destino local


o remoto. Con programas que generan un fichero, pueden extraerse los datos
del origen, que serán transportados al destino, donde se usarán como fichero
de entrada para cargar en la base de datos de destino. Sin embargo, es más
eficiente descargar únicamente los datos que han cambiado en origen respecto
a la última propagación realizada, creando un fichero de carga incremental que
será transportado al destino. Estos procesos suelen ser de tipo en línea y
trabajan con arquitectura de push. Puede realizarse como:
- Intercambio bidireccional.
- Distribución.
 Consolidación de datos: se capturan las modificaciones realizadas en distintos
entornos origen y se propagan a un único entorno destino. En este último, se
almacenará una copia de todos los datos. Con esta técnica es complicado
trabajar con tiempos de latencia (retardos temporales dentro de una red)
bajos:
- Si no se requiere latencia baja, mediante procesos batch, se proveen los
datos en intervalos prefijados superiores a varias horas. Para conseguir
los datos se hace mediante técnica pull que consiste en usar consultas
SQL.
- Si se requiere baja latencia, se usa la técnica push. Hay que identificar
los cambios producidos en origen para transmitir únicamente esos
cambios. Normalmente se emplea alguna técnica de tipo CDC (change
data capture).
 Federación de datos: permite acceder a distintos entornos origen de datos,
que pueden estar en diferentes o en los mismos gestores de datos y máquinas
y crear una visión del conjunto como si fuese una única base de datos
integrada. El motor de federación de datos, cuando una aplicación lanza una
consulta SQL contra la vista virtual, descompone la consulta en consultas

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

cambios SQL en otras tablas remotas o locales. Así, un modo de obtener


cambios es crear triggers o disparadores sobre las tablas de origen, las
acciones de los cuales modifiquen los datos de las tablas destino.
- CDC por captura de log: el fichero de log de la base de datos se examina
constantemente en busca de algún cambio en las tablas que se deben
monitorizar. Aquí la obtención de información no afecta al rendimiento
del gestor relacional debido a que no se necesita acceso al disco duro
que contiene el fichero de log, sino que se basa en la lectura de los
buffers de memoria de escritura en el log.
 Técnicas híbridas: se suelen emplear varias técnicas de integración
constituyendo así lo que llamamos técnica híbrida. La elección de la técnica va a
depender de nuestros requisitos de negocio y tecnológicos y de las posibles y
probables restricciones presupuestarias.
2.2 TECNOLOGÍAS DE INTEGRACIÓN DE DATOS

Existen distintas tecnologías de integración de datos basadas en las técnicas


comentadas en el apartado anterior:

 ETL de generación de código: tienen un entorno gráfico en el que se diseñan y


especifican los datos de origen, sus transformaciones y los entornos destino. El
resultado que se genera es un programa de tercera generación (típicamente
COBOL) que permite llevar a cabo las transformaciones de los datos. Estos
programas simplifican el proceso ETL, sin embargo, añaden pocas mejorías en
cuanto al establecimiento y la automatización de los flujos de procesos que se
requieren para realizar la ETL. Los administradores de datos, normalmente, son
los que se encargan de administrar y distribuir el código compilado, planificar y
ejecutar los procesos de lotes, y llevar a cabo el transporte de los datos.
 ETL basados en motor: permite crear flujos de trabajo en tiempo de ejecución
definidos por medio de herramientas gráficas. El entorno gráfico permite hacer
un mapping de los entornos de origen y destino, las transformaciones de datos
que se requieren, los procesos por lotes necesarios, y el flujo de procesos. La

Y
Página 41
EL PROCESO DE ETL

información que hace referencia a diseño y procesos de ETL se almacena en el


repositorio del catálogo de metadatos. Está compuesto por distintos motores:
- Motor de extracción: usa adaptadores de ficheros planos, adaptadores
como ODBC, JDBC, JNDI, SQL nativo u otros. Los datos pueden ser
extraídos en modo push o pull. En modo pull planificado, soportando
técnicas de consolidación en procesos por lotes. En modo push, usando
técnicas de propagación en procesos de tipo en línea. En los dos casos
se pueden usar las técnicas de changed data capture (CDC) que hemos
comentado antes.
- Motor de transformación: proporciona una librería de objetos, la cual
permite a los desarrolladores transformar los datos de origen para
adaptarse así a las estructuras de datos de destino. De este modo
permite, por ejemplo, la sumarización de los datos en destino en tablas
resumen.
- Motor de carga: usa adaptadores a los datos de destino, como el SQL
nativo, o cargadores masivos de datos para actualizar o insertar los
datos en los ficheros de destino o bases de datos.
- Servicios de administración y operación: permiten planificar, ejecutar y
monitorizar los procesos de ETL. También permiten la visualización de
eventos y la recepción y resolución de errores en los procesos.
 ETL integrado en la base de datos: dentro del motor de la base de datos
algunos fabricantes incluyen capacidades ETL. Estas, en general, tienen menos
funcionalidades y son menos complejas y también menos completas que los
ETL comerciales de generación de código o basados en motor. Por esto, a los
ETL integrados en las bases de datos los clasificamos en tres clases en relación
con los ETL comerciales que se basan en motor o de generación de código:
- ETL cooperativos: para mejorar los procesos de ETL, los productos
comerciales pueden utilizar funciones avanzadas del gestor de base de
datos. Ejemplos de ETL cooperativos son los que pueden usar procesos
almacenados y SQL complejo para llevar a cabo las transformaciones de

Y
Página 42
EL PROCESO DE ETL

los datos en origen de un modo más eficiente, o usar paralelismo de


CPU en consultar para minimizar asi el tiempo de los procesos ETL.
- ETL complementarios: reciben este nombre cuando a los ETL
comerciales les ofrecen funcionalidades complementarias a los ETL de
bases de datos. Por ejemplo, algunos gestores de bases de datos
ofrecen soporte a MQT (Materializad Query Tables) o vistas de
sumarización precalculadas, mantenidas y almacenadas por el gestor
que pueden utilizarse para evitar transformaciones de datos realizadas
por el ETL comercial. También hay gestores que permiten la interacción
directa a través de SQL con middleware de gestión de mensajes (por
ejemplo, permitiendo la inserción de nuevos mensajes en colas por
medio de SQL) o con aplicaciones que se comunican a través de web
services.
- ETL competitivos: hay gestores que ofrecen herramientas gráficas
integradas que explotan sus capacidades ETL en lo que es competencia
con los ETL comerciales.
2.3 USOS DE LA INTEGRACIÓN DE DATOS

Los procesos de integración de datos se usan en diferentes tipos de proyectos.


Destacamos los siguientes:

- 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

3. IMPLEMENTAR UN PROCESO ETL

En este tema vamos a ver qué pasos debemos seguir para implementar los procesos
ETL con éxito.

Durante la ejecución de un proyecto así, debemos llevar a cabo el análisis en el que se


van a definir los orígenes de datos, el destino, la programación de las cargas y también
podremos detectar los posibles problemas de acceso a los datos.

Tras realizar la etapa de análisis, se llevará a cabo la etapa de desarrollo en la que


vamos a implementar la solución requerida. En esta etapa de desarrollo es en la que se
va a usar la herramienta open source Pentaho Data Integration o Kettle y nos
centraremos en tres aplicaciones que tiene la suite para la programación y el diseño de
cargas. Estas aplicaciones son:

 Spoon: entorno gráfico que nos permite la creación de trabajos y


transformaciones.
 Pan: nos permite ejecutar transformaciones.
 Kitchen: nos permite ejecutar trabajos.

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.

3.1 ANÁLISIS DEL PROCESO DE CARGA

Cuando estamos creando un proceso con una herramienta ETL, las primeras acciones
que debemos llevar a cabo son las siguiente:

- Analizar el origen de los datos a cargar.


- Ver qué salida de datos tenemos que generar.

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

red. Si vamos a crear el Data WareHouse (DWH) se van a necesitar credenciales


de la base de datos para la creación del modelo de datos que se van a crear. Si
utilizamos la ETL como una herramienta de integración contra un transaccional,
vamos a necesitar saber las credenciales de esta base de datos, además de la
estructura de las tablas que tenemos que cargar, si es FTP sus credenciales, etc.
Dependiendo del destino de los datos vamos a hablar con unos u otros
responsables de la organización.
 Diseño de las operaciones necesarias para la conversión de datos: según los
datos origen y los datos destino, se van a usar unas transformaciones u otras
existentes en la herramienta, orígenes, salidas, agrupaciones, ordenaciones,
conversiones de cadenas, fórmulas, uniones, etc.
 Definición de la periodicidad de las cargas: hay que definir cada cuánto tiempo
se van a ejecutar los procesos definidos; si hay un evento que las lanza, si son
ad-hoc, si se ejecutan el primer día de mes, si se hacen diariamente, si se lanzan
cada martes, el tercer día del mes en época de verano, etc. Si queremos
explotar los datos con el detalle de cada mes y el mes actual no se quiere llevar
a cabo el análisis, podemos programar las cargas para el primer día de cada
mes.
 Estudiar el volumen de los datos: según las especificaciones de nuestros
servidores y el volumen de los datos, vamos a tener que crear tablas de
agregados para que las herramientas de explotación de los datos tengan un
buen rendimiento. Puede ocurrir, por ejemplo, que nuestra empresa realice
multitud de líneas de facturas a diario y que estos datos se tengan que mostrar
con un detalle diario y que además existan unos cuadros de mandos que
muestren información mensual. Así, posiblemente deberemos llevar a cabo una
tabla de ventas a nivel diario y otra a nivel mensual. Llevar a cabo estas
agregaciones tiene como ventaja que las herramientas de explotación de datos
van a tener un mejor rendimiento, pero con el inconveniente de que el
modelado de los datos será más complejo y habrá más trabajo en la
implementación de ETL.

Y
Página 46
EL PROCESO DE ETL

 Definir cargas totales frente a incrementales: se llama carga total a aquella


que carga todos los registros de las tablas orígenes en la tabla destino y carga
incremental es aquella que, únicamente, carga aquellos registros que se han
modificado o insertado desde la última carga realizada. Para implementar la
segunda opción se necesita que los orígenes tengan los registros auditados,
dicho de otro modo, necesitamos saber en qué fecha se ha modificado el
registro. Si no disponemos de ese campo de auditoría, tendremos que definir
otro campo de fecha y definir algún rango de fechas para cargar. Si, por
ejemplo, las facturas no tienen fecha de modificación se podrían cargar
aquellas facturas que se han creado en los últimos tres meses, entendiendo así
que una factura anterior a tres meses no va a sufrir modificación en el sistema
origen.
 Definir la materialización de los KPIs, year to date, TAM, previous year: a
menudo en la toma de requisitos del proyecto, se llega a la conclusión que el
usuario final necesita tener calculados los KPIs de YTD, TAM o previous year.
Para ofrecer al usuario esta funcionalidad, podemos implementar en el proceso
de carga u ofrecer esta funcionalidad con la herramienta que utilicemos para
modelar los cuadros de mandos y los informes. La implementación de estos
KPIs en la base de datos va a hacer que el proceso sea algo más complejo, que
la validación de los datos tenga aun coste más alto, que la base de datos tenga
más volumen de datos y que la venta de tiempo para recargar los datos sea
más amplia.

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

Como ya hemos comentado anteriormente, una transformación es un conjunto de


pasos o steps que pueden o no conectarse entre sí, dependiendo de su relación
mediante lo que llamamos saltos, que procesan registros a partir de un origen de datos
y cuya salida son uno o más registros de datos.

*Representación gráfica de steps y hops. Fuente:


[Link]

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

*Representación gráfica de los orígenes de datos más utilizados. Fuente:


[Link]

A continuación, ofrecemos un ejemplo sobre cómo crear una transformación mediante


Pentaho.

Autor: M. Moreno, 2015.

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.

A continuación vamos a crear una transformación a partir de una colección de datos de


Mongo DB. Para ello vamos a utilizar:

MongoDB: Necesitaremos que esté arrancada la base de datos y saber la dirección y el


puerto.

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.

1. Insertamos una nueva transformación y arrastramos del menú lateral de Diseño la


herramienta MongoDb Input.

Pinchando dos veces en ella accedemos a las opciones de MongodB. Necesitaremos


tener arrancada la base de datos y conocer la colección, el puerto y la dirección.

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.

2. Definimos el parámetro de la transformación en ‘Editar’->’Configuración’ e


indicamos el valor por defecto:

3. Editamos la información la herramienta Json Input.

Informamos los campos que queremos recuperar para realizar el informe indicando el
formato y el nombre.

Y
Página 50
EL PROCESO DE ETL

Unimos los dos iconos y podemos previsualizar el contenido.

Con esta transformación sería suficiente para generar el informe. No obstante,


realizaremos tres pasos más para conseguir más información de valor.

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

Ejecutamos la transformación y la guardamos.

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:

Spoon User Guide: Transformation Steps

Pentaho:Create a Parameterized Report with MongoDB

Además de este ejemplo, adjuntamos el siguiente enlace con un ejemplo de


transformación con Pentaho Data Integration:

Enlace: [Link]

3.3 TRABAJOS

Como también habíamos comentado antes, un trabajo es el conjunto de trabajos,


transformaciones y pasos que se ejecutan de forma secuencial. El Trabajo o Job
maneja secuencias de tareas, no registros. Con Pentaho se puede programar un Job de
dos modos diferentes: por medio del entorno de desarrollo gráfico (Spoon) o con
Kitchen.

En relación a la creación de trabajos, en el apartado de anexos hemos dispuesto


algunos enlaces con ejemplos prácticos.

3.4 EVALUACIÓN

Implementado el proceso de carga y habiendo comprobado que el resultado es


correcto, debemos evaluar el rendimiento de las cargas. ¿Cuánto tiempo tarda la
ejecución de toda la carga?, ¿Qué paso es el más lento? ,¿Qué mejoras hay que llevar a
cabo?

Y
Página 52
EL PROCESO DE ETL

Como normalmente no se dispone de un tiempo ilimitado para llevar a cabo la


ejecución del proceso, es necesario saber cuánto tiempo tarda en hacerse la carga. Es
muy normal que la ejecución de las cargas se lleve a cabo durante la madrugada
porque es un periodo de tiempo en que los servidores no tienen mucha actividad y los
datos no varían. Si es así, las cargas que hemos implementado deberían ejecutarse en
unas seis o siete horas.

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.

- Si pasamos de vender en nuestra empresa 10.000 líneas de facturas al día a


1.000.000 lo más seguro es que el proceso de carga aumente.
- Si el proceso que hemos implementado no se ejecuta dentro del tiempo
establecido, deberemos ampliar esta ventana de tiempo o disminuir el volumen
de datos que debemos tratar o rediseñar el proceso de carga, ampliar la
dimensión de los servicios, etc.

En Spoon podemos ver el resultado de las ejecuciones en el panel de execution results.


En la pestaña logging vamos a observar a qué hora se ha iniciado la ejecución y a qué
hora finaliza la misma. En la pestaña de Step Metrics podemos consultar el tiempo que
sucede en cada paso, además de las estadísticas de registros que entran en cada paso,
registros rechazados, registros que salen, etc.

Como ya hemos visto anteriormente, podemos configurar las transformaciones ya


existentes en los Jobs creados para enviar el resultado se sus ejecuciones a un fichero
de texto.

También podemos llevar a cabo la configuración de la herramienta para tener un


repositorio con las trazas de las transformaciones que se han ejecutado.

Y
Página 53
EL PROCESO DE ETL

Debemos comentar que la configuración de este archivado puede provocar que la


ejecución de los procesos se lleve a cabo de forma algo más lenta.

3.5 CREACIÓN DE DASHBOARDS

En el apartado anterior hemos hablado sobre la creación de un modelo de datos y la


estructuración de los datos en tablas mediante procesos ETC. Así, en este último
apartado vamos a ver de qué manera coger estos datos estructurados, relacionarlos
entre sí y visualizarlos de manera gráfica con el fin de poder sacar toda la información
necesaria para nuestros análisis.

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.

A modo de resumen, la creación de un dashboard nos reportará los siguientes


beneficios:

- Se enfoca en la toma de decisiones, lo que implica que se optimicen todas las


estrategias de la empresa. No obstante, cabe remarcar el hecho de que el
dashboard no sirve para definir acciones correctivas, sino preventivas.
- Permite llevar a cabo un seguimiento adecuado y recurrente del grado de
cumplimiento de los objetivos establecidos, tanto a nivel global de toda la
empresa como a nivel concreto de un departamento o proyecto específico.
- Refleja los principales indicadores inmersos en el negocio.
- Actúa como guía para identificar el origen de un dato específico, tanto si es
positivo como negativo. Además de ello, permite la detección adecuada de los
datos para facilitar la toma de decisiones.

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.

Como veremos, en la actualidad disponemos de un gran número de herramientas que


nos lo generan automáticamente. No obstante, en la creación de los dashboards,
debemos tener en cuenta los siguientes elementos:

- El primer elemento a considerar son las KPI’s o indicadores que se tratarán en


el dashboard. Aquí es muy importante que incluyamos solo las adecuadas, de
modo que será necesario realizar una búsqueda exhaustiva y profunda de
aquellas palabras clave que añaden valor adicional a nuestro negocio, ya que
serán estas las que nos ayudarán a posicionarnos y a darnos información
relevante sobre la empresa y el proyecto.
- Al tratarse de una herramienta visual, que nos aporta información realmente
valiosa para nuestro negocio, es muy importante que la información y los datos
estén bien estructurados, de modo que su interpretación será rápida y sencilla.
- Ligado con el elemento anterior, el dashboard debe ser comprensible. Eso es,
debe facilitarnos la contextualización de los datos para su posterior
comparación e interpretación, de manera que nos permita hacer valoraciones
útiles e interesantes con el fin de mantener o redirigir la dirección de nuestro
negocio o proyecto.
- Por supuesto, debe ser personalizado, de modo que tratará los objetivos
específicos establecidos para cada empresa.

Además de estos cuatro elementos esenciales, resulta interesante señalar algunas


características más que debemos tener en cuenta a la hora de elaborar un dashboard.
Estas son:

- No debemos abusar en cuanto al número de indicadores que incluyamos, y


es que deberemos incluir solo aquellos que sean realmente necesarios. Ello
es muy importante ya que, como hemos dicho, se trata de una herramienta
de visualización que nos ayudará a entender de manera rápida y fácil los

Y
Página 55
EL PROCESO DE ETL

datos de que disponemos, por lo que deberemos evitar incluir indicadores


que realmente no tengan importancia para lo que queremos analizar.
- Además, estos indicadores o KPI deben ser accionables para el negocio, es
decir, deben permitirnos llevar a cabo acciones estratégicas para mejorar.
- Es muy importante que los datos e informaciones sean compartidos en la
totalidad de la empresa, por lo que su visualización debe ser lo más clara y
fácil de interpretar posible. Así, un dashboard debe ser breve, hablar un
lenguaje común y ofrecer una representación gráfica adecuada para los
datos que representa y lo suficientemente visual para que su estudio
resulte atractivo.
- Además de los indicadores perfectamente visualizados, el dashboard debe
ir acompañado por un análisis en el que explique qué ha ocurrido, las
recomendaciones para poner solución o mejorar la situación y el impacto
que ello puede tener sobre el negocio.

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.

A continuación, adjuntamos un ejemplo sobre cómo crear un dashboard con la


herramienta Pentaho.

El ejemplo ha sido extraído de la web de Jortilles a partir del siguiente enlace:


[Link]

1. Introducción

Un Dashboard o cuadro de mando, es una aplicación que se utiliza para presentar el


contenido de una serie de indicadores que muestran el comportamiento de los datos.

En este tutorial realizaremos un Dashboard con Pentaho, utilizando la herramienta que


nos da Pentaho para hacer cuadros de mando, es decir CDE.

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/

La base de datos que utilizaremos será la que viene de prueba, “SampleData”, al


configurar Pentaho BI Server.

Estas son las tablas que tenemos disponibles para realizar nuestro Dashboard.

En nuestro Dashboard, la información que queremos presentar contendrá:

- Un selector con los nombres de los managers.

- Un gráfico de barras que mostrará la varianza acumulada por cada departamento.

Y
Página 57
EL PROCESO DE ETL

3. Caso de uso: Creación de un Dashboard

Una vez descargado el programa, descomprimimos, y ejecutamos en el terminal

./[Link]

Abrimos el navegador con la ruta localhost:8080, y accedemos con el usuario admin

Seleccionamos Create New → CDE DAshboard

Y
Página 58
EL PROCESO DE ETL

En el Dashboard tenemos tres vistas

- Layout Panel, es decir la presentación gráfica de los datos

- Components Panel, los objetos que mostrarán los datos, como gráficos, tablas, etc.

- DataSource Panel, son las consultas a los orígenes de datos

Primero guardaremos el documento con el nombre deseado, en este caso elegiremos


como base el framework de Bootstrap:

Y
Página 59
EL PROCESO DE ETL

Lo guardamos en la carpeta pública, con el nombre elegido y continuamos:

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

Como estamos trabajando con Bootstrap, se basa en modelo de cajas (filas y


columnas) la suma total de las columnas tiene que ser 12.

Definimos las filas que tendrá nuestro diseño, y dentro de cada fila las columnas que
necesitaremos.

La Primera fila corresponde a la cabecera (con todos sus elementos) y la segunda


corresponde al gráfico.

➢ 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:

- Un selector, es decir un desplegable que muestre el nombre de los managers para


hacer la consulta.

- Gráfico de barras para mostrar el resultado.

Para crear el selector, primero debemos crear una variable (simple parametre) donde
guarde el valor asignado:

Después creamos el selector, (select component) es decir el desplegable, que


devolverá el valor del parámetro que hemos creado anteriormente:

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

Y el último objeto que necesitamos es el gráfico de barras:

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

- Para realizar la consulta SQL_SELECTOR. Seleccionaremos “sql over sqlJndi”

Y
Página 64
EL PROCESO DE ETL

Esta consulta devolverá el nombre de los managers.

- Para realizar la consulta SQL_GRAFICO

Si vamos al navegador y actualizamos, ya podemos ver el resultado, con el selector y el


gráfico. Aunque aún no se actualizan los datos al cambiar el valor del selector.

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

Un listener está relacionado con un parámetro, cuando se produce un cambio de este


se desencadena una actualización del componente, en este caso, cuando se produce
un cambio de manager, se actualiza el gráfico.

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.

Volvemos a la pestaña de Componentes, y en el gráfico, ponemos en ambos campos


“param_manager”

Ahora debemos actualizar el “datasource” SQL_GRAFICO, con el valor del parámetro:

Ahora sí que cambia la tabla en función del nombre del 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.

En el Panel Header, declararemos el título del gráfico.

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

Si volvemos a actualizar el navegador ya podemos ver el panel con el título en el


gráfico.

Por último, vamos a añadir nuestro logo en el Dashboard:

Ya teníamos definido el espacio en la capa del layout, en la fila correspondiente a la


cabecera, insertamos una imagen.

Y
Página 68
EL PROCESO DE ETL

Y en las propiedades, debemos introducir la url donde hemos puesto la imagen. En


nuestro caso la hemos subido en la misma carpeta del dashboard, la carpeta pública.

Como url será: ${res:nombre_logo.png}

Volvemos a actualizar el navegador, y ahora sí, ya tenemos nuestro primer Dashboard


finalizado:

Además de este ejemplo, a continuación ofrecemos dos ejemplos gráficos de


dashboards creados a partir de la herramienta de Google, Google Analytics y con Excel.

Además, y para complementar la información, en el apartado de los anexos hemos


dispuesto algunos enlaces a tutoriales en los que se detalla de manera precisa cómo
podemos crear un dashboard utilizando Google Analytics y Excel.

Y
Página 69
EL PROCESO DE ETL

*Ejemplo de dashboard extraído del blog témporaExcel. Enlace:


[Link]
[Link]

*Ejemplo de dashboard extraído del blog Ecoconsultancy. Enlace: [Link]


10-useful-google-analytics-custom-dashboards

Y
Página 70
EL PROCESO DE ETL

Comentar que, además de estas herramientas, existen otras herramientas para la


creación de un dashboard. Para su consulta, adjuntamos el siguiente enlace, en el que
se ofrece un listado de dichas herramientas.

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.

Aquí resulta interesante hablar sobre los informes personalizados.

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.

De este modo, una vez disponemos de toda la información referente a nuestra


empresa, con los informes personalizados lo que haremos será acotar dicha
información a los datos que realmente nos interesan.

Por ejemplo, podemos tener información relacionada con el departamento de ventas


de un trimestre o año en concreto. Aquí, disponemos de datos tales como la
facturación, el importe del ticket medio, el número de compras diarias, semanales y
mensuales, los productos más y menos vendidos, aquellos productos que se han
vendido juntos, la procedencia de los compradores, el modo de pago, etc. Como
vemos, se trata de una gran cantidad de información, toda ella útil dependiendo de lo
que en ese preciso momento nos interese. Así, si lo que queremos es hacer
promociones por la compra de dos productos juntos, lo que nos interesará será
conocer toda la información relativa a aquellos productos que se han vendido juntos
durante el período de tiempo analizado o aquellos productos que los compradores han
consultado mientras compraban un producto concreto, por lo que crearemos un

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.

Como beneficios que nos ofrecen este tipo de informes destacamos:

- Nos ofrecen de manera unificada información que tenemos repartida en


varios informes, presentando dicha información de manera unificada en
función de las métricas y parámetros que hayamos seleccionado.
- Nos permite comunicar y reportar esta información de manera mucho más
rápida, clara y precisa, tanto a los miembros de la empresa como a los
clientes.
- Además de seleccionar el tipo de información que queremos incluir,
también nos permiten establecer parámetros en relación al tiempo.

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

4.1 CREACIÓN DE UN DASHBOARD

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.

4.1.1 Creación de un dashboard en Google Analytics

Cómo crear un dashboard en Google Analytics y no morir en el intento. David Pinazo,


marco 2015.

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.

4.1.2 Creación de un dashboard en Excel 2010

Cómo hacer un dashboard en Excel 2010. David Piñeiro.

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

4.2 EJECUCIÓN DE TRANSFORMACIONES Y TRABAJOS

Anteriormente, en los apartados correspondientes, hemos tratado de manera teórica


las Transformaciones y los Trabajos y también hemos compartido algún vídeo y algún
ejemplo. Para finalizar, aquí vamos a ver cómo tratar con estos componentes o
herramientas y como realizar su ejecución paso a paso.

4.2.1 Guía de componentes Pentaho

Guía de componentes de Pentaho Data Integration. Grupo ETL.

[Link]
[Link]

Documento: Guía de componentes Pentaho. Data integration.

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.

4.2.2 Ejecutar una Transformación o Trabajo

Bernabeu R. Darío, 2010. Ejecutar una Transformación o Trabajo.

[Link]

En este enlace encontramos el paso a paso, muy bien explicado y acompañado de


imágenes, para llevar a cabo la ejecución de una Transformación o Trabajo. Nos explica
cómo realizarla, las opciones de ejecución, la vista previa de esta ejecución, la
configuración remota y el clustering, entre otros.

4.2.3 Transformación gráfica ETL con Spoon

Transformación gráfica ETL con Spoon- un componente de Pentaho Data Integration.

[Link]

Y
Página 74
EL PROCESO DE ETL

En este enlace tenemos un ejemplo de explicación para realizar una transformación


simple usando la aplicación Spoon de Pentaho Data Integration (Kettle). Paso a paso
nos indica cómo llevar a cabo esta ejecución de la transformación.

4.2.4 ETL: Ejemplo práctico de transformación de datos usando Kettle

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.

Recientemente tuve que trabajar con un feed de un proveedor de entretenimiento que


distribuye DVD, CD de música y demás. Para las tiendas que usan estos archivos, se les
proporciona un conjunto bastante confuso de archivos planos, delimitados por
tabuladores, en un formato muy poco user friendly. Dado que la tienda para la que
trabajaba tenía un formato predefinido y deseaban incluir archivos de ventas a su
motor de búsqueda y navegación, necesitábamos transformar estos archivos a ese
formato. Aquí es donde entra en acción Kettle.

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

con categorías (categories), también necesito el archivo de categoría (Category). Las


categorías se manejarán de manera especial. No necesito esto en mi archivo, sino en
un archivo separado, o más bien en archivos, que se adjuntarán solo una vez a un
conjunto de archivos diferente. Y el archivo final que necesito de su conjunto es su
archivo de Atributos (Attributes), que contendrá información sobre productos tales
como: si el producto es de pantalla ancha, doblado, subtitulado, etc. Estos se manejan
de una manera especial en el back-end de búsqueda, así que solo necesito
proporcionarlos.

Figura 1. Modelo conceptual de datos

Lo que tengo que hacer es transformar estos datos en el formato de la Figura 2.

Y
Página 76
EL PROCESO DE ETL

Figura 2. El formato de alimentación de datos

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.

Figura 3. Nueva 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.

Figura 4. Nuevas entradas de texto

Con las tres entradas de archivo de texto en la transformación, necesitaremos


configurarlas para leer los archivos de datos. Lo primero es añadir el archivo a la lista
de archivos de entrada. Haremos esto haciendo clic en Explorar (Browse), luego
cuando seleccionamos el archivo, haga clic en Añadir (Add). Con el archivo
seleccionado, ahora necesito configurar la información de delimitación. Estos archivos
están delimitados por tabuladores, sin calificadores de texto (es decir, sin comillas
alrededor de las Strings) y sin fila de encabezado. Entonces, haremos clic en el
contenido y estableceremos las opciones apropiadas. Como este es un archivo
delimitado por tabuladores, necesito hacer clic en el botón Insertar Pestaña (Insert
Tab) para agregarlo a la pestaña.

Y
Página 78
EL PROCESO DE ETL

Figura 5. Opciones del Delímetro

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

Figura 6. Selección de campo

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

Figura 7. Opciones de Sort Rows

A continuación, arrastramos sobre Select Values y conecto a Sort Row. En la pestaña


Seleccionar/Alterar pestaña (Alter Tab), hago clic en Obtener Campos (Get Fields) y
dejamos todo en predeterminado. Como no utilizaremos los campos sin nombre, voy a
la pestaña Eliminar (Remove) y selecciono esos campos.

Figura 8. Eliminar campos

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

Y en su File Flattener, definimos los siguientes campos de destino:

-FieldOne

-FieldTwo

-FieldThree

El Flattener asignaría los valores de esta manera:

-FieldOne = Pantalla ancha

-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.

Figura 9. Aplanador de Campo (Field Flattener)

Con este paso final en la transformación, el flujo de datos para el atributo se verá más
o menos así:

-ID del Producto

- ID Interno

-Nombre del Atributo

-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).

Figura 10. Unión

Lo último que tenemos que hacer para mi transformación es modificar la identificación


del producto (Product ID). Como se trata de una alimentación de prueba, necesitamos
que la identificación del producto sea única. Haremo esto con Java Script. También
necesitamos modificar el campo de atributo para eliminar cualquier canalización
(pipes) en el Campo de Datos (Data Field), ya que mi archivo de salida debe ser un
archivo de texto con delimitación de canal. Por lo tanto, arrastraré un componente

Y
Página 84
EL PROCESO DE ETL

Java Script, y en Javascript escribiré el código apropiado para añadir en incrementos de


10 millones al ID del producto (que modificaré en ejecuciones secuenciales), y usaré el
método de reemplazo de cadenas (String) para reemplazar cualquier pipe.

Figura 11. Código Javascript.

La parte final de esto es exportar un archivo de texto. Necesitaremos establecer el


nombre de archivo para salida, delimitar opciones y campos que usaremos en el
Archivo de salida.

Figura 12. Nombre de archivo de texto de salida (Output Text Filename)

Y
Página 85
EL PROCESO DE ETL

Figura 13. Delímetro de texto de salida (Output Text Delimeter)

Figura 14. Campos de texto de salida (Output Text Fields)

Notaremos en la Figura 13 que tenemos el conjunto de Anexar (Appened Set). Esto se


añadirá a cada ejecución de la transformación al final del archivo de texto de salida.
También tenemos Price dos veces ya que el Display Price y Actual Price son lo mismo.

Y
Página 86
EL PROCESO DE ETL

Ahora, la parte final de esta transformación es las Categorías (Categories). Lo único


que necesitaremos de especial para Categorías es una entrada codificada para la
asignación de Super Categoría (Super Category) en el dispositivo de búsqueda interna
para las categorías en el feed de datos del proveedor. Lo lograremos a través de un
componente de JavaScript entre la entrada de texto de categorías y los archivos de
salida. No mostraremos los archivos de salida para categorías ya que no es relevante
para la transformación principal con los atributos y productos. La figura final muestra
la Transformación terminada.

Figura 15. Transformación finalizada

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

4.3 ENLACES DE INTERÉS


4.3.1 Manual de Pentaho

2016. Pentaho Data Integration.

[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

JSNONPath Online Evaluator.

[Link]

Este enlace nos lleva a una página web en la que podemos interpretar JSON.

[Link]

Y en este otro vemos si hay errores.

4.3.3 API de Twitter

API Reference index.

[Link]

En este enlace encontramos una página de documentación de la API de Twitter. Nos


enseña el método GET search/tweets en ese curso pero como veréis hay muchos más
a utilizar.

4.3.4 API de Facebook

Graph API Reference.

[Link]

Y
Página 88
EL PROCESO DE ETL

En este enlace encontramos una página de documentación de la API de Facebook.

4.3.5 API Yahoo

Yahoo Weather API for your Apps.

[Link]

En este enlace nos encontramos con una muestra de respuesta de la API


meteorológica de Yahoo.

4.3.6 Desarrollador de Facebook

Facebook Developers.

[Link]

Entrando en este enlace y registrándonos como nos pide, podemos darnos de alta
como desarrolladores de Facebook.

4.3.7 Twitter Apps

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.

Arkady Maydanchik. Data Quality Assessment. Editorial Technics Publications, 2007.

Shazia Sadiq. Handbook of Data Quality: Research and Practice. Editorial Springer,
2015.

5.2 WEBS

Roberto Espinosa, 2010. Herramientas ETL.

[Link]
valen-productos-mas-conocidos-etl-s-open-sour

PowerData, 2017. Procesos ETL.

[Link]

PowerData, 2013. Procesos ETL: Extracción ¿En qué consiste?

[Link]
Extracci-n-En-qu-consiste

PowerData, 2013. Procesos ETL: Transformación ¿En qué consiste?

[Link]
transformaci-n-en-qu-consiste

Daniel Ciruelo. Herramientas ETL.

[Link]

Y
Página 90
EL PROCESO DE ETL

Macarena Vera, 2014. SOA (Arquitectura Orientada a servicios)

[Link]
cuales-son-sus-beneficios/

PowerData, 2016. Auditoría de datos

[Link]
base-de-datos

Erhard Rahm y Hong Hai Do. Data Cleaning

[Link]

Heiko Müller, Johann-Christoph Freytag. Data Cleaning: métodos, problemas y retos

[Link]
[Link]/fileadmin/research/papers/techreports/2003-hub_ib_164-[Link]

[Link] Sobre el dashboard. [Link]

Giorgio Ascolese. Sobre la creación de dashboards.

[Link]
[Link]

Graciela Rodríguez, 2017. Sobre los procesos ETL. [Link]


de-la-gestion-de-datos/bid/312584/procesos-etl-definici-n-caracter-sticas-beneficios-
y-retos

Sergio Repiso. Sobre la auditoría de bases de datos. [Link]


proceso-de-transformar-los-datos-en-informacion-util/

Pentaho Tutorial.

[Link]

Y
Página 91

También podría gustarte