De acuerdo a Kimball, podemos encontrar 4 componentes principales para definir un sistema de BI o componentes en un sistema de información:
1. Los sistemas fuentes, o fuentes de datos
2.
Los sistemas ETL3. Las áreas de datos (de Stagging y de Presentación)
4. Aplicaciones de acceso a los datos
Este post se enfoca en el punto número 2 que son los sistemas ETL, en post futuros se desarrollarán con más detalle los otros 3 puntos.
ETL significa
Extraer, Transformar y Cargar (Load por su sigla en inglés) los datos, una variante puede ser ELT que propone traspasar los datos primero y luego realizar todas las transformaciones en el destino.
En términos simples ¿qué es ETL? (definición personal y genérica): "son todas las actividades necesarias relacionadas a la administración de datos y metadatos para satisfacer las necesidades de información".
A ver si se entiende... entonces de acuerdo a esta definición ¿el traspaso de datos es parte del proceso ETL? R: Sí. ¿Y las transformaciones de datos, la agregación de nombres a los códigos inentendibles, y las consolidaciones de los números por cliente? R: También es parte de ETL. ¿Y cuando se requiere enviar los reportes corporativos para el quinto día del mes con la información de cada sucursal en cada región? R: También es parte de ETL ya que requiere el traspaso de los datos de las bases de datos locales de cada región a un repositorio para así procesar los datos y enviar los reportes; es misión del proceso ETL cumplir en tiempo y precisión la carga de los datos.
Imaginemos nuestro plan de BI como un gran reloj, en donde en los procesos ETL encontramos la mayor cantidad de engranajes grandes y pequeños que se encargan de que todo lo planificado funcione precisa y eficientemente. Cualquier desperfecto propaga el error.
La arquitectura ETL debiera pensarse como un servicio independiente a la presentación y consulta de datos, es decir, dedicar hardware y software para esto y en la implementación seguir las mejores prácticas recomendadas por cada vendedor y aquellas que la experiencia indican.
El proceso de ETL, desde el punto de vista tecnológico es un FCE (Factor Crítico de Éxito) de una solución BI, permite automatizar y simplificar procesos muchas veces complejos o demandantes en tiempo, sobre todo de mantención de las soluciones. La mayoría de los proyectos de data warehousing incorporan procesos de ETL, es común ver en más del 80% de estos proyectos un ítem para ETL; no así los sistemas operacionales los cuales aun prevalece el movimiento de datos por código o a través de las mismas aplicaciones.
El proceso ETL no es percibido desde el punto de vista usuario final de los sistemas de información (salvo en determinados casos de minería de datos o análisis específico), sin embargo, los usuarios tienen una participación importante en la concepción y el desarrollo de éstos procesos.
Es el negocio el que plantea sus necesidades de información y los requerimientos iniciales del sistema. Esto plantea dos requisitos importantes en los datos que deben ser cumplidos por el proceso ETL:
- el primero,
las necesidades de información determinan las fuentes de los datos y dicen dónde se deben buscar, recolectar, transformar e integrar los datos.
- y segundo,
las necesidades de información determinan el diseño de la base de datos analítica, es decir, el repositorio de los datos que el proceso de ETL se encargará de integrar y traspasar los datos para lograr el objetivo de la solución final.
Para cumplir con estos objetivos se indica lo que se espera cuando el sistema esté terminado (alcance), las expectativas (funcionalidades), lo que existe y cómo se genera actualmente y esto sirve de input para la definición de las fuentes y destinos de datos.
Lógicamente el diseño de una base de datos analítica no se debe acotar a una necesidad particular, se diseño de tal forma de hacerla flexible de incorporar nuevos elementos al modelo, para eso se diseñan dimensiones que permiten analizar diversas problemáticas de negocio.
Por eso es bueno hablar de la
Estrategia ETL que debe tomar en cuenta fuentes y destinos de datos; ventanas de disponibilidad de las bases de datos; rendimiento de los motores operacionales de información y motor del servidor ETL para elegir dónde realizar las operaciones y sacar el máximo provecho al rendimiento.
Cuando se analizan las necesidades de información que serán cubiertas por la solución BI se debe evaluar la factibilidad (¿tengo lo necesario para cumplir lo requerido?), materialidad (¿vale la pena el esfuerzo en hacerlo de esta manera?) y costos (recursos, tiempo y esfuerzo) de éstas. A su vez, inmediatamente podemos identificar requerimientos para el sub-proyecto de ETL (dentro del proyecto global de la solución completa) los cuales en una etapa siguiente deben definirse de mejor forma; como por ejemplo:
- Fuentes de los datos: Tablas de bases de datos operacionales, archivos externos, identificar dónde se encuentran físicamente los datos que quiero mostrar en la solución final.
- Validación y aprobación de los datos a cargar: Alguien se hace responsable de certificar que la data a ser cargada al sistema es válida y precisa y no contiene errores que lleven a tomar decisiones basadas en datos malos.
- Disponibilidad de la fuente de datos: Cuando los datos fuente se encuentran en sistemas operacionales que soportan el día a día de las empresas se tienen ciertas restricciones, sólo accesibles durante la noche ya que en el día no puede sobrecargar el día a día, conocer los horarios de respaldo de los datos para no consultar o programar traspasos mientras la base de datos está abajo, o rechaza las conexiones.
- Destino de los datos: Considerar que el modelo final será un modelo analítico especialmente diseñado para la solución de BI (punto 3 que detallaremos más adelante), considerar también la zona de stagging o zona intermedia donde antes de cargar el modelo final dejo los datos para realizar las transformaciones necesarias.
- Transformaciones necesarias a los datos: el 99,9% de las veces no será un simple extraer e insertar (copiar y pegar) los datos desde los sistemas operacionales hasta los sistemas de información, se definen las transformaciones necesarias, como los pasos de limpieza de datos, corrección de mala calidad de datos, traspasar datos consolidados en vez de datos en detalle, etc.
- Frecuencia de acceso a los datos fuentes: Es importante conocer las "ventanas de tiempo" disponible para acceder a los datos fuentes en los sistemas operacionales.
- Frecuencia de acceso a los datos finales: Debido a la demanda de información resultaría contraproducente realizar la actualización de los sistemas cuando tiene mayor demanda por parte de los usuarios. Se debe planificar la actualización en tiempos en que el sistema es poco usado como por ejemplo durante las noches, o primeras horas del día, etc.
- Periodicidad de carga: Dependiendo del uso y la finalidad de las soluciones se definen periodos específicos de carga acotados a un rango de tiempo, definido por la disponibilidad. Se establecen acuerdos para la actualización de datos de acuerdo a las necesidades, para algunos sistemas puede ser mensual, semanal, diario, o incluso menos.
El diseño de la estrategia ETL debe tener siempre en consideración estos factores. Hay que tener en cuenta las transformaciones de los datos en el diseño del proceso completo debido al factor de rendimiento y aplicar las mejores prácticas en el traspaso de datos.
Los comentarios y aportes son siempre bienvenidos.