SEMANA 2: ANALÍTICA DE DATOS
ETL
Compilado por Dr. David Alejandro Diaz M. (2024)
MÉTODO EXTRACT, TRANSFORM AND LOAD, ETL
Los procesos ETL son un término estándar
que se utiliza para referirse al movimiento y
transformación de datos. Se trata del
proceso que permite a las organizaciones
mover datos desde múltiples fuentes,
reformatearlos y cargarlos en otra base de
datos (denominada data mart o data
warehouse) con el objeto de analizarlos.
También pueden ser enviados a otro
sistema operacional para apoyar un
proceso de negocio.
En definitiva, el principal objetivo de este proceso es facilitar el movimiento de los
datos y la transformación de los mismos, integrando los distintos sistemas y fuentes
en la organización moderna. El término ETL corresponde a las siglas en inglés
de: Extract: extraer. Transform: transformar. Load: cargar.
LAS FASES O SECUENCIAS DE UN PROCESO ETL SON LAS SIGUIENTES:
Extracción de los datos desde uno o varios sistemas fuente.
Transformación de dichos datos, es decir, posibilidad de reformatear y limpiar
estos datos cuando sea necesario.
Carga de dichos datos en otro lugar o base de datos, un data mart o un data
warehouse, con el objeto de analizarlos o apoyar un proceso de negocio.
La limpieza de datos como etapa separada de los procesos ETL
Aunque podría entenderse como una acción integrada en la fase de
transformación de datos, en la actualidad la tendencia es considerar la limpieza
de datos como una fase separada del proceso ETL.
1
Esta visión corresponde a una concepción más moderna y práctica del proceso.
Para ahorrar tiempo y ganar en efectividad es conveniente unificar criterios, por
ejemplo, introduciendo “av” en vez de “avenida” en todos los registros de una
base de datos de direcciones postales, ANTES de empezar el proceso ETL
propiamente dicho.
Tan importante es tener la información consolidada como que todos los datos
sean correctos y con una visión única para todos los usuarios. Solo así se pueden
lograr unos circuitos de trabajo y análisis de dichos datos realmente óptimos y
efectivos.
¿Qué sistemas se pueden integrar en un proceso ETL?
Los procesos ETL pueden incluir:
Sistemas legacy. Es decir, legados, heredados o
antiguos.
Sistemas nuevos. Basados en Windows, Linux y
también en las redes sociales modernas:
Facebook, Twitter, Linkedin, etc.
Los sistemas legacy o heredados se caracterizan,
generalmente, por: ser cerrados, no permitir
cambios y tener un difícil acceso (normalmente se
necesita algún tipo de driver especial). Son
sistemas que procesan hacia dentro y, por lo
tanto, no permiten la agregación de una
computadora que trabaje en paralelo.
Por el contrario, los sistemas nuevos o modernos (basados en Windows o Linux)
son abiertos, amplios e interconectados. Un ejemplo lo constituiría una granja de
servidores Linux, la cual permite la interconexión de los distintos nodos entre sí.
PROCESO DE EXTRACCIÓN CON SOFTWARE ETL
La primera parte del proceso ETL consiste en extraer los datos desde los sistemas
de origen. La mayoría de los proyectos de almacenamiento de datos fusionan
2
datos provenientes de diferentes sistemas de origen. Cada sistema separado
puede usar una organización diferente de los datos o formatos distintos. Los
formatos de las fuentes normalmente se encuentran en bases de datos
relacionales o ficheros planos, pero pueden incluir bases de datos no
relacionales u otras estructuras diferentes. La extracción convierte los datos a un
formato preparado para iniciar el proceso de transformación.
Una parte intrínseca del proceso de extracción es la de analizar los datos
extraídos, de lo que resulta un chequeo que verifica si los datos cumplen la
pauta o estructura que se esperaba. De no ser así los datos son rechazados.
Un requerimiento importante que se debe exigir a la tarea de extracción es que
ésta cause un impacto mínimo en el sistema origen. Si los datos a extraer son
muchos, el sistema de origen se podría ralentizar e incluso colapsar, provocando
que éste no pueda utilizarse con normalidad para su uso cotidiano. Por esta
razón, en sistemas grandes las operaciones de extracción suelen programarse en
horarios o días donde este impacto sea nulo o mínimo.
PROCESO DE TRANSFORMACIÓN CON UNA HERRAMIENTA ETL
La fase de transformación de un proceso de ETL aplica una serie de reglas de
negocio o funciones sobre los datos extraídos para convertirlos en datos que
serán cargados. Algunas fuentes de datos requerirán alguna pequeña
manipulación de los datos. No obstante, en otros casos pueden ser necesarias
aplicar algunas de las siguientes transformaciones:
•Seleccionar sólo ciertas columnas para su carga (por ejemplo, que las columnas
con valores nulos no se carguen).
•Traducir códigos (por ejemplo, si la fuente almacena una “H” para Hombre y
“M” para Mujer el destino tiene que guardar “1″ para Hombre y “2″ para Mujer).
•Codificar valores libres (por ejemplo, convertir “Hombre” en “H” o “Sr” en “1″).
•Obtener nuevos valores calculados (por ejemplo, total_venta = cantidad *
precio).
•Unir datos de múltiples fuentes (por ejemplo, búsquedas, combinaciones, etc.).
•Calcular totales de múltiples filas de datos (por ejemplo, ventas totales de cada
región).
3
•Generación de campos clave en el destino.
•Transponer o pivotar (girando múltiples columnas en filas o viceversa).
•Dividir una columna en varias (por ejemplo, columna “Nombre: García, Miguel”;
pasar a dos columnas “Nombre: Miguel” y “Apellido: García”).
•La aplicación de cualquier forma, simple o compleja, de validación de datos,
y la consiguiente aplicación de la acción que en cada caso se requiera: ◦Datos
OK: Entregar datos a la siguiente etapa (Carga).
Datos erróneos: Ejecutar políticas de tratamiento de excepciones (por ejemplo,
rechazar el registro completo, dar al campo erróneo un valor nulo o un valor
centinela).Proceso de Carga con Software de ETL
La fase de carga es el momento en el cual los datos de la fase anterior
(transformación) son cargados en el sistema de destino. Dependiendo de los
requerimientos de la organización, este proceso puede abarcar una amplia
variedad de acciones diferentes. En algunas bases de datos se sobrescribe la
información antigua con nuevos datos. Los data warehouse mantienen un
historial de los registros de manera que se pueda hacer una auditoría de los
mismos y disponer de un rastro de toda la historia de un valor a lo largo del
tiempo.
Existen dos formas básicas de desarrollar el proceso de carga:
•Acumulación simple: La acumulación simple es la más sencilla y común, y
consiste en realizar un resumen de todas las transacciones comprendidas en el
período de tiempo seleccionado y transportar el resultado como una única
transacción hacia el data warehouse, almacenando un valor calculado que
consistirá típicamente en un sumatorio o un promedio de la magnitud
considerada.
•Rolling: El proceso de Rolling por su parte, se aplica en los casos en que se opta
por mantener varios niveles de granularidad. Para ello se almacena información
resumida a distintos niveles, correspondientes a distintas agrupaciones de la
unidad de tiempo o diferentes niveles jerárquicos en alguna o varias de las
dimensiones de la magnitud almacenada (por ejemplo, totales diarios, totales
semanales, totales mensuales, etc.).
La fase de carga interactúa directamente con la base de datos de destino. Al
realizar esta operación se aplicarán todas las restricciones y triggers
4
(disparadores) que se hayan definido en ésta (por ejemplo, valores únicos,
integridad referencial, campos obligatorios, rangos de valores). Estas
restricciones y triggers (bien definidos) contribuyen a que se garantice la calidad
de los datos en el proceso ETL, y deben ser tenidos en cuenta.
PROCESAMIENTO EN HERRAMIENTAS ETL
Un desarrollo reciente en el software ETL es la aplicación de procesamiento
paralelo. Esto ha permitido desarrollar una serie de métodos para mejorar el
rendimiento general de los procesos ETL cuando se trata de grandes volúmenes
de datos. Hay 3 tipos principales de paralelismos que se pueden implementar en
las aplicaciones ETL:
•De datos: Consiste en dividir un único archivo secuencial en pequeños archivos
de datos para proporcionar acceso paralelo.
•De segmentación (pipeline): Permitir el funcionamiento simultáneo de varios
componentes en el mismo flujo de datos. Un ejemplo de ello sería buscar un valor
en el registro número 1 a la vez que se suman dos campos en el registro número
2.
•De componente: Consiste en el funcionamiento simultáneo de múltiples
procesos en diferentes flujos de datos en el mismo puesto de trabajo.
Estos tres tipos de paralelismo no son excluyentes, sino que pueden ser
combinados para realizar una misma operación ETL.
Una dificultad adicional es asegurar que los datos que se cargan sean
relativamente consistentes. Las múltiples bases de datos de origen tienen
diferentes ciclos de actualización (algunas pueden ser actualizadas
cada pocos minutos, mientras que otras pueden tardar días o semanas). En un
sistema de ETL será necesario que se puedan detener ciertos datos hasta que
todas las fuentes estén sincronizadas.
DESAFÍOS PARA LOS PROCESOS Y HERRAMIENTAS DE ETL
Los procesos ETL pueden ser muy complejos. Un sistema ETL mal diseñado puede
provocar importantes problemas operativos.
5
En un sistema operacional el rango de valores de los datos o la calidad de éstos
pueden no coincidir con las expectativas de los diseñadores a la hora de
especificarse las reglas de validación o transformación. Es recomendable
realizar un examen completo de la validez de los datos (Data profiling) del
sistema de origen durante el análisis para identificar las condiciones necesarias
para que los datos puedan ser tratados adecuadamente por las reglas de
transformación especificadas. Esto conducirá a una modificación de las reglas
de validación implementadas en el proceso ETL.
Normalmente los data warehouse son alimentados de manera asíncrona desde
distintas fuentes, que sirven a propósitos muy diferentes. El proceso ETL es clave
para lograr que los datos extraídos asíncronamente de orígenes heterogéneos
se integren finalmente en un entorno homogéneo.
La escalabilidad de un sistema de ETL durante su vida útil tiene que ser
establecida durante el análisis. Esto incluye la comprensión de los volúmenes de
datos que tendrán que ser procesados según los acuerdos de nivel de servicio
(SLA: Service level agreement). El tiempo disponible para realizar la extracción
de los sistemas de origen podría cambiar, lo que implicaría que la misma
cantidad de datos tendría que ser procesada en menos tiempo. Algunos
sistemas ETL son escalados para procesar varios terabytes de datos para
actualizar un data warehouse que puede contener decenas de terabytes de
datos. El aumento de los volúmenes de datos que pueden requerir estos sistemas
pueden hacer que los lotes que se procesaban a diario pasen a procesarse en
micro-lotes (varios al 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.
BENEFICIOS DE LOS PROCESOS ETL
A cualquier empresa u organización le beneficia poner en marcha un proceso
ETL para mover y transformar los datos que maneja por los siguientes motivos:
Poder crear una Master Data Management, es decir, un repositorio central
estandarizado de todos los datos de la organización. Por ejemplo, si tenemos un
objeto cliente en una base de datos de créditos y otro objeto cliente en la base
de datos de tarjetas de crédito, lo que haría el Master sería definir, de forma
concreta e inequívoca, un registro cliente único con su nombre y apellidos para
la organización.
6
Posibilita a los directivos tomar decisiones estratégicas basadas en el análisis de
los datos cargados en las bases nuevas y actualizadas: la dama mart o data
warehouse.
Sirve para integrar sistemas. Las organizaciones crecen de forma orgánica y
cada vez se van agregando más fuentes de datos. Esto provoca que comience
a surgir nuevas necesidades, como por ejemplo integrar los datos de un banking
on line con los datos antiguos de un sistema legacy.
Poder tener una visión global de todos los datos consolidados en una data
warehouse. Por ejemplo, crear una estrategia de marketing basándose en el
análisis de los datos anteriores.
Proceso ETL: un sistema efectivo, pero con retos y cuestiones a resolver
Como hemos visto, los procesos ETL son muy útiles y beneficiosos para las
organizaciones por su capacidad para integrar grandes bases de datos,
logrando así una visión única global que permite, a los analistas y directivos,
tomar las decisiones estratégicas adecuadas.
La implantación de un sistema ETL bien definido supone todo un reto puesto que,
para que sea realmente efectivo, debe permitir integrar los sistemas legacy
(algunos ya muy obsoletos) con los más modernos. Además, el acceso a todos
estos sistemas se debe producir no solo en modo de lectura, sino también como
escritura.
Bibliografía.
Introducción al business intelligence, Curto, Josep; Conesa, Jordi
Cómo hacer inteligente su negocio. Business intelligence a su alcance, Rodríguez, José Miguel
Business intelligence guidebook: From data integration to analytics, Sherman, Rick
[Link]
[Link] reto-
actual-de-los-data-warehouses
[Link] y-tics/guia-construir-datawarehouse/
[Link] p/Publicaciones/2001/[Link]
[Link] i/bi-dimensiones-y-metricas/
[Link] valor-de-la- gestion-de-datos/lo-que-necesitas-saber- acerca-de-la-
arquitectura-de-un- datawarehouse
7