GuíaIntermedio

Guía de Streaming con Kafka y Flink

Esta guía empieza probando, con código, el error más caro y mejor documentado del streaming: recalcular en Kafka+Flink el mismo embudo de sesiones que Kiosko ya calculó en batch — y llegar exactamente al mismo `35.3%`, con más infraestructura y cero valor nuevo. A partir de esa prueba, la guía traza la línea real: streaming se justifica en los problemas que el batch, por diseño, no puede resolver, sin importar cuánto lo optimices. Con Apache Kafka (4.x, modo KRaft, $0 local) y Apache Flink/PyFlink corriendo de verdad en Docker, resuelves cuatro casos concretos con Kiosko: detectar en minutos que una tienda dejó de reportar (el caso estrella, contra un DAG diario que no se enteraría hasta mañana), capturar un cambio de precio directo del write-ahead log de Postgres con Debezium (CDC) en vez de declararlo a mano en Python, construir ventanas de tiempo-evento con watermarks sobre un flujo continuo, y mantener estado incremental sin re-sumar el historial completo en cada corrida. La guía es honesta sobre el hueco de mercado de Flink y responde con evidencia nueva (prima salarial de Kafka, ~33% de vacantes senior de streaming en el Reino Unido) sin exagerar el rol de Flink más allá de lo que Kiosko necesita de verdad.

64
lecciones
8
módulos
Inglés · Español
disponible en
certificado
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Reproducir en Kafka+Flink el mismo embudo `page_view → add_to_cart → purchase` que un pipeline batch ya calculó, y verificar que da el mismo resultado — la prueba empírica de cuándo streaming NO agrega valor
  • Instalar Kafka en modo KRaft con Docker (sin ZooKeeper) y PyFlink localmente, $0, sin cuenta de nube
  • Explicar topics, particiones y offsets como la unidad real de orden y paralelismo, y elegir un cliente Python de Kafka con criterio
  • Construir un productor y un consumidor deterministas y finitos que convierten archivos fijos de órdenes en un stream real, verificando el mismo total conocido
  • Distinguir tiempo de procesamiento de tiempo-evento, y usar watermarks para cerrar ventanas tumbling de forma determinista sobre `order_ts`
  • Contrastar una ventana tumbling (recalculable) con estado incremental con clave (un total corriente que nunca vuelve a sumar el historial completo)
  • Detectar en vivo, con una ventana de sesión que se cierra por silencio, que una tienda dejó de reportar — y cuantificar el contraste en minutos contra un DAG diario
  • Capturar un `UPDATE` real de Postgres con Debezium (CDC) y aplicarlo con `upsert()` a una tabla Iceberg existente, cerrando el puente entre el sistema transaccional y el warehouse
  • Distinguir con criterio qué metadata de infraestructura (offsets, timestamps de Kafka/Debezium) no es reproducible, frente al contenido de negocio que sí lo es

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Data engineers que necesitan saber, con evidencia y no con moda, cuándo un problema requiere streaming de verdad y cuándo es batch disfrazado
  • Equipos evaluando Kafka para casos de uso donde la latencia SÍ es el producto (alertas operacionales, fraude, sincronización con un sistema transaccional)
  • Cualquiera preparándose para roles senior de ingeniería de datos donde Kafka/Flink ya aparecen como requisito duro, especialmente en fintech y logística
  • Data engineers que completaron `lakehouse-and-iceberg-guide` y quieren cerrar el hilo de CDC que esa guía dejó nombrado sin implementar

Requisitos y materiales

  • Python intermedio; comodidad con la línea de comandos y Docker/Docker Compose
  • Ideal haber completado `lakehouse-and-iceberg-guide` (la tabla `dim_product` en Iceberg que el módulo de CDC alimenta) y `dbt-analytics-engineering-guide` (el embudo de sesiones que el Módulo 1 recalcula)
  • Docker instalado y funcionando localmente (Kafka, y Postgres + Debezium solo en los módulos de CDC)

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!