Diseñando lo Lógico antes de lo Físico
Parte esencial de la implantación de un ETL en una empresa es determinar cómo desarrollar el proceso ETL lógico y utilizarlo para esbozar la implementación física del ETL. Antes de comenzar cualquier desarrollo físico de ETL, es imprescindible asegurarse de cumplir los siguientes pasos:
El linaje de datos es el proceso de comprender, registrar y visualizar los datos a medida que fluyen desde las fuentes de datos hasta su consumo.
- Tener un Plan: El proceso ETL debe ser conceptualizado y documentado lógicamente. El mapa de datos lógico, proporcionado por el arquitecto de la base de datos, sirve como especificación para que el equipo de ETL cree los trabajos físicos de ETL. Este documento, a veces denominado informe de linaje de datos, constituye la base del metadato que se presentará a los evaluadores de calidad y, finalmente, a los usuarios finales para describir exactamente qué se realiza entre el sistema fuente y el almacén de datos.
- Identificar Candidatos de Fuentes de Datos: Partiendo de los objetivos empresariales de alto nivel, se deben identificar las posibles fuentes de datos que se creen respaldarán las decisiones requeridas por la comunidad empresarial. Dentro de estas fuentes, se deben identificar elementos de datos específicos que se consideran centrales para los datos del usuario final. Estos elementos de datos son luego las entradas para el paso de perfilado de datos.
- Analizar Sistemas Fuente con una Herramienta de Perfilado de Datos: Los datos en los sistemas fuente deben ser escrutados en cuanto a calidad, completitud y aptitud para el propósito. Dependiendo de la organización, la calidad de los datos puede o no recaer bajo la responsabilidad del equipo de ETL, pero alguien con una visión para las necesidades de los tomadores de decisiones que utilizarán el almacén de datos debe realizar este paso de perfilado de datos. Cada sistema fuente debe ser analizado, y cualquier anomalía detectada debe ser documentada. Es esencial aplicar reglas empresariales adecuadas para rectificar los datos antes de cargarlos en el almacén de datos.
- Recibir un Recorrido por el Linaje de Datos y las Reglas Empresariales: Una vez que las fuentes de datos han sido calificadas por el paso de perfilado de datos y se comprende el modelo de datos objetivo final, el arquitecto de la base de datos y el analista de negocios deben guiar al arquitecto y desarrolladores de ETL a través del linaje de datos y las reglas empresariales para extraer, transformar y cargar las áreas temáticas del almacén de datos.
- Recibir un Recorrido por el Modelo de Datos del Almacén de Datos: El equipo de ETL debe comprender completamente el modelo de datos físico del almacén de datos. Esto incluye conceptos de modelado dimensional. Comprender los mapeos en una base tabla por tabla no es suficiente. El equipo de desarrollo debe tener un entendimiento profundo de cómo las dimensiones, hechos y otras tablas especiales en el modelo dimensional trabajan juntas para implementar soluciones de ETL exitosas.
- Validar Cálculos y Fórmulas: Verificar con los usuarios finales cualquier cálculo especificado en el linaje de datos. Es útil asegurarse de que los cálculos son correctos antes de invertir tiempo codificando los algoritmos incorrectos en el proceso de ETL.
Dentro del Mapa de Datos Lógico
Antes de adentrarnos en los detalles de las diversas fuentes que encontraremos, necesitamos explorar el diseño actual del documento de mapeo de datos lógico. Este documento contiene la definición de datos para los sistemas fuente del almacén de datos en toda la empresa, el modelo de datos objetivo del almacén de datos y la manipulación exacta de los datos requerida para transformarlos desde su formato original hasta su destino final.
Componentes del Mapa de Datos Lógico
El mapa de datos lógico se presenta generalmente en un formato de tabla o hoja de cálculo e incluye los siguientes componentes específicos:
- Nombre de la Tabla Objetivo: El nombre físico de la tabla tal como aparece en el almacén de datos.
- Nombre de la Columna Objetivo: El nombre de la columna en la tabla del almacén de datos.
- Tipo de Tabla: Indica si la tabla es un hecho, dimensión o subdimensión (outrigger).
- Base de Datos Fuente: El nombre de la instancia de la base de datos donde residen los datos fuente. Este componente suele ser la cadena de conexión necesaria para conectarse a la base de datos. También puede ser el nombre de un archivo tal como aparece en el sistema de archivos. En este caso, también se incluiría la ruta del archivo.
- Nombre de la Tabla Fuente: El nombre de la tabla de donde provienen los datos fuente. Habrá muchos casos en los que se requiera más de una tabla. En esos casos, simplemente se enumeran todas las tablas necesarias para poblar la tabla relativa en el almacén de datos objetivo.
- Nombre de la Columna Fuente: La columna o columnas necesarias para poblar el objetivo. Simplemente se enumeran todas las columnas requeridas para cargar la columna objetivo. Las asociaciones de las columnas fuente se documentan en la sección de transformación.
- Transformación: La manipulación exacta requerida de los datos fuente para que correspondan al formato esperado del objetivo. Este componente generalmente se anota en SQL o pseudo-código.
Los componentes individuales en el mapeo de datos lógico parecen ser simples y directos. Sin embargo, al estudiarlos más detenidamente, el documento revela muchos requisitos ocultos para el equipo de ETL que de otro modo podrían haber pasado por alto. El propósito principal de este documento es proporcionar al desarrollador de ETL un plan claro de lo que se espera del proceso ETL. Esta tabla debe representar, sin lugar a dudas, el curso de acción involucrado en el proceso de transformación.
Al examinar este enfoque, se pueden notar algunas revelaciones que, de pasar desapercibidas, podrían causar mucho tiempo en la solución de problemas y depuración, retrasando finalmente el proyecto. Por ejemplo, se podría notar que los tipos de datos entre la fuente y el objetivo para el estado se convierten de 255 caracteres a 75 caracteres. Aunque la reducción de la escala de datos podría estar respaldada por la documentación del análisis de datos, si en el futuro se crearan valores con más de 75 caracteres, se podrían perder los datos. Además, algunas herramientas de ETL podrían abortar o fallar todo el proceso con este tipo de error de desbordamiento de datos.
Es importante notar que la notación de transformación para el estado no define explícitamente esta conversión de datos; la conversión está implícita. Por definición, nadie da cuenta explícitamente de las conversiones implícitas. Las conversiones implícitas son comunes y notorias por aparecer sorpresivamente y destruir los procesos. Para evitar problemas, el equipo de ETL debe asumir la responsabilidad de manejar explícitamente estos tipos de conversiones de datos implícitas.