Desarrollo de un End-to-End ELT Pipeline para una Plataforma de Video Streaming

Table of Contents Link to heading

Arquitectura del Sistema Link to heading

Project Architecture Diagram

Puedes encontrar el código de este proyecto en GitHub. Link to heading

Descripción del Proyecto Link to heading

Este proyecto implementa un end-to-end ELT pipeline diseñado para analizar el rendimiento de una plataforma de video streaming utilizando datos sintéticos. El pipeline simula el comportamiento real de la plataforma a través de conjuntos de datos que representan usuarios, contenido y sesiones de visualización.

El objetivo principal fue diseñar e implementar un flujo de trabajo moderno de ingeniería de datos, que incluye:

  • Ingesta de datos desde fuentes heterogéneas
  • Integración de modelos de datos relacionales y NoSQL
  • Almacenamiento centralizado en un data warehouse
  • Transformaciones y modelado dimensional para análisis

El resultado final permite la generación de reportes analíticos y dashboards para obtener insights basados en datos sobre el comportamiento del usuario y el rendimiento del contenido.

Fuentes de Datos Link to heading

Se crearon tres conjuntos de datos sintéticos para simular una plataforma de video streaming:

  • users.csv
    Contiene información demográfica y de suscripción de los usuarios.
  • viewing_sessions.csv
    Registra información detallada de las sesiones de visualización, incluyendo tipo de dispositivo, duración de la sesión y calidad de transmisión.
  • content.json
    Contiene metadatos estructurados de películas y series de televisión.

Estrategia de Modelado y Almacenamiento de Datos Link to heading

Para reflejar un entorno realista multi-fuente:

  • MongoDB (NoSQL)

    • content.json
  • PostgreSQL (Relacional)

    • viewing_sessions.csv
    • users.csv

El pipeline ELT extrae datos de MongoDB y PostgreSQL y los carga en PostgreSQL como un Data Warehouse. El data warehouse está estructurado utilizando múltiples esquemas:

  • Esquema raw
    Almacena los datos ingeridos en un formato normalizado y alineado con la fuente.

  • Esquema trusted
    Contiene datos transformados y listos para análisis, modelados utilizando principios de diseño dimensional y creados con dbt.

ELT Pipeline y Orquestación Link to heading

El pipeline sigue un enfoque ELT (Extract, Load, Transform):

  1. Extract
    Los datos se extraen de los sistemas fuente MongoDB y PostgreSQL.

  2. Load
    Los datos crudos se cargan en el Data Warehouse de PostgreSQL bajo el esquema raw.

  3. Transform
    Se utiliza dbt para aplicar transformaciones, aplicar reglas de calidad de datos y crear un modelo dimensional en el esquema trusted.

El flujo de trabajo completo es orquestado por Apache Airflow, asegurando:

  • Gestión de dependencias entre tareas
  • Logging y observabilidad
  • Manejo de errores y reintentos
  • Ejecuciones idempotentes

Todos los componentes se ejecutan en un entorno Dockerizado para garantizar la consistencia y reproducibilidad.

DAG Overview Link to heading

Dag Diagram

El DAG de Airflow video_streaming_elt_pipeline consta de las siguientes tareas principales:

  • Create MongoDB Collections: Inicializa la base de datos fuente MongoDB.
  • Create PostgreSQL Tables: Inicializa la base de datos fuente PostgreSQL.
  • Load JSON to MongoDB: Carga content.json en MongoDB.
  • Load CSVs to PostgreSQL: Carga users.csv y viewing_sessions.csv en PostgreSQL.
  • Extract to Data Warehouse: Extrae datos de los sistemas fuente y los carga en el esquema raw del Data Warehouse de PostgreSQL.
  • Transform with dbt: Ejecuta los modelos de dbt para transformar los datos crudos en un modelo dimensional en el esquema trusted.

Dashboard Analítico Link to heading

Primera sección:

Power BI Dashboard Screenshot

Segunda sección:

Power BI Dashboard Screenshot

Un Power BI dashboard fue desarrollado sobre el modelo dimensional para visualizar indicadores clave de rendimiento (KPIs), incluyendo:

  • Distribución de datos demográficos y de suscripción de usuarios
  • Popularidad y engagement del contenido
  • Métricas de sesiones de visualización y patrones de uso

El dashboard permite la exploración interactiva del rendimiento de la plataforma y apoya la toma de decisiones basada en datos.

Herramientas y Tecnologías Link to heading

  • Base de Datos: PostgreSQL, MongoDB
  • Lenguaje de Programación: Python
  • Orquestación: Apache Airflow
  • Transformación de Datos: dbt
  • Visualización: Power BI