Prólogo
Ser pionero en una nueva categoría de sistemas de software es el sueño de muchos ingenieros de software. Me siento muy afortunado por haber tenido la oportunidad de trabajar en ksqlDB desde el principio, incluso antes de que se llamara ksqlDB, y antes de que la categoría de bases de datos de streaming fuera generalmente conocida. Cuando oí por primera vez que Ralph y Hubert estaban escribiendo un libro dedicado a las bases de datos de streaming, me interesé de inmediato, como es natural.
¿Qué es una base de datos de streaming? Los sistemas de bases de datos tienen muchos sabores diferentes, desde las bases de datos relacionales tradicionales hasta las bases de datos XML, gráficas, de objetos, vectoriales y NoSQL. Muchas de ellas son bien conocidas y llevan establecidas muchas décadas. El streaming, o procesamiento de flujos, está mucho menos establecido, aunque ha experimentado un fuerte ritmo de adopción en la industria durante la última década, liderado por el auge de Apache Kafka como plataforma de streaming de facto.
Históricamente, el procesamiento de flujos se consideraba difícil, y sólo las grandes organizaciones con equipos dedicados de expertos en flujos podían dominarlo. Lo mismo ocurría con el procesamiento de datos y la informática hace 50 años, antes de que se inventaran el SQL y los sistemas de bases de datos relacionales para que los usuarios no técnicos pudieran trabajar con los datos almacenados en los sistemas informáticos. Ahora, SQL es la lingua franca del procesamiento de datos.
Las bases de datos de flujo son el siguiente paso en la evolución del procesamiento de flujos. Unifican técnicas bien establecidas de los sistemas de bases de datos con los nuevos paradigmas del mundo del flujo para simplificar el procesamiento de flujos y permitir a los usuarios no técnicos trabajar con datos en movimiento, de forma similar a lo que estamos acostumbrados cuando consultamos datos en reposo.
Los sistemas de bases de datos están diseñados para resolver problemas específicos. Las dos categorías principales de sistemas de bases de datos, procesamiento de transacciones en línea (OLTP) y procesamiento analítico en línea (OLAP), no se diseñaron originalmente para aplicaciones a escala de Internet.
Con el auge de los "grandes datos" a principios del tercer milenio, se inventaron nuevos sistemas como MapReduce para satisfacer las crecientes necesidades de escalado. Sin embargo, esos nuevos sistemas fueron desarrollados por expertos técnicos para expertos técnicos, y nos alejaron de la familiaridad de SQL.
Con la invención de los lagos de datos, el primer hijo de la era de los "grandes datos", se comprendió rápidamente que se necesitaba SQL para que los usuarios no técnicos pudieran aprovechar al máximo estas nuevas tecnologías. Como resultado, se reintrodujo SQL, y hoy en día, todos los lagos de datos modernos utilizan SQL para consultar los datos almacenados.
El flujo de datos, como segundo hijo de la era de los "grandes datos", siguió la misma tendencia: primero, los sistemas de procesamiento de flujo fueron construidos por expertos para expertos sin el apoyo de SQL. No pasó mucho tiempo hasta que se introdujeron las tecnologías SQL y de bases de datos para que los usuarios no técnicos pudieran utilizar estos nuevos sistemas de flujo. Este desarrollo condujo a las bases de datos de flujo y a las oleadas de innovación que siguieron.
A medida que más gente se dé cuenta de la importancia de las bases de datos de flujo en el mundo del procesamiento de flujos y la tecnología de bases de datos, necesitará orientación sobre cómo utilizarlas con sus sistemas actuales. El procesamiento en flujo, como dice este libro, añade un nuevo plano entre el plano operativo (OLTP) y el plano analítico (OLAP). El plano de streaming abre un rico campo de posibilidades para el futuro de los sistemas de datos.
En este libro, Hubert y Ralph discuten los tres puntos de partida diferentes para las bases de datos de streaming:
-
Sistemas de procesamiento de flujos que adoptan tecnologías de bases de datos y SQL
-
Sistemas de bases de datos ampliados para incorporar conceptos de streaming
-
Lagos de datos (que ya adoptaron SQL) que se amplían para utilizar capacidades de streaming
Estas tres dieron lugar a una variedad de bases de datos de flujo diferentes, cada una con sus propias limitaciones y optimizada para diferentes casos de uso. Esto plantea la pregunta: ¿qué sistema debemos utilizar para qué caso de uso, y cuáles son las compensaciones?
Siguiendo la predicción de de Jay Kreps de que "las empresas se están convirtiendo en software", tenemos ante nosotros un futuro apasionante en el procesamiento de datos, con las bases de datos de flujo como núcleo. Las simplificaciones que ofrecen las bases de datos de flujo y el SQL de flujo permiten que muchos más usuarios no técnicos adopten el procesamiento de flujo, lo que abrirá el camino para que el flujo se convierta en omnipresente.
Aún estamos al principio de la era de las bases de datos de streaming, y es emocionante observar las tendencias actuales y descubrir sistemas de nueva construcción.
Este libro constituye un excelente punto de partida para conocer todas estas innovaciones de vanguardia y el zoo de opciones, típico de los comienzos de una nueva era. Si quieres aprender aún más sobre las bases de datos de streaming, echa un vistazo al podcast de Hubert y Ralph en Spotify, llamado simplemente "Podcast de Hubert". Entrevistaron a muchas personas diferentes del espacio de streaming y datos para preparar este libro, y es una joya por sí mismo.
Get Bases de datos de streaming now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.