Lección 1Diseño de modelo dimensional para analítica: mapeo de hechos y dimensionesExplora modelado dimensional para analítica. Mapearás procesos de negocio a tablas de hechos, definirás dimensiones y granularidad, manejarás relaciones muchos-a-muchos y diseñarás esquemas que soporten BI self-service y consultas performantes.
Identificación de procesos de negocio y hechosElección de granularidad de tablas de hechosDiseño de dimensiones conformadasManejo de relaciones muchos-a-muchosCompromisos star vs snowflakeLección 2fact_user_activity: campos de esquema (event_id, user_id, course_id, event_type, timestamp, duration, device, session_id, ingestion_metadata)Modela la tabla fact_user_activity para analítica comportamental. Definimos cada campo, elegimos granularidad de evento, capturamos sesiones y dispositivos, almacenamos metadatos de ingestión y soportamos reporting de funnels, engagement y retención.
Definición de granularidad a nivel de eventoModelado de event_type y taxonomíasAtribución de sesión y dispositivoUso de campos ingestion_metadataSoporte para funnels y retenciónLección 3Métricas derivadas y agregaciones: usuarios activos diarios (DAU), usuarios activos por curso, tasa de completación por país, ingresos por curso y cohorteAprende a construir métricas derivadas y agregaciones desde tablas de hechos. Calculamos DAU, actividad por curso, tasas de completación e ingresos por cohorte, enfatizando definiciones reproducibles y patrones de materialización eficientes.
Definición consistente de DAU y MAUMétricas de usuarios activos por cursoTasa de completación por segmento y paísIngresos por curso y cohorteMaterialización de agregados en almacenesLección 4Manejo de dimensiones de cambio lento (SCD Tipo 1/2) y time-travel/versionadoAprende a gestionar dimensiones de cambio lento y time-travel. Comparamos SCD Tipo 1 y Tipo 2, diseñamos rangos de fechas efectivas, almacenamos metadatos de versión y usamos características de almacén para consultar estados históricos de dimensiones.
Cuándo usar SCD Tipo 1 vs Tipo 2Fechas efectivas y flags actualesImplementación SCD en SQL y dbtUso de características time-travel de almacénPruebas de corrección histórica de dimensionesLección 5Estrategias de frescura de datos y ventana temporal para KPIs near-real-timeDiseña estrategias de frescura para KPIs near-real-time. Cubrimos presupuestos de latencia, watermarking, ventana temporal para métricas streaming, manejo de datos tardíos y monitoreo de frescura para mantener dashboards fiables y accionables.
Definición de objetivos de frescura y latenciaWatermarks y manejo de datos tardíosVentanas tumbling, sliding y de sesiónCómputo de KPIs near-real-timeMonitoreo y alertas sobre frescuraLección 6Pasos de limpieza de datos: parsing, coerción de tipos, normalización de timestamps, desduplicación, enriquecimientoAprende a limpiar sistemáticamente datos raw antes del modelado. Cubrimos parsing de campos semi-estructurados, imposición de tipos de datos, normalización de timestamps entre zonas horarias, desduplicación de registros y enriquecimiento de datasets con datos de referencia y lookup.
Parsing de JSON, CSV y campos anidadosCoerción de tipos y validación de esquemasNormalización de zona horaria y estándaresEstrategias de desduplicación de registrosJoins de datos de referencia para enriquecimientoLección 7dim_course: campos de esquema (course_id, title, author_id, category, price, published_date)Diseña la dimensión dim_course para soportar analítica de cursos. Definimos cada campo, discutimos claves surrogate, manejamos cambios de precios y categorías, y modelamos fechas de publicación para reporting histórico y de catálogo preciso.
Significado de negocio de cada campo dim_courseClaves naturales vs surrogate course_idManejo de cambios de precio y categoría de cursoModelado de estados publicados y no publicadosIndexación dim_course para consultas BILección 8dim_user: campos de esquema (user_id, email_hash, signup_date, country, subscription_status, cohort)Diseña la dimensión dim_user para analítica y segmentación de usuarios. Definimos cada campo, hasheamos datos sensibles, rastreamos signup y cohortes, y modelamos estado de suscripción para soportar reporting de crecimiento, retención y monetización.
Identificadores de usuario y claves surrogateHashing de email y controles de privacidadModelado de signup_date y cohortesCiclo de vida de subscription_statusAtributos de país y localizaciónLección 9Patrones de transformación: ELT vs ETL, transformaciones incrementales, transformaciones batch vs streamComprende patrones fundamentales de transformación y cuándo aplicarlos. Comparamos ETL y ELT, diseñamos tuberías incrementales y contrastamos transformaciones batch y streaming, enfocándonos en coste, latencia, observabilidad y compromisos operativos.
Comparación de arquitecturas ETL y ELTDiseño de transformaciones incrementalesPros y contras del procesamiento batchPatrones streaming y micro-batchElección de patrones por SLA y costeLección 10Herramientas para transformaciones: dbt, Spark/Databricks, Beam/Flink, frameworks de transformación basados en SQLExamina herramientas clave de transformación y cómo elegir entre ellas. Comparamos dbt, Spark, Databricks, Beam, Flink y frameworks SQL, enfocándonos en escalabilidad, orquestación, testing e integración con stacks de datos modernos.
dbt para transformaciones SQL-céntricasSpark y Databricks para big dataBeam y Flink para trabajos streamingFrameworks de transformación basados en SQLCriterios de selección de herramientas y compromisosLección 11fact_payments: campos de esquema (payment_id, user_id, course_id, amount, currency, payment_method, status, timestamp, invoice_id)Modela la tabla fact_payments para analítica de ingresos. Definimos cada campo, discutimos ingestión idempotente, manejo de divisas, estado de pago, reembolsos y cómo enlazar pagos a usuarios, cursos e invoices para reporting downstream.
Granularidad y clave primaria de fact_paymentsModelado de estado y ciclo de vida de pagoManejo de cantidades multi-divisaEnlazado de pagos a usuarios y cursosCaptura de reembolsos y chargebacks