Como ya te contamos la semana pasada, los procesos ETL constan de tres fases: extracción, transformación y carga. De cada uno de estos procesos es necesario conocer el funcionamiento y sus claves, pero aún es más decisivo el comprender las medidas de seguridad y cautelas que se deben tener en cuenta a la hora de llevarlos a cabo, para evitar que las consecuencias afecten al sistema y a su normal funcionamiento.
A continuación se resumen los aspectos más importantes de cada uno de estos procesos.
Tal vez te interese leer:
Rendimiento y fiabilidad en los procesos ETL
1. Proceso de Extracción
Para llevar a cabo de manera correcta el proceso de extracción, primera fase del ETL, hay que seguir los siguientes pasos:
- Extraer los datos desde los sistemas de origen.
- Analizar los datos extraídos obteniendo un chequeo.
- Interpretar este chequeo para verificar que los datos extraídos cumplen la pauta o estructura que se esperaba. Si no fuese así, los datos deberían ser rechazados.
- Convertir los datos a un formato preparado para iniciar el proceso de transformación.
Qué hay que tener en cuenta durante el proceso de extracción
Es necesario extremar la cautela en esta fase del proceso de ETL que es la extracción, por lo que 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.
Sin embargo, la mesura más importante a considerar sería el exigir siempre que la tarea de extracción cause un impacto mínimo en el sistema de origen. Este requisito se basa en la práctica ya que, si los datos a extraer son muchos, el sistema de origen se podría ralentizar e incluso colapsar, provocando que no pudiera volver a ser utilizado con normalidad para su uso cotidiano.
Para evitar este impacto y sus consecuencias, en sistemas grandes las operaciones de extracción suelen programarse en horarios o días donde la interferencia con el sistema y su uso sea nula o mínimo.
2. Proceso de Transformación
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. 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.
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 los 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).
- 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).
- 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).
- 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.
Tal vez te interese leer:
Una gestión de datos versátil para la inteligencia de negocio
3. Proceso de Carga
En esta fase, los datos procedentes de la fase anterior (fase de 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. Por ejemplo, en algunas bases de datos será necesario sobreescribir la información antigua con nuevos datos mientras que en otras, bastaría con resumir las transacciones y almacenar un promedio de la magnitud considerada.
Los data warehouse mantienen un historial de los registros, de manera que es posible en todo momento hacer una auditoría de los mismos. Esto permite disponer de un rastro de toda la historia de un valor a lo largo del tiempo.
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.
- 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.).
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.