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

Temas Clave

  1. Modelado de Datos
  2. Captura de datos del mundo real.
  3. Integración de diferentes fuentes de datos (por ejemplo, encuestas, adquisiciones de empresas).
  4. Diseño de bases de datos que reflejen la complejidad del mundo real.

  5. Transformación de Datos

  6. Conversión de datos sin procesar en información útil.
  7. Preparación de datos para modelos de aprendizaje automático.

  8. Servicio de Datos

  9. Disponibilidad de modelos de aprendizaje automático para usuarios finales.
  10. Desafíos en la implementación de modelos a escala.
  11. Manejo de la deriva conceptual basada en datos.

Desafíos en la Implementación

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

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

2. Importancia del Modelado de Datos

3. Comunicación y Estándares

4. Errores Comunes en el Modelado de Datos

5. Enfoque en el Modelado de Datos

6. Niveles de Modelado de Datos

7. Esquemas de Modelado

8. Técnicas de Modelado

9. Plan de Curso

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

  1. Modelo Conceptual
  2. Descripción de entidades comerciales de alto nivel.
  3. Identificación de relaciones entre entidades y atributos de cada una.
  4. Reflejo de la lógica y reglas empresariales.
  5. 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. |

  1. Modelo Lógico
  2. Adición de detalles sobre la implementación del modelo conceptual.
  3. Información sobre tipos de columnas de cada tabla.
  4. Mapeo de claves principales y externas.

  5. Modelo Físico

  6. Selección del Sistema de Gestión de Bases de Datos (DBMS) específico.
  7. Definición de cómo se implementará el modelo lógico en el sistema.
  8. Detalles de configuración sobre el almacenamiento de datos (disco, RAM, híbrido).
  9. 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:

Ejemplo de Normalización

Se presenta un ejemplo de pedidos de venta para ilustrar la normalización:

  1. Modelo menos normalizado: Una tabla gigante que contiene todos los datos de pedidos, lo que resulta en redundancia.
  2. 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:

  1. Primera Forma Normal (1NF):
  2. Cada columna debe tener un valor único.
  3. No se permiten datos anidados.
  4. Se establece una clave principal única.

  5. Segunda Forma Normal (2NF):

  6. Cumple con 1NF.
  7. Elimina dependencias parciales.

  8. Tercera Forma Normal (3NF):

  9. Cumple con 2NF.
  10. Elimina dependencias transitivas.

Proceso de Normalización

A continuación, se describe el proceso de normalización utilizando el ejemplo de pedidos de venta:

  1. Desnormalización: Tabla con datos redundantes y anidados.
  2. Transformación a 1NF: Desagrupar datos anidados y establecer una clave principal única.
  3. Transformación a 2NF: Dividir la tabla en dos para eliminar dependencias parciales.
  4. Transformación a 3NF: Crear tablas adicionales para eliminar dependencias transitivas.

Consideraciones Finales

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

Grano de la Tabla de Hechos

Características

Tablas de Dimensiones

Características

Relación entre Tablas de Hechos y Dimensiones

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

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

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

2. Enfoque de Kimball

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

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:

  1. Comprender las Necesidades de la Empresa
  2. Identificar eventos o procesos a modelar.
  3. Declarar el grano (nivel de detalle) de la tabla de hechos.

  4. Identificar Medidas y Dimensiones

  5. Determinar las medidas asociadas al grano.
  6. Elegir dimensiones que proporcionen contexto.

  7. Definir el Grano

  8. Se recomienda un grano atómico, como un producto individual en una transacción de venta.

  9. Seleccionar Dimensiones

  10. Dimensiones a considerar:

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

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?

Contexto Antes de dbt

Evolución con dbt

Recomendaciones para Nuevos Usuarios de dbt

  1. Comenzar con lo básico: Crear un archivo SQL y ejecutar dbt build.
  2. Documentación y pruebas: A medida que se avanza, es importante documentar y probar los datos.
  3. Uso de guías de estilo: Implementar convenciones para mantener el código organizado y legible.

Mejores Prácticas en dbt

Importancia de la Comunidad

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

2. Kimball

3. Data Vault

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

  1. Centros (Hubs)
  2. Almacenan claves comerciales únicas.
  3. Representan conceptos empresariales centrales (ej. clientes, productos).

  4. Enlaces (Links)

  5. Conectan dos o más centros.
  6. Representan relaciones o eventos entre conceptos empresariales.

  7. Satélites (Satellites)

  8. Contienen atributos descriptivos de los centros y enlaces.
  9. 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

Creación de Tablas Satélites

Ventajas de Data Vault

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

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

2. Tablas Anchas

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

Desventajas de las Tablas Anchas

Consideraciones Finales

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

2. Configuración del Entorno

Pasos para la Configuración:

  1. Crear un entorno virtual y activarlo.
  2. Instalar dbt core y el adaptador dbt-postgres.
  3. 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

5. Creación del Archivo de Perfiles

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

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

2. Creación de Archivos SQL

3. Documentación con YAML

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

5. Ejecución de DBT

6. Verificación de Tablas

7. Validación de Datos

8. Funciones Avanzadas

9. Práctica

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.