Construyendo Agentes de IA Empresariales con Flink SQL: Conectando LLMs a Datos Internos

2025-06-18

Este artículo explora la construcción de agentes de IA empresariales utilizando Flink SQL, conectando modelos de lenguaje grandes (LLMs) con datos y recursos internos. Para datos estructurados, la semántica de unión SQL de Flink SQL integra fácilmente datos de bases de datos externas con la entrada del LLM. Para datos no estructurados, el artículo propone la generación aumentada por recuperación (RAG), codificando datos en vectores almacenados en una base de datos vectorial, y luego consultando e integrando a través del soporte de tipo vectorial de Flink SQL. Utilizando el ejemplo de resumir artículos de investigación e incorporar investigaciones internas, el artículo demuestra la construcción de un sistema de agente de IA con dos trabajos Flink SQL: uno actualiza el almacén vectorial, el otro consulta e invoca el LLM. Finalmente, menciona el uso de funciones de tabla de procesos (PTFs) para integrar el estándar MCP de Anthropic para una construcción de agente de IA más flexible.

Leer más
Desarrollo

Stream vs. Batch: En realidad, se trata de Push vs. Pull

2025-05-18

El debate común "Stream vs. Batch" es engañoso. Muchos sistemas de streaming usan internamente procesamiento por lotes para mejorar el rendimiento, pero la verdadera distinción radica en la semántica de procesamiento de datos: los sistemas 'push' entregan datos en tiempo real, proporcionando una vista completa y actualizada; los sistemas 'pull' consultan datos periódicamente, perdiendo potencialmente actualizaciones y eliminaciones. Si bien 'push' es más complejo, su ventaja en tiempo real es convincente. Una vez que experimente la magia de la frescura de datos a nivel de segundos, no querrá volver atrás. En la práctica, ambos enfoques se complementan, con el procesamiento por lotes a menudo utilizado para retroalimentación en sistemas de streaming.

Leer más

El Futuro de Kafka: Más Allá de las Particiones, Hacia una Cola de Mensajes Más Potente

2025-04-25

Este artículo explora mejoras futuras para Kafka, centradas en ir más allá del acceso basado en particiones hacia un enfoque centrado en claves. Esto permitiría un acceso y reproducción de datos más eficientes, escalabilidad dinámica de consumidores y resolvería problemas de bloqueo head-of-line. Además, propone características como jerarquías de temas, control de concurrencia, soporte de esquema del lado del broker, extensibilidad, callbacks de confirmación síncronos, creación de instantáneas y soporte multi-inquilino para mejorar el rendimiento, la fiabilidad y la facilidad de uso de Kafka, haciéndolo más adecuado para aplicaciones de datos modernas.

Leer más
Desarrollo Cola de Mensajes

La caché AOT de Kafka 4.0 aumenta el tiempo de inicio en un 59%

2025-03-28

Este artículo muestra cómo aprovechar la compilación anticipada (AOT) de Java para mejorar significativamente el tiempo de inicio de Apache Kafka 4.0. Al crear un archivo de caché AOT, el autor redujo con éxito el tiempo de inicio de Kafka de 690 milisegundos a 285 milisegundos, una impresionante mejora del 59%. El proceso implicó superar un conflicto de JMX, lo que llevó a la creación y aplicación exitosa de la caché AOT, resultando en ganancias de rendimiento sustanciales.

Leer más
Desarrollo Compilación AOT

El Presupuesto de Sincronía: Minimizar las Llamadas Síncronas en Sistemas Distribuidos

2025-03-27

Este artículo explora la importancia de gestionar las llamadas síncronas al construir sistemas de servicios distribuidos. El autor introduce el concepto de "presupuesto de sincronía", abogando por minimizar las solicitudes síncronas entre servicios para mejorar el rendimiento y la disponibilidad. Las llamadas síncronas son costosas, afectando los tiempos de respuesta y la estabilidad del sistema. Usando un ejemplo de procesamiento de pedidos de comercio electrónico, el artículo demuestra cómo manejar las interacciones con los servicios de inventario y envío de forma asíncrona (por ejemplo, usando Kafka), reservando las llamadas síncronas para situaciones en las que son esenciales (como los servicios de pago). El autor también abarca el patrón Outbox y la tecnología CDC para manejar el almacenamiento en búfer de mensajes y la sincronización de datos en la comunicación asíncrona, logrando en última instancia un sistema distribuido de alto rendimiento y alta disponibilidad.

Leer más