Los procesos E.T.L (Extracción Transformación y Carga (Load)) son los procesos por los que se extraen y computan datos de fuentes muy diversas para cargarlos, normalmente en un DataWarehouse.
A la hora de diseñar un proceso ETL es importante realizar previamente un buen diseño y ANÁLISIS DE LOS DATOS
Al igual que en todos los procesos relacionados con la informática. El análisis previo, y los sistemas de detección y gestión de errores son dos fases del desarrollo al las que no se les suele dar mucha importancia y SI QUE LA TIENEN.
Un buen análisis de los datos nos permitirá tener datos limpios, ordenados y cualificados. Esto se traduce en: CONTROLADOS
Una buena gestión de los errores nos permitirá saber rápidamente por que ha fallado el proceso ETL y como poder subsanar el error para poder reanudar el trabajo inmediatamente.
Un Proceso ETL puede constar de todas o algunas de estas partes:
A la hora de crear una dimensión es importante tener algunos aspectos en cuenta para evitar problemas posteriores:
La clave primaria debería ser única
select id_1, id_2, id_3, id_n, count(*) from tabla_origen group by id_1, id_2, id_3, id_n having count(*) > 1
| Clave_Primaria | Descripción | Clave_origen |
|---|---|---|
| 1 | pirimer grupo | 10 |
| 1 | pirimer grupo | 11 |
| 1 | pirimer grupo | 12 |
| 1 | pirimer grupo | 13 |
| 2 | segundo grupo | 20 |
| 2 | segundo grupo | 21 |
| 3 | tercer grupo | 32 |
| 3 | tercer grupo | 33 |
Si tienes una tabla de dimensión como esta tendrás problemas en el futuro.
La gestión de los errores es una de las tareas criticas durante un proceso ETL. Es bastante común que no se realice ninguna gestión de los errores y únicamente se disponga del log de ejecución para saber si todo ha funcionado correctamente o no. ESO NO ES SUFICIENTE.
Es bueno tener una buena gestión de logs de ejecución así como es bueno tener una buena gestión de errores.
Una buena téncina es redirigir los logs de ejecución a una tabla que nos facilite después el acceso a datos como:
Igualmente es bueno tener una tabla de errores donde registrar tanto los errores como sus causas. Hay varias téncinas para ello dependiendo de el modo en que realices tu proceso ETL (PL/SQL, Talend, Kettle, etc). Es aconsejable la redirecion del mensaje de error tanto como la linea que ha generado el error.
Estas dos tablas son muy útiles a la hora de analizar los procesos ETL comprobar el correcto funcionamiento y solucionar los posibles errores.