Curso Final de Especialización en Ingeniería de Datos
Descripción
Este curso es el cuarto y último de la especialización en ingeniería de datos. Se centra en el modelado, la transformación y el servicio de datos, con el objetivo de proporcionar valor a las partes interesadas. Los participantes han adquirido habilidades en ingesta, almacenamiento, operaciones de datos y orquestación en los cursos anteriores, y ahora se preparan para aplicar estos conocimientos en la creación de sistemas de datos efectivos.
Contenido del Curso
Objetivos del Curso
- Modelar datos para reflejar el mundo real.
- Transformar datos en información útil.
- Proveer datos a los usuarios finales de manera que generen valor empresarial.
Temas Clave
- Modelado de Datos
- Captura de datos del mundo real.
- Integración de diferentes fuentes de datos (por ejemplo, encuestas, adquisiciones de empresas).
-
Diseño de bases de datos que reflejen la complejidad del mundo real.
-
Transformación de Datos
- Conversión de datos sin procesar en información útil.
-
Preparación de datos para modelos de aprendizaje automático.
-
Servicio de Datos
- Disponibilidad de modelos de aprendizaje automático para usuarios finales.
- Desafíos en la implementación de modelos a escala.
- Manejo de la deriva conceptual basada en datos.
Desafíos en la Implementación
- Deriva Conceptual: Los modelos de IA pueden volverse obsoletos si los datos de entrenamiento ya no reflejan la realidad actual.
- Detección de Cambios: Configuración de sistemas para identificar cuándo el mundo ha cambiado y cómo actualizar los modelos en consecuencia.
- Ciclo de Vida de la Ingeniería de Datos: Necesidad de revisar y ajustar continuamente el ciclo de vida de los datos.
Conclusión
El curso promete ser una experiencia enriquecedora y desafiante, donde los participantes aprenderán a manejar la complejidad del modelado y servicio de datos, asegurando que los datos proporcionen valor real a las partes interesadas.
Tabla Resumen de Temas
| Tema |
Descripción |
| Modelado de Datos |
Diseño de bases de datos que reflejan la realidad y capturan diversas fuentes. |
| Transformación de Datos |
Conversión de datos en información útil para el negocio. |
| Servicio de Datos |
Implementación y disponibilidad de modelos de IA para usuarios finales. |
| Desafíos |
Manejo de la deriva conceptual y actualización de modelos. |
Lista de Consideraciones
- La importancia de la calidad de los datos.
- La necesidad de un ciclo de retroalimentación constante.
- La relevancia de la colaboración entre equipos de datos y partes interesadas.
Este curso es una oportunidad para aplicar los conocimientos adquiridos en los cursos anteriores y enfrentar los desafíos del mundo real en la ingeniería de datos. ¡Comencemos!
Resumen del Curso de Modelado y Transformación de Datos
Descripción
En este curso, se abordará el modelado de datos y la transformación de datos, centrándose en cómo estructurar y preparar los datos para su uso en diferentes casos de uso, como análisis y aprendizaje automático. Se explorarán técnicas y enfoques que permiten a los ingenieros de datos crear modelos efectivos que reflejen la lógica empresarial y faciliten la toma de decisiones.
Contenido
1. Introducción al Modelado de Datos
- Definición: Un modelo de datos organiza y estandariza los datos en una representación estructurada para guiar el comportamiento humano y de las máquinas, informar decisiones y facilitar acciones.
- Elementos Clave:
- Estructura de datos
- Relaciones entre datos
- Significado de los datos
2. Importancia del Modelado de Datos
3. Comunicación y Estándares
- Un modelo de datos bien construido actúa como una herramienta de comunicación entre partes interesadas (ingenieros, analistas, ejecutivos).
- Definiciones claras de términos comerciales son cruciales para la precisión en informes y análisis.
4. Errores Comunes en el Modelado de Datos
- Ignorar el modelado de datos por considerarlo un proceso lento e irrelevante.
- Crear modelos de datos al azar que no reflejan la realidad empresarial.
5. Enfoque en el Modelado de Datos
- Práctica Fundamental: El modelado de datos mejora la calidad y la integración de los datos.
- Enfoque Específico: Adaptar el modelado a dominios empresariales específicos, como marketing o finanzas.
6. Niveles de Modelado de Datos
- Niveles Tradicionales:
- Conceptual: Visión general de los datos.
- Lógico: Estructura detallada sin considerar la implementación.
- Físico: Implementación real en bases de datos.
7. Esquemas de Modelado
- Esquema Normalizado: Estructura que minimiza la redundancia.
- Esquema en Estrella: Estructura que facilita el análisis de datos.
8. Técnicas de Modelado
- Modelos de Inmon y Kimball: Enfoques populares para el modelado de datos analíticos.
- Otras Técnicas: Bóveda de datos y gran tabla.
9. Plan de Curso
- Semana 1: Modelado de datos por lotes y niveles de modelado.
- Semana 2: Técnicas de modelado y transformación para aprendizaje automático.
- Semana 3: Consideraciones técnicas para marcos de procesamiento de datos.
- Semana 4: Creación de una canalización de datos integral.
Conclusión
El modelado de datos es esencial para garantizar que los datos sean útiles y relevantes para la toma de decisiones en una organización. A lo largo del curso, se explorarán diversas técnicas y enfoques que permitirán a los participantes desarrollar habilidades en la creación de modelos de datos efectivos y en la transformación de datos para diferentes aplicaciones.
Modelado de Datos en Ingeniería de Datos
Descripción
El modelado de datos es una parte fundamental del trabajo de un ingeniero de datos. Este proceso permite crear y mantener un modelo de datos que facilite la comunicación y el entendimiento compartido dentro de una organización. A continuación, se describen las etapas del modelado de datos, desde el modelo conceptual hasta el modelo físico, así como la importancia de cada uno.
Etapas del Modelado de Datos
- Modelo Conceptual
- Descripción de entidades comerciales de alto nivel.
- Identificación de relaciones entre entidades y atributos de cada una.
- Reflejo de la lógica y reglas empresariales.
- Visualización mediante diagramas de relaciones entre entidades (ER).
### Ejemplo de Diagrama ER
| Entidad | Relación | Descripción |
|------------------|--------------------------|--------------------------------------------------|
| Productos | Uno a Uno | Cada detalle del pedido se asocia a un solo producto. |
| Detalles del Pedido | Uno a Muchos | Un producto puede asociarse a múltiples detalles del pedido. |
| Pedidos | Uno a Varios | Un pedido puede asociarse a múltiples detalles del pedido. |
- Modelo Lógico
- Adición de detalles sobre la implementación del modelo conceptual.
- Información sobre tipos de columnas de cada tabla.
-
Mapeo de claves principales y externas.
-
Modelo Físico
- Selección del Sistema de Gestión de Bases de Datos (DBMS) específico.
- Definición de cómo se implementará el modelo lógico en el sistema.
- Detalles de configuración sobre el almacenamiento de datos (disco, RAM, híbrido).
- Implementación de procesos como partición y replicación.
Proceso de Modelado de Datos
El modelado de datos es un proceso continuo que avanza desde conceptos abstractos hasta implementaciones concretas. A medida que se avanza en este proceso, se profundiza en aspectos como la normalización, que es crucial para asegurar la integridad y eficiencia de los datos.
Conclusión
El modelado de datos es esencial para cualquier ingeniero de datos, ya que permite estructurar y organizar la información de manera efectiva. Comenzar con un modelo conceptual y avanzar hacia modelos más detallados asegura que los datos sean comprensibles y útiles para la organización.
Resumen del Curso sobre Normalización de Bases de Datos Relacionales
Descripción
En este curso, se explora el concepto de normalización en bases de datos relacionales, su importancia para reducir la duplicación de datos y mejorar la integridad de los mismos. Se analizan las diferentes formas de normalización y se presentan ejemplos prácticos para ilustrar el proceso.
Objetivos de la Normalización
La normalización, introducida por Edgar Codd en 1970, tiene varios objetivos clave:
- Eliminar redundancias: Reducir la duplicación de datos en la base de datos.
- Mejorar la integridad referencial: Asegurar que las relaciones entre tablas sean coherentes.
- Facilitar la modificación de datos: Minimizar la necesidad de reestructurar la base de datos al introducir nuevos tipos de datos.
- Aumentar la vida útil de las aplicaciones: Permitir que los programas de aplicación se mantengan relevantes a lo largo del tiempo.
Ejemplo de Normalización
Se presenta un ejemplo de pedidos de venta para ilustrar la normalización:
- Modelo menos normalizado: Una tabla gigante que contiene todos los datos de pedidos, lo que resulta en redundancia.
- Modelo más normalizado: Datos distribuidos en varias tablas, lo que permite actualizaciones más eficientes.
Comparación de Modelos
| Modelo |
Redundancia |
Actualización de Datos |
| Tabla Gigante (1NF) |
Alta |
Múltiples filas |
| Tablas Separadas (3NF) |
Baja |
Una fila |
Formas de Normalización
Las formas de normalización se clasifican de la siguiente manera:
- Primera Forma Normal (1NF):
- Cada columna debe tener un valor único.
- No se permiten datos anidados.
-
Se establece una clave principal única.
-
Segunda Forma Normal (2NF):
- Cumple con 1NF.
-
Elimina dependencias parciales.
-
Tercera Forma Normal (3NF):
- Cumple con 2NF.
- Elimina dependencias transitivas.
Proceso de Normalización
A continuación, se describe el proceso de normalización utilizando el ejemplo de pedidos de venta:
- Desnormalización: Tabla con datos redundantes y anidados.
- Transformación a 1NF: Desagrupar datos anidados y establecer una clave principal única.
- Transformación a 2NF: Dividir la tabla en dos para eliminar dependencias parciales.
- Transformación a 3NF: Crear tablas adicionales para eliminar dependencias transitivas.
Consideraciones Finales
- Una base de datos se considera normalizada si está en 3NF.
- La normalización es crucial para sistemas transaccionales y almacenes de datos.
- La decisión de normalizar o desnormalizar depende del caso de uso específico.
Actividades Prácticas
En el primer laboratorio de esta semana, los participantes tendrán la oportunidad de practicar la creación de un modelo de datos normalizado, aplicando los pasos de normalización discutidos en el curso.
Este resumen proporciona una visión general de la normalización en bases de datos relacionales, destacando su importancia y el proceso para lograr una estructura de datos eficiente y coherente.
Esquema en Estrella y Tablas de Hechos y Dimensiones
Descripción
El esquema en estrella es un modelo de datos dimensional que se utiliza para estructurar datos de manera que facilite consultas analíticas rápidas y comprensibles para los usuarios empresariales. Este modelo se compone de una tabla de hechos en el centro, rodeada por tablas de dimensiones que proporcionan contexto adicional.
Tablas de Hechos
- Definición: Contienen medidas empresariales cuantitativas resultantes de eventos o procesos empresariales.
- Ejemplo: En un viaje compartido, las medidas pueden incluir:
- Duración del viaje
- Precio del viaje
- Propina pagada
- Retrasos del viaje
Grano de la Tabla de Hechos
- Grano: Nivel de detalle que se desea mostrar en cada fila.
- Recomendación: Optar por un grano atómico, donde cada fila representa un evento específico (por ejemplo, un viaje completado por un solo cliente).
Características
- Inmutabilidad: Los datos en la tabla de hechos no cambian; solo se añaden nuevas filas.
- Estructura: Generalmente son tablas estrechas y largas (pocas columnas, muchas filas).
Tablas de Dimensiones
- Definición: Proporcionan datos de referencia, atributos y contextos relacionales de los eventos en la tabla de hechos.
- Ejemplo: En el contexto de un viaje compartido, las dimensiones pueden incluir:
- Información sobre clientes
- Información sobre conductores
- Información sobre ubicaciones de los viajes
Características
- Estructura: Generalmente son tablas anchas y cortas (muchas columnas, pocas filas).
Relación entre Tablas de Hechos y Dimensiones
- Las tablas de hechos están conectadas a las tablas de dimensiones mediante claves externas.
- Cada dimensión tiene una clave principal, y la tabla de hechos tiene su propia clave principal, que puede ser una clave sustituta para facilitar la combinación de datos de diferentes sistemas.
Ejemplo de Esquema Estelar
| Producto |
Cantidad Pedida |
Precio Unitario |
Importe Total |
| Producto A |
2 |
10.00 |
20.00 |
| Producto B |
1 |
15.00 |
15.00 |
Claves en la Tabla de Hechos
- Clave compuesta principal: Número de pedido y número de línea de pedido.
- Claves externas para conectar con las tablas de dimensiones.
Consultas Analíticas
El esquema en estrella facilita las consultas analíticas mediante:
1. Consultas Agregadas: Sumar, promediar o encontrar el valor máximo de una medida en la tabla de hechos.
2. Filtrado y Agrupamiento: Utilizar tablas de dimensiones para filtrar o agrupar los hechos.
Ejemplo de Consulta SQL
Para encontrar el importe total de ventas de cada línea de productos en EE. UU.:
SELECT SUM(importe_pedido) AS ventas_totales
FROM tabla_hechos
JOIN tabla_dimensiones_productos ON tabla_hechos.codigo_producto = tabla_dimensiones_productos.codigo_producto
JOIN tabla_dimensiones_ubicaciones ON tabla_hechos.codigo_ubicacion = tabla_dimensiones_ubicaciones.codigo_ubicacion
WHERE tabla_dimensiones_ubicaciones.pais = 'EE. UU.'
GROUP BY tabla_dimensiones_productos.linea_producto;
Comparación con Modelos Normalizados
- Modelos Normalizados: Garantizan la integridad de los datos y evitan la redundancia.
- Esquemas en Estrella: Facilitan las cargas de trabajo analíticas y permiten consultas más sencillas con menos uniones, mejorando el rendimiento.
Conclusión
El esquema en estrella es una herramienta poderosa para la organización de datos en almacenes de datos, permitiendo a los usuarios empresariales realizar consultas analíticas de manera más eficiente y comprensible. En el siguiente video, se explorará cómo se utilizan estos modelos en los almacenes de datos.
Resumen del Curso sobre Almacenes de Datos
Descripción
En este curso, se analizan los almacenes de datos como sistemas de almacenamiento que permiten separar los sistemas transaccionales de los analíticos. Se presentan diferentes enfoques para modelar datos en almacenes de datos, centrándose en los métodos de Kimball, Inmon y Data Vault. Este documento resume los enfoques de Inmon y Kimball, sus características, ventajas y desventajas.
Enfoques de Modelado de Datos
1. Enfoque de Inmon
- Definición: Bill Inmon, conocido como el padre del almacén de datos, define un almacén de datos como una recopilación de datos orientada a temas, integrada, no volátil y variable en el tiempo.
- Características:
- Granularidad: Contiene datos corporativos granulares.
- Orientación Temática: Organiza datos en áreas temáticas del negocio (ej. productos, pedidos, clientes).
-
Normalización: Los datos se modelan en una forma altamente normalizada.
-
Proceso:
- Consolidar datos de múltiples fuentes.
- Almacenar en un almacén de datos normalizado.
-
Entregar datos a través de mercados de datos específicos del departamento.
-
Ventajas:
- Reduce la duplicación de datos.
- Mejora la integridad y coherencia de los datos.
-
Proporciona una única fuente de verdad.
-
Desventajas:
- Puede ser más lento en la entrega de datos específicos del departamento.
2. Enfoque de Kimball
- Definición: Ralph Kimball propone un enfoque que permite modelar y ofrecer análisis específicos del departamento directamente en el almacén de datos.
- Características:
- Modelado Rápido: Utiliza esquemas en estrella o variantes similares.
-
Integración de Mercados de Datos: Los mercados de datos se incorporan en la arquitectura del almacén.
-
Proceso:
- Ingerir datos de sistemas de origen.
- Modelar datos en esquemas de estrella.
-
Almacenar directamente en el almacén de datos.
-
Ventajas:
- Permite iteraciones más rápidas.
-
Facilita la entrega de información práctica y rápida.
-
Desventajas:
- Posibles problemas de integridad de datos debido a la redundancia.
Comparación de Enfoques
| Característica |
Enfoque de Inmon |
Enfoque de Kimball |
| Normalización |
Alta (tercera forma normal) |
Baja (esquemas en estrella) |
| Velocidad de Entrega |
Más lento |
Más rápido |
| Integridad de Datos |
Alta (menos duplicación) |
Puede ser baja (más redundancia) |
| Uso de Datos |
Única fuente de verdad |
Análisis específicos del departamento |
Conclusiones
- Elección del Enfoque:
- Si la calidad de los datos es prioritaria y los requisitos analíticos no están definidos, se recomienda el enfoque de Inmon.
-
Si se prioriza la rapidez en la obtención de información, el enfoque de Kimball es más adecuado.
-
Aplicación de Enfoques: Dependiendo de la organización, puede ser necesario aplicar ambos enfoques para diferentes almacenes de datos.
Próximos Pasos
En el siguiente video, se explorará cómo convertir un modelo de datos normalizado en un esquema en estrella, lo que permitirá una mejor comprensión de la gestión de datos en diferentes formatos.
Transformación de Datos: De Esquema Normalizado a Esquema en Estrella
Descripción
En este documento se aborda el proceso de transformación de datos desde un esquema normalizado a un esquema en estrella, un modelo comúnmente utilizado en la ingeniería de datos para facilitar el análisis y la consulta de datos. Se describen los pasos necesarios para llevar a cabo esta transformación, así como ejemplos prácticos y consultas SQL.
Contenido
1. Introducción
Como ingeniero de datos, es común necesitar transformar datos almacenados en un esquema normalizado a un esquema en estrella. Este proceso facilita la consulta de datos antes de cargarlos en mercados de datos específicos del departamento.
2. Esquema Normalizado
El esquema normalizado se compone de varias tablas, que en este caso son:
- Clientes
- Pedidos
- Artículos
- Características de los Artículos
- Tiendas
Diagrama de Tablas Normalizadas:
| Tabla |
Descripción |
| Clientes |
Información sobre los clientes |
| Pedidos |
Detalles de los pedidos realizados |
| Artículos |
Información sobre los artículos |
| Características |
Detalles de cada artículo |
| Tiendas |
Información sobre las tiendas |
3. Proceso de Transformación a Esquema en Estrella
Para transformar los datos, se siguen los cuatro pasos propuestos por Kimball:
- Comprender las Necesidades de la Empresa
- Identificar eventos o procesos a modelar.
-
Declarar el grano (nivel de detalle) de la tabla de hechos.
-
Identificar Medidas y Dimensiones
- Determinar las medidas asociadas al grano.
-
Elegir dimensiones que proporcionen contexto.
-
Definir el Grano
-
Se recomienda un grano atómico, como un producto individual en una transacción de venta.
-
Seleccionar Dimensiones
- Dimensiones a considerar:
- Tiendas
- Características de los Artículos
- Fechas
4. Creación de Tablas de Dimensiones
A continuación, se presentan las consultas SQL para crear las tablas de dimensiones.
4.1 Tabla de Dimensiones de Tiendas
CREATE TABLE dimensiones_tiendas AS
SELECT
store_id,
store_name,
store_city,
store_zipcode,
MD5(store_id) AS store_key
FROM
stores;
4.2 Tabla de Dimensiones de Artículos
CREATE TABLE dimensiones_articulos AS
SELECT
SKU,
item_name,
brand,
MD5(SKU) AS item_key
FROM
items;
4.3 Tabla de Dimensiones de Fechas
CREATE TABLE dimensiones_fechas AS
SELECT
generate_series('2020-01-01'::date, '2025-01-01'::date, '1 day'::interval) AS fecha,
EXTRACT(DOW FROM fecha) AS dia_semana,
EXTRACT(MONTH FROM fecha) AS mes,
EXTRACT(QUARTER FROM fecha) AS trimestre,
EXTRACT(YEAR FROM fecha) AS año
5. Creación de la Tabla de Hechos
La tabla de hechos debe representar un producto dentro de una transacción de venta. Debe incluir las claves externas que conectan con las tablas de dimensiones.
CREATE TABLE hechos_pedidos AS
SELECT
MD5(CONCAT(order_id, item_line_number)) AS fact_order_key,
order_id,
item_line_number,
store_key,
item_key,
date_key,
cantidad,
precio
FROM
order_items
JOIN
orders ON order_items.order_id = orders.order_id;
6. Relaciones entre Tablas
- Relación entre Tabla de Hechos y Dimensiones:
- Uno a Uno: Cada fila de la tabla de hechos se asocia a una fila de la tabla de dimensiones.
- Uno a Varios: Una dimensión puede asociarse a múltiples filas en la tabla de hechos.
7. Herramientas de Transformación
Para realizar transformaciones, se pueden utilizar herramientas como:
- DBT: Facilita el modelado de datos y genera código SQL automáticamente.
- AWS Glue: Permite unir datos de diferentes fuentes y aplicar transformaciones.
8. Conclusión
La transformación de un modelo normalizado a un esquema en estrella es un proceso esencial en la ingeniería de datos que permite un análisis más eficiente. Se recomienda practicar con ejemplos adicionales y explorar herramientas como DBT y AWS Glue para mejorar las habilidades en modelado de datos.
Este documento proporciona una guía clara sobre cómo llevar a cabo la transformación de datos, incluyendo ejemplos prácticos y consultas SQL que pueden ser utilizadas en un entorno real.
Resumen del Curso sobre dbt con Drew Banin
Descripción
En esta sesión, Drew Banin, cofundador de dbt Labs, explica qué es dbt (data build tool), su importancia en la gestión de datos y cómo ha transformado el trabajo de analistas y ingenieros de datos. A lo largo de la conversación, se abordan las mejores prácticas para utilizar dbt y la relevancia de la comunidad en torno a esta herramienta.
¿Qué es dbt?
- Definición: dbt es una herramienta que aplica reglas de lógica empresarial a los datos para convertirlos en información útil.
- Funcionalidad: Permite codificar reglas en SQL y Python, gestionando versiones y cambios en la lógica a lo largo del tiempo.
- Transformación de datos: dbt transforma los datos en su lugar dentro del almacén de datos, lo que mejora la seguridad y gobernanza.
Contexto Antes de dbt
- Flujo de trabajo caótico: Antes de dbt, los analistas y ingenieros de datos trabajaban con scripts SQL desorganizados y sin un registro de auditoría.
- Problemas comunes:
- Scripts SQL aleatorios almacenados localmente.
- Falta de control de versiones y documentación.
- Dificultades para colaborar entre equipos.
Evolución con dbt
- Ingenieros de análisis: La introducción de dbt ha permitido la creación de un nuevo rol, el ingeniero de análisis, que actúa como puente entre el contexto empresarial y la tecnología.
- Mejoras en el flujo de trabajo: Con dbt, los equipos pueden gestionar mejor sus versiones de código y colaborar de manera más efectiva.
Recomendaciones para Nuevos Usuarios de dbt
- Comenzar con lo básico: Crear un archivo SQL y ejecutar
dbt build.
- Documentación y pruebas: A medida que se avanza, es importante documentar y probar los datos.
- Uso de guías de estilo: Implementar convenciones para mantener el código organizado y legible.
Mejores Prácticas en dbt
- Modularidad: Mantener el código modular y evitar hacer demasiadas cosas en un solo archivo.
- Pruebas unitarias: Implementar pruebas para asegurar la calidad del código.
- Control de cambios: Utilizar herramientas de control de versiones como Git para gestionar el código.
Importancia de la Comunidad
- Conexiones: dbt tiene una comunidad activa que organiza eventos y conferencias, como la conferencia comunitaria Coalesce.
- Recursos: Se recomienda unirse a la comunidad de Slack de dbt para conectarse con otros profesionales y compartir experiencias.
Conclusión
Drew Banin enfatiza la importancia de entender los fundamentos de la ingeniería de software y cómo estos se aplican en el uso de dbt. La planificación adecuada y la colaboración son clave para el éxito en la gestión de datos.
Tabla de Comparación: Antes y Después de dbt
| Aspecto |
Antes de dbt |
Después de dbt |
| Organización de scripts |
Caótica, scripts aleatorios |
Estructurada, control de versiones |
| Colaboración |
Difícil, falta de documentación |
Mejorada, comunidad activa |
| Pruebas |
No se realizaban |
Pruebas unitarias implementadas |
| Seguridad |
Datos expuestos |
Datos transformados en su lugar |
Lista de Recursos
Este resumen proporciona una visión general de la conversación sobre dbt y su impacto en la gestión de datos, así como recomendaciones y mejores prácticas para su uso.
Enfoques de Modelado de Datos: Inmon, Kimball y Data Vault
Descripción
Este documento resume los enfoques de modelado de datos más populares en el contexto de los almacenes de datos: Inmon, Kimball y Data Vault. Se profundiza en el modelo Data Vault, su estructura y cómo se implementa en un entorno empresarial.
Enfoques de Modelado
1. Inmon
- Se centra en la lógica empresarial del almacén de datos.
- Propone una estructura más rígida y orientada a la normalización.
2. Kimball
- También se enfoca en la lógica empresarial, pero promueve un enfoque más dimensional.
- Utiliza esquemas estelares y copos de nieve para la organización de datos.
3. Data Vault
- Introducido por Dan Linstedt en la década de 1990.
- Se enfoca en separar los aspectos estructurales de los datos de los atributos descriptivos.
- Utiliza tablas independientes para representar conceptos empresariales, relaciones y atributos.
Arquitectura de Data Vault
La arquitectura de Data Vault consta de tres capas:
| Capa |
Descripción |
| Área de Almacenamiento |
Almacena datos de origen en una capa provisional sin alterar los datos. |
| Almacenamiento Empresarial |
Modela los datos utilizando centros, enlaces y satélites. |
| Capa de Entrega de Información |
Carga datos en mercados de datos descendentes, aplicando operaciones como agregación y agrupación. |
Componentes del Modelo Data Vault
Tipos de Tablas
- Centros (Hubs)
- Almacenan claves comerciales únicas.
-
Representan conceptos empresariales centrales (ej. clientes, productos).
-
Enlaces (Links)
- Conectan dos o más centros.
-
Representan relaciones o eventos entre conceptos empresariales.
-
Satélites (Satellites)
- Contienen atributos descriptivos de los centros y enlaces.
- Proporcionan contexto a los datos.
Ejemplo de Comercio Electrónico
Para modelar un sistema de comercio electrónico, se pueden definir los siguientes centros y enlaces:
| Centro |
Clave Empresarial |
| Clientes |
Identificador de Cliente |
| Pedidos |
Identificador de Pedido |
| Tiendas |
Identificador de Tienda |
| Artículos |
Identificador de Artículo |
Modelado de Enlaces
- Enlace Cliente-Pedido: Conecta el centro de clientes con el centro de pedidos.
- Enlace Pedido-Artículo: Conecta el centro de pedidos con el centro de artículos.
- Enlace Pedido-Tienda: Conecta el centro de pedidos con el centro de tiendas.
Creación de Tablas Satélites
- Tabla Satélite de Clientes: Contiene atributos como nombre y código postal.
- Tabla Satélite de Pedidos: Contiene detalles sobre los pedidos realizados.
- Tabla Satélite de Artículos: Proporciona información sobre los artículos pedidos.
Ventajas de Data Vault
- Diseño flexible que permite adaptarse a cambios en la estructura de datos.
- Facilita el rastreo de datos desde el almacén hasta su origen.
- Permite la integración de datos de múltiples sistemas de origen sin reestructuración.
Conclusión
Data Vault ofrece un enfoque innovador y flexible para el modelado de datos en almacenes de datos, permitiendo a las empresas adaptarse a cambios en sus requisitos. Para profundizar en estos enfoques, se recomienda consultar libros de los creadores de cada modelo.
Recursos
- Libros recomendados sobre Inmon, Kimball y Data Vault para una comprensión más profunda del modelado de datos.
Próximo Tema
En el siguiente video, se explorará un enfoque conocido como "gran tabla" para modelar datos en casos de uso analíticos.
Enfoques de Modelado de Datos: Kimball, Inmon y Tablas Anchas
Descripción
En este documento se resumen los enfoques de modelado de datos analizados en el curso, centrándose en los métodos de Kimball e Inmon, así como en el uso de tablas anchas. Se discuten las ventajas y desventajas de cada enfoque, así como su aplicabilidad en el contexto actual de almacenamiento en la nube.
Enfoques de Modelado
1. Kimball e Inmon
- Kimball: Se enfoca en un modelo dimensional, donde los datos se organizan en hechos y dimensiones.
- Inmon: Propone un enfoque más estructurado y normalizado, donde los datos se almacenan en un modelo relacional.
2. Tablas Anchas
- Definición: Una tabla ancha es una tabla desnormalizada que agrupa todos los datos en una sola estructura con muchas columnas.
- Características:
- Puede tener miles de columnas.
- Alta flexibilidad y desnormalización.
- Permite almacenar datos anidados sin preocuparse por el peso óptimo en almacenamiento.
Ejemplo de Tabla Ancha
| ID Pedido |
Cliente |
Producto |
Cantidad |
Precio |
Fecha |
| 1 |
Juan |
Laptop |
1 |
1000 |
2023-01-01 |
| 2 |
Ana |
Mouse |
2 |
20 |
2023-01-02 |
| 3 |
Pedro |
Teclado |
1 |
50 |
2023-01-03 |
Ventajas de las Tablas Anchas
- Rendimiento: Consultas más rápidas al evitar uniones complejas.
- Almacenamiento en Nube: Bajo costo de almacenamiento permite el uso de tablas anchas.
- Flexibilidad: Ideal para datos que requieren estructuras menos rígidas.
Desventajas de las Tablas Anchas
- Pérdida de Lógica Empresarial: Al combinar datos, puede perderse la lógica detrás de los análisis.
- Estructuras Complejas: Requiere el uso de estructuras de datos como matrices, que pueden tener un rendimiento deficiente en actualizaciones.
Consideraciones Finales
- No existe un enfoque único para todos los casos. Es crucial evaluar:
- Flexibilidad
- Integridad de los Datos
- Facilidad de Uso
Práctica
En el próximo laboratorio, se practicará cómo transformar datos normalizados en un esquema estelar y en una tabla ancha. Además, se incluirá una demostración de dbt y un ejercicio para practicar consultas SQL.
Conclusión
La elección del enfoque de modelado de datos debe basarse en las necesidades específicas del caso de uso, considerando las ventajas y desventajas de cada método.
Modelado de Datos con dbt en un Esquema de Estrella
Descripción
En este documento se presenta un resumen del proceso de modelado de datos utilizando dbt (data build tool) para transformar datos normalizados en un esquema de estrella. Se describen los pasos para configurar el entorno, crear un proyecto dbt y definir las tablas necesarias para el esquema de estrella.
Contenido
1. Introducción a dbt
- dbt permite modelar datos y crear esquemas de estrella a partir de datos normalizados.
- Se utilizará una base de datos PostgreSQL local con cinco tablas:
- Artículos de pedido
- Pedidos
- Clientes
- Artículos
- Tiendas
2. Configuración del Entorno
- Tipos de Entornos dbt:
- dbt Core: Herramienta de línea de comandos de código abierto.
- dbt Cloud: Entorno alojado con interfaz basada en navegador.
Pasos para la Configuración:
- Crear un entorno virtual y activarlo.
- Instalar
dbt core y el adaptador dbt-postgres.
- Crear un nuevo proyecto dbt con el comando
dbt init y especificar el nombre del proyecto (ej. dbt_tutorial).
3. Estructura del Proyecto dbt
Una vez creado el proyecto, se generarán las siguientes carpetas y archivos:
| Carpeta/Archivo |
Descripción |
models |
Contiene los archivos SQL para definir las tablas. |
analyses |
Sentencias SQL para exploración. |
macros |
Código SQL reutilizable. |
seeds |
Archivos CSV para cargar en la base de datos. |
snapshots |
Registro de cambios en las tablas. |
tests |
Sentencias SQL para pruebas específicas. |
dbt_project.yml |
Archivo de configuración del proyecto. |
4. Configuración del Archivo dbt_project.yml
- Especificar el nombre y la versión del proyecto.
- Definir el perfil para la conexión a la base de datos.
- Configurar directorios y opciones de limpieza.
5. Creación del Archivo de Perfiles
- Crear un archivo
profiles.yml para especificar la conexión a la base de datos PostgreSQL.
- Definir un perfil con múltiples objetivos (ej. desarrollo y producción).
Ejemplo de Configuración de un Perfil:
tutorial_dbt:
outputs:
dev:
type: postgres
host: <host>
user: <usuario>
password: <contraseña>
port: <puerto>
dbname: <nombre_base_datos>
target: dev
6. Verificación de la Conexión
- Ejecutar el comando
dbt debug en la terminal para verificar la conexión a la base de datos.
- Mover el archivo de perfiles a la carpeta oculta
.dbt para mayor seguridad.
Conclusión
Se ha configurado exitosamente un entorno dbt y se ha establecido la conexión a una base de datos PostgreSQL local. En el siguiente video, se procederá a crear los archivos SQL necesarios para definir las tablas en el esquema de estrella.
Resumen del Curso: Creación de Consultas SQL en DBT
Descripción
En este curso, se aborda el proceso de creación de consultas SQL para tablas en una base de datos Postgres utilizando DBT (Data Build Tool). Se explican los pasos para estructurar los modelos de datos en un esquema en estrella, así como la documentación y pruebas necesarias para asegurar la calidad de los datos.
Contenido
1. Estructura de Modelos
- Eliminar subdirectorio de ejemplo: Se comienza por limpiar la estructura de directorios.
- Crear subdirectorio: Se crea un subdirectorio llamado
star_schema_models para organizar los modelos.
2. Creación de Archivos SQL
- Archivo
dim_stores.sql:
- Se escribe la consulta SQL para la tabla de dimensiones de tiendas.
- Se utiliza el prefijo
staging para el nombre de la tabla.
3. Documentación con YAML
- Archivo
schema.yml:
- Se crea para documentar el esquema.
- Se especifican los modelos clave, nombres de tablas y columnas.
- Se añaden descripciones para cada columna y se definen pruebas genéricas.
Ejemplo de Descripción de Columna
columns:
- name: store_key
description: "La clave de tienda es la clave principal de la tabla dim_stores."
tests:
- unique
- not_null
4. Configuración de DBT
- Actualizar archivo YAML del proyecto:
- Se eliminan configuraciones de ejemplo y se especifica el subdirectorio creado.
- Se define la clave
materialized para asegurar que las tablas se creen en la base de datos.
5. Ejecución de DBT
- Comando para crear tablas:
- Se utiliza
dbt run en la terminal.
- Se pueden seleccionar modelos específicos con las opciones
-S o --select.
6. Verificación de Tablas
- Conexión a la base de datos:
- Se comprueba que las tablas se han creado correctamente en el esquema en estrella.
- Revisión de filas:
- Se examinan las filas de las tablas de hechos.
7. Validación de Datos
- Ejecutar pruebas:
- Se valida que todas las pruebas se completen correctamente.
8. Funciones Avanzadas
- Generación de claves sustitutas:
- Se utiliza una función de utilidad en lugar de hash MD5.
- Uso de paquetes de fechas:
- Se genera una tabla de dimensiones de fechas completa.
9. Práctica
- Implementación de otro esquema estelar:
- Se anima a los participantes a realizar un laboratorio práctico.
- Cuestionario de práctica:
- Se recomienda completar un cuestionario para familiarizarse con las tablas normalizadas.
Conclusión
Este curso proporciona una guía completa sobre cómo estructurar y documentar modelos de datos en DBT, asegurando la calidad y la integridad de los datos a través de pruebas y validaciones. Se invita a los participantes a aplicar lo aprendido en un entorno práctico.