Diseño de aplicaciones con uso intensivo de datos, 2nd Edición
by Martin Kleppmann, Chris Riccomini
capítulo 12. Procesamiento de flujos
Se ha comprobado que un sistema complejo que funciona siempre ha evolucionado a partir de un sistema simple que funciona. La proposición inversa también parece ser cierta: un sistema complejo diseñado desde cero nunca funciona y no se puede hacer que funcione.
John Gall, Systemantics (1975)
En Capítulo 11 hablamos del procesamiento por lotes, técnicas que leen un conjunto de archivos como entrada y producen un nuevo conjunto de archivos de salida. La salida es una forma de datos derivados, es decir, un conjunto de datos que se puede volver a crear ejecutando el proceso por lotes de nuevo si es necesario. Vimos cómo esta idea sencilla pero potente se puede utilizar para crear índices de búsqueda, sistemas de recomendación, análisis y mucho más.
Sin embargo, una gran suposición se mantuvo a lo largo de Capítulo 11: a saber, que la entrada es limitada, de un tamaño conocido y finito, por lo que el proceso por lotes sabe cuándo ha terminado de leer su entrada. Por ejemplo, la operación de clasificación, que es fundamental en MapReduce, debe leer toda la entrada antes de poder empezar a producir la salida, ya que el último registro de entrada podría ser el que tenga la clave más baja y, por lo tanto, debe ser el primer registro de salida, por lo que no es posible empezar la salida antes.
En realidad, muchos datos no están limitados porque llegan gradualmente a lo largo del tiempo. Tus usuarios produjeron datos ayer y hoy, y seguirán produciendo ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access