Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
Después de haber estudiado el modelamiento dimensional y de las
formas de crear físicamente estos esquemas en las bodegas de
datos, se continua con los procesos de carga de datos en las tablas
previamente creadas. Estos procesos son de gran importancia y de
ellos depende en grado sumo el éxito de nuestros sistemas de
inteligencia de negocio, es por lo anterior, que en estos procesos se
invierte un alto porcentaje del tiempo destinado para desarrollar el
sistema en su totalidad. Estos procesos se conocen como Procesos
ETL (Extracción, Transformación y Carga).
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
Existen herramientas y técnicas de ETL que apoyan en la extracción
de los datos de las distintas fuentes en que pudieran estar alojados
(ERP, CRM, bases de datos tradicionales, hojas de cálculo,
procesadores de palabra, etc) para posteriormente depurarlos,
consolidarlos y cargarlos en una bodega de datos.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
1. Proceso de Extracción
Consiste en localizar y extraer los datos, ya que en la mayoría de
los proyectos de bodegas de datos se fusionan datos provenientes
de diferentes sistemas de origen tales como ERP, CRM, bases de
datos, hojas de cálculo, procesadores de palabra, etc. Es por lo
anterior que los formatos de las fuentes normalmente se
encuentran en bases de datos relacionales o archivos planos, pero
pueden incluir también bases de datos no relacionales y otras
estructuras o formatos diferentes.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
1. Proceso de Extracción
Hay varias maneras de realizar la extracción:
Notificación de actualización - si el sistema de origen es capaz de
proporcionar una notificación de que un registro se ha cambiado y
describir el cambio, esta es la forma más fácil de obtener los datos.
Extracción Incremental - algunos sistemas no pueden ser capaces
de proporcionar la notificación de que se ha producido una
actualización, pero son capaces de identificar los registros que se
han modificado. Durante procesos de extracción posteriores, estos
registros son identificados e incluidos en las nuevas extracciones.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
1. Proceso de Extracción
Hay varias maneras de realizar la extracción:
Extracción Completa - algunos sistemas no son capaces de
identificar qué datos se han cambiado en absoluto, por lo que una
extracción completa es la única forma por la que se puede obtener
los datos del sistema fuente. La extracción completa requiere
mantener una copia de la última extracción en el mismo formato
para poder identificar los cambios
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
1. Proceso de Extracción
Qué hay que tener en cuenta durante el proceso de extracción?
En esta fase se debe tener en cuenta que:
En el momento de la extracción, análisis e interpretación: los formatos en que
se presenten los datos o los modos como éstos estén organizados pueden ser
distintos en cada sistema separado, ya que la mayoría de los proyectos de
almacenamiento de datos fusionan datos provenientes de diferentes sistemas
de origen.
En el momento de la conversión de datos: conviene recordar que 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.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
1. Proceso de Extracción
Un requerimiento importante que se debe exigir a la tarea de
extracción es que ésta cause el menor impacto en el sistema de
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.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
2. Transformación
La fase de transformación aplica una serie de reglas de negocio o funciones sobre
los datos extraídos para convertirlos en datos que serán cargados. Estas directrices
pueden ser declarativas, pueden basarse en excepciones o restricciones pero, para
potenciar su pragmatismo y eficacia, hay que asegurarse de que sean:
Declarativas.
Independientes.
Claras.
Inteligibles.
Con una finalidad útil para el negocio.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
2. Transformación
El lado más práctico del proceso de transformación
En ocasiones será necesario realizar alguna pequeña manipulación
de los datos, sin embargo, y dependiendo siempre de las fuentes de
datos, a veces lo que hará falta será 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).
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
2. Transformación
El lado más práctico del proceso de transformación
Traducir códigos (por ejemplo, si la fuente almacena una “H” para
Hombre y “M” para Mujer pero 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).
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
2. Transformación
El lado más práctico del proceso de transformación
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).
Generar campos clave en el destino.
Transponer o pivotar (girando múltiples columnas en filas o
viceversa).
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
2. Transformación
El lado más práctico del proceso de transformación
Dividir una columna en varias (por ejemplo, columna “Nombre:
García, Miguel”; pasar a dos columnas “Nombre: Miguel” y
“Apellido: García”).
Aplicar para formas simples o complejas, la acción que en cada
caso se requiera, como por ejemplo:
Datos OK: entregar datos a la siguiente etapa (fase de carga).
Datos erróneos: ejecutar políticas de tratamiento de
excepciones.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
3. Carga
En esta fase, los datos procedentes de la fase anterior
(transformación) son cargados en el sistema de destino. Este
proceso puede abarcar una amplia variedad de acciones diferentes.
En algunas bases de datos se sobrescribe la información antigua con
nuevos datos. En la mayoría de los casos, se generan data
warehouses o data marts en dónde se mantiene 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.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
3. Carga
Desarrollo del proceso de carga de datos
Existen dos formas básicas de desarrollar el proceso de carga:
Acumulación simple: esta manera de cargar los datos 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. Es la forma más
sencilla y común de llevar a cabo el proceso de carga.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
3. Carga
Desarrollo del proceso de carga de datos
Existen dos formas básicas de desarrollar el proceso de carga:
Rolling: este proceso sería el más recomendable en los casos en que se busque
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.).
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
3. Carga
Sea cual sea la manera de desarrollar este proceso elegida, hay que tener en
cuenta que esta fase interactúa directamente con la base de datos de destino y,
por eso, al realizar esta operación se aplicarán todas las restricciones que se hayan
definido en ésta. Si están bien definidas, la calidad de los datos en el proceso ETL
estará garantizada.
Ejemplos de estas restricciones pueden ser:
Valores únicos.
Integridad referencial.
Campos obligatorios.
Rangos de valores.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
Staging Area
Debe ser posible reiniciar, algunas de las fases de forma independiente de las
otras. Por ejemplo, si la etapa de transformación falla, no debería ser necesario
reiniciar el paso de extracción. Esto es posible mediante la implementación de
áreas de ensayo (Staging Areas). El área de ensayo se utiliza durante los procesos
de ETL para almacenar resultados intermedios de procesamiento. Sin embargo,
sólo debería poder accederse desde el proceso de carga. Nunca debe estar a
disposición de cualquier otro proceso o persona; particularmente los usuarios
finales, ya que puede que no se encuentre en formatos adecuados para la
presentación de información.
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
Staging Area
Bodegas de Datos
Proceso ETL (Extracción, Transformación y Carga)
Algunas de las herramientas ETL más conocidas
En el ámbito comercial, es decir, aquellas que tienen un costo de licenciamiento,
tenemos: Ab Initio, IBM InfoSphere DataStage, SQL Server Integration Services,
Oracle Data Integrator, Power BI y SAP Data Integrator.
También existen herramientas ETL de código abierto, entre otras se tiene, Apatar,
CloverETL, Pentaho y Talend.