El mapeo de documentos es un paso crucial en el proceso ETL (Extracción, Transformación y Carga), ya que permite documentar todas las fuentes de datos y el destino de nuestro modelo. El objetivo es diseñar un documento que identifique de qué tabla y campo provendrá la información y cómo se almacenará en nuestro Data Warehouse.
¿Qué es un documento de mapeo y cómo se estructura?
Un documento de mapeo es una herramienta esencial para documentar el proceso de ETL. En él, se detalla tanto el origen como el destino de los datos:
Target (Destino): Indica la tabla y el campo de destino en el modelo dimensional del Data Warehouse.
Source (Origen): Incluye información sobre la tabla y columna de origen, si es una clave primaria, la transformación a aplicar, y cualquier observación relevante.
Estructura Sugerida:
Tabla de destino (Target)
Atributos y tipo de dato del destino
Observaciones y transformaciones necesarias
Tabla de origen (Source) y columna
¿Cómo se mapea una dimensión del modelo dimensional?
Para el modelo dimensional, se detalla cada dimensión, como 'clientes', y se identifica el origen de cada campo necesario para la dimensión. Se utiliza la base de datos creada previamente, como AdventureWorks, para rastrear las tablas y columnas que llenarán estos campos.
## Ejemplo de mapeo para la dimensión Cliente
- **ID de Cliente:** Proviene del campo `CustomerID` en la tabla `Customer` de AdventureWorks.
- **Nombre y Apellido:** Se obtienen de la tabla `Person`, de los campos `FirstName` y `LastName`.
- **Nombre Completo:** Se genera mediante la concatenación de `FirstName` y `LastName`, requerirá una transformación.
- **Números de Teléfono:** Requiere extracción y transformación de la tabla `PersonPhone`, diferenciando el tipo de teléfono (celular, casa, trabajo).
- **Ciudad de Resiencia:** Usando el campo `AddressID` en la tabla `Address` relacionada con `Person`.
¿Cómo se identifican transformaciones y condiciones en el mapeo?
En el mapeo, las transformaciones son necesarias cuando los datos no están en el formato exacto que se necesita o cuando requieren un cambio de estructura:
Transformaciones comunes:
Concatenación de campos (por ejemplo, Nombre Completo).
Diferenciación por tipo de teléfono usando códigos de tipo.
Formateo de fechas a un formato estándar.
Condiciones: Se pueden aplicar condicionales para separar datos en columnas específicas basadas en su tipo o atributo.
¿Qué retos se pueden encontrar en el mapeo ETL?
Identificación de Relaciones: Es esencial entender cómo las tablas se relacionan dentro de la base de datos, lo que puede requerir examinar diagramas de relaciones de tablas.
Homologación de Valores: Cuando diferentes campos en distintas tablas expresan conceptos similares, es crucial aplicar estándares y transformar los valores para que sean uniformes en la base de datos.
Optimización de Modelos: El objetivo último es asegurar que el modelo dimensional permita consultar los datos de manera sencilla, evitando complicaciones que puedan surgir por relaciones complejas o datos dispersos.
Anímate a continuar practicando y perfeccionando tus habilidades de mapeo y transforma datos de forma eficiente. Recuerda que la práctica constante ayuda a dominar el proceso y, con el tiempo, facilitará la toma de decisiones basada en datos. ¡Buen aprendizaje!
profesor buenas tardes, de donde puedo descargar la base de datos para poderlo realizar.
Hola profe Edison, entiendo que el modelado dimensional viene de una serie de preguntas que el negocio quiere responder, las cuales se mapean en dimensiones y métricas. Ahora bien, con base en esto:
¿No sería mejor primero hacer este documento de mapeo de la base de datos OLTP y ya teniendo mapeada la información disponible, ahora si se toca base con negocio para establecer el modelo dimensional?
¿Que pasa si se hace un modelo dimensional con base en algunas preguntas de negocio pero cuando ya se hace el documento de mapeo, nos damos cuenta de que las dimensiones y métricas que necesita el negocio no están disponibles?
En este caso, es importante comunicar de manera clara al negocio las limitaciones que enfrentamos en cuanto a la disponibilidad de información en el sistema OLTP. Sin embargo, es fundamental recordar que la información no siempre se encuentra únicamente en el entorno OLTP. Existen diversas fuentes de datos disponibles y nuestro objetivo es identificar y acceder a la información donde esté almacenada, procesarla y llevarla al Data Warehouse (DWH). En algunas situaciones, es posible que incluso debamos utilizar diferentes fuentes de datos para llenar una dimensión en particular. Estas fuentes de datos pueden incluir archivos Excel, APIs, archivos CSV, correos electrónicos, entre otros.
En caso de no contar con los datos definitivamente, pensaría en limitar el alcance del modelo y del proyecto en general.
Un documento de mapeo es una herramienta clave en procesos de ETL y modelado de datos, ya que especifica cómo se deben transformar y mover los datos desde las fuentes hacia los destinos, como un Data Warehouse. A continuación, se detallan los pasos para crearlo y cómo realizarlo:
1. Definir el objetivo del documento
¿Qué se necesita lograr?
Consolidar datos en un Data Warehouse.
Transformar datos para un reporte específico.
Cargar datos en una tabla destino con un esquema definido.
¿Quiénes son los usuarios principales?
Equipo de ETL, analistas de datos, o desarrolladores.
2. Identificar las fuentes de datos
Pasos:
Listar las bases de datos, archivos, o APIs que contienen la información necesaria.
Especificar detalles técnicos:
Nombre de la base de datos o archivo.
Tablas, columnas, o endpoints relevantes.
Tipos de datos en cada columna.
Reglas de acceso o autenticación.
**Ejemplo:**FuenteTabla/ArchivoColumnaTipo de DatoDetallesCRMClientesID_ClienteINTClave primariaERPVentasFecha_VentaDATEFecha de venta
3. Definir el destino
Pasos:
Establecer las tablas destino y sus esquemas.
Documentar las relaciones entre tablas si es un modelo dimensional.
Definir qué verificaciones asegurarán la calidad de los datos.
Validar valores nulos o atípicos.
Verificar que las claves primarias son únicas.
Comparar totales entre origen y destino.
Documentar los procedimientos de remediación para errores.
**Ejemplo:**ValidaciónReglaAcción en Caso de ErrorDuplicadosID_Cliente debe ser únicoEliminar duplicadosRango de FechasFecha_Venta > '2000-01-01'Ignorar registros fuera del rangoTipos de DatosTotal_Venta es DECIMAL(10,2)Notificar error al desarrollador
6. Diseñar el flujo ETL
Pasos:
Dibujar un diagrama que muestre:
Extracción de fuentes.
Transformaciones aplicadas.
Carga en destino.
Incluir herramientas o scripts utilizados.
7. Crear un cronograma
Pasos:
Establecer el orden de ejecución de las tareas.
Definir dependencias y tiempos estimados.
8. Documentar excepciones y reglas adicionales
Pasos:
Incluir notas sobre:
Reglas de negocio específicas.
Limitaciones conocidas de las fuentes de datos.
Manejo de errores (logs, alertas, etc.).
9. Validar el documento
Pasos:
Revisar el documento con los equipos involucrados (negocio, desarrollo, QA).
Ajustar según sea necesario antes de iniciar el proceso ETL.
10. Ejemplo Completo de Mapeo
FuenteTabla DestinoColumna OrigenTransformaciónColumna DestinoReglas/NotasCRM.Clientesdwh.dim_clientesNombre, ApellidoCONCAT(Nombre, ' ', Apellido)Nombre_CompletoAplicar trim() para espacios extras.ERP.Ventasdwh.fact_ventasFecha_VentaFORMAT(Fecha_Venta, 'yyyy-MM-dd')FechaFechas en formato ISO 8601.ERP.Ventasdwh.fact_ventasTotal_VentaRedondear a 2 decimalesTotal_VentaIgnorar ventas negativas.
Este documento detallado servirá como guía durante la implementación del proceso de ETL y ayudará a todos los equipos a mantenerse alineados.
veo que el curso incluye en el título modelado OLAP, pero no se llega a OLAP, solo a un modelo dimensional, entiendo que OLAP es cuando se hacen agregaciones o cubos como tal.
¿Cómo hago para elaborar el CUBO?
:(
Para la línea 4 es incorrecto el valor "customerid" la información debe venir desde "sales.customer.personid", y tampoco es PK. Por favor corregir.