Última actualización
Apache Kafka es una popular plataforma de streaming de eventos de código abierto que se usa para recoger, procesar y almacenar flujos continuos de eventos. Kafka se usa habitualmente como middleware de mensajería, pero ofrece escalabilidad y redundancia que permiten a las aplicaciones distribuidas gestionar desde un solo evento al día hasta miles de millones por segundo. A diferencia de los sistemas de mensajería tradicionales, Kafka también es un sistema de almacenamiento duradero que guarda los registros en un registro ordenado que se puede leer y volver a leer de forma reproducible. Esto hace que Kafka sea un sistema común para distribuir cambios en bases de datos transaccionales que se pueden usar para reconstruir o materializar los datos en analíticas y otros sistemas. Este patrón a veces se denomina "event sourcing".
Por tanto, Kafka es importante tanto para los patrones de bus de eventos tradicionales, en los que las aplicaciones basadas en eventos se integran mediante middleware de mensajería, como para las arquitecturas de sindicación de datos (o "materialización heterogénea"). Esto permite reducir la latencia y los costes.
Descubre Google Cloud Managed Service para Apache Kafka para automatizar tu infraestructura de streaming y agilizar los flujos de trabajo de datos a IA.
Kafka analiza los datos de streaming y hace constar qué ha sucedido y cuándo con total exactitud Este registro se denomina "registro de solo adición". Se considera inmutable porque, aunque se le puede añadir información, no se puede modificar. Desde ahí, las aplicaciones pueden suscribirse al registro para acceder a los datos o publicar en él para añadir más datos en tiempo real.
Aunque el núcleo de "Kafka" suele referirse al sistema de almacenamiento de baja latencia, la plataforma de streaming incluye otros componentes importantes. En primer lugar, Kafka Connect es un sistema de integración que permite conectar de forma horizontalmente escalable muchos sistemas importantes. Esto incluye conectores de captura de datos de cambios (CDC), replicación de clúster a clúster (MirrorMaker) y la posibilidad de escribir datos en sistemas posteriores, como lakehouses (Apache Iceberg), lakes (archivos Avro o Parquet en el almacenamiento de objetos) y bases de datos como BigQuery. En segundo lugar, los proyectos de Kafka se envían con un conjunto de clientes potentes, incluidos clientes de línea de comandos administrativos para manipular clústeres y temas, así como bibliotecas de clientes de alto rendimiento para leer y escribir datos.
Tradicionalmente, el procesamiento de datos se ha gestionado con tareas por lotes periódicas que, primero, almacenaban los datos en bruto y, luego, se ejecutaban a intervalos arbitrarios. Por ejemplo, una empresa de retail puede esperar hasta el final del día para analizar los datos de ventas. Una de las limitaciones del procesamiento por lotes es que no se hace en tiempo real. Cada vez más organizaciones y científicos de datos quieren analizar los datos en tiempo real a medida que se generan para tomar decisiones empresariales oportunas y potenciar los modelos de IA en tiempo real. Aquí es donde entra en juego el streaming de eventos, que consiste en procesar de forma continua flujos infinitos de eventos a medida que se crean. De esta forma, se captura el valor de tiempo de los datos y se pueden crear aplicaciones basadas en inserciones que realicen acciones cada vez que suceda un hecho de interés. Para los científicos de datos, esto significa poder realizar ingeniería de características en tiempo real y ofrecer predicciones de baja latencia.
Aunque muchas empresas se centran en las estadísticas que generan los científicos de datos, los principales profesionales que utilizan Apache Kafka son los ingenieros de datos. Estos profesionales se encargan de crear los "conductos de datos" e integraciones esenciales que conectan las aplicaciones y bases de datos de una empresa.
Los ingenieros de datos usan Kafka para crear conexiones fiables en toda la pila tecnológica. Estas integraciones pueden adoptar varias formas:
En una empresa típica, el ingeniero de datos trabaja en estrecha colaboración con los equipos de aplicaciones para asegurarse de que los eventos de usuario, las transacciones empresariales y las actualizaciones de bases de datos se exportan a Kafka. Este proceso, conocido como sindicación de datos, hace que estos eventos estén disponibles para varios usuarios y sistemas de toda la organización al mismo tiempo.
Los ingenieros de datos escriben el código de los flujos de procesamiento que transforman los registros de aplicaciones sin procesar en formatos estructurados y de alta calidad. Esta transformación es esencial para los científicos de datos, que generalmente necesitan datos "limpios" almacenados en entornos consultables como data lakes, lakehouses o almacenes de datos en lugar de interactuar directamente con el flujo de Kafka sin procesar.
En el contexto de la ciencia de datos y la IA, el valor de Kafka reside principalmente en el acceso a los datos. Sirve como fuente exhaustiva de registros de aplicaciones y cambios en bases de datos. Aunque Kafka es conocido por su velocidad, para la mayoría de los flujos de trabajo de ciencia de datos, la amplitud y la fiabilidad de la fuente de datos son mucho más importantes que la entrega de baja latencia.
Los sistemas de IA se ejecutan con datos de entrenamiento de alta calidad y contexto durante la inferencia. Kafka suele ser fundamental para el entrenamiento, ya que recopila datos de entrenamiento de diversos sistemas de origen, desde registros de interacciones hasta cambios en bases de datos. En muchas organizaciones, se usa como un bus de eventos que agrega eventos de muchos servicios o simplemente como una ubicación de almacenamiento provisional para los registros de aplicaciones. Esto lo convierte en una fuente de datos natural y única para generar conjuntos de datos de entrenamiento. Como Kafka almacena los registros en una secuencia ordenada, también puede ser especialmente adecuado para los LLMs que operan en secuencias.
Kafka es esencial para muchas tareas de inferencia online. La capacidad de una aplicación o un agente para ofrecer una recomendación de producto, una respuesta de búsqueda o una petición relevantes depende de que se disponga del contexto más actualizado de un usuario. Como Kafka admite una comunicación escalable y de baja latencia, permite que un sistema de inferencia actualice el contexto del usuario con los últimos eventos en cuestión de decenas de milisegundos. Por ejemplo, si un usuario rechaza la última recomendación de canción en una aplicación de música o si el precio de una acción cambia en una aplicación financiera, un servicio de recomendaciones puede generar inmediatamente una sugerencia mejor teniendo en cuenta esta información.
Ecosistema de código abierto
El código fuente de Kafka está disponible sin coste y cuenta con una comunidad global que contribuye con una amplia gama de conectores, herramientas de monitorización y complementos.
Escalabilidad y rapidez
Kafka es una plataforma distribuida, lo que significa que el procesamiento se divide entre varias máquinas. Esto le permite escalar para gestionar grandes volúmenes de datos y, al mismo tiempo, mantener una latencia inferior a un milisegundo.
Alta disponibilidad
Como está distribuido, Kafka sigue siendo fiable incluso si fallan máquinas individuales, lo que lo hace adecuado para aplicaciones de misión crítica.
La configuración de clústeres de Kafka on-premise es notoriamente difícil, ya que los equipos tienen que aprovisionar máquinas, gestionar la seguridad y encargarse de los parches rutinarios. Con un servicio gestionado, un proveedor se encarga de la infraestructura subyacente, lo que te permite centrarte en crear aplicaciones. Esto es especialmente útil para los equipos de ciencia de datos que quieren centrarse en el desarrollo de modelos y en la obtención de información valiosa en lugar de en la gestión de la infraestructura.
Kafka permite procesar eventos de streaming por medio de cuatro unciones clave:
Empieza a crear en Google Cloud con 300 USD en crédito sin coste económico y más de 20 productos que siempre se ofrecen sin coste.