Entwicklung von Unternehmens-KI-Agenten mit Flink SQL: Verbindung von LLMs mit internen Daten

2025-06-18

Dieser Artikel untersucht die Entwicklung von Unternehmens-KI-Agenten mit Flink SQL, wobei Large Language Models (LLMs) mit internen Daten und Ressourcen verbunden werden. Für strukturierte Daten integriert die SQL-Join-Semantik von Flink SQL problemlos Daten aus externen Datenbanken in die LLM-Eingabe. Für unstrukturierte Daten schlägt der Artikel Retrieval-Augmented Generation (RAG) vor, wobei Daten in Vektoren codiert und in einer Vektor-Datenbank gespeichert werden, um dann über die Vektor-Typpunterstützung von Flink SQL abgefragt und integriert zu werden. Am Beispiel des Zusammenfassens von Forschungsarbeiten und der Einbeziehung interner Forschung wird gezeigt, wie ein KI-Agentensystem mit zwei Flink-SQL-Jobs aufgebaut wird: Einer aktualisiert den Vektorspeicher, der andere fragt ab und ruft das LLM auf. Schließlich wird die Verwendung von Process Table Functions (PTFs) zur Integration des Anthropic MCP-Standards für eine flexiblere KI-Agentenentwicklung erwähnt.

Mehr lesen
Entwicklung

Stream vs. Batch: Es geht eigentlich um Push vs. Pull

2025-05-18

Die übliche "Stream vs. Batch"-Debatte ist irreführend. Viele Streaming-Systeme verwenden intern Batch-Verarbeitung zur Leistungssteigerung, aber der eigentliche Unterschied liegt in der Datenverarbeitung-Semantik: 'Push'-Systeme liefern Daten in Echtzeit und bieten eine vollständige, aktuelle Ansicht; 'Pull'-Systeme fragen Daten periodisch ab und können Aktualisierungen und Löschungen verpassen. Obwohl 'Push' komplexer ist, ist sein Echtzeitvorteil überzeugend. Sobald man die Magie der Sekunden-Datenaktualität erlebt hat, möchte man nicht mehr darauf verzichten. In der Praxis ergänzen sich beide Ansätze, wobei Batch-Verarbeitung oft für Backfills in ansonsten Streaming-basierten Systemen verwendet wird.

Mehr lesen
Entwicklung Batch-Verarbeitung

Die Zukunft von Kafka: Über Partitionen hinaus, hin zu einer leistungsstärkeren Message Queue

2025-04-25

Dieser Artikel untersucht zukünftige Verbesserungen von Kafka, die sich auf die Überwindung des partitionierungsbasierten Zugriffs zugunsten eines schlüsselzentrierten Ansatzes konzentrieren. Dies würde einen effizienteren Datenzugriff und eine effizientere Wiedergabe ermöglichen, die dynamische Skalierung von Konsumenten und die Lösung von Head-of-Line-Blockierungsproblemen. Darüber hinaus werden Funktionen wie Themenhierarchien, Concurrency Control, Broker-seitige Schema-Unterstützung, Erweiterbarkeit, synchrone Commit-Callbacks, Snapshots und Multi-Tenancy vorgeschlagen, um die Leistung, Zuverlässigkeit und Benutzerfreundlichkeit von Kafka zu verbessern und es besser für moderne Datenanwendungen geeignet zu machen.

Mehr lesen
Entwicklung

Kafka 4.0 AOT-Cache steigert die Startzeit um 59%

2025-03-28

Dieser Artikel zeigt, wie man die Ahead-of-Time (AOT)-Kompilierung von Java nutzt, um die Startzeit von Apache Kafka 4.0 deutlich zu verbessern. Durch die Erstellung einer AOT-Cache-Datei konnte der Autor die Startzeit von Kafka von 690 Millisekunden auf 285 Millisekunden reduzieren – eine beeindruckende Verbesserung von 59%. Dabei wurde ein JMX-Konflikt behoben, was zur erfolgreichen Erstellung und Anwendung des AOT-Caches und damit zu erheblichen Performance-Gewinnen führte.

Mehr lesen
Entwicklung AOT-Kompilierung

Das Synchronitätsbudget: Minimierung synchroner Aufrufe in verteilten Systemen

2025-03-27

Dieser Artikel untersucht die Bedeutung der Verwaltung synchroner Aufrufe beim Aufbau verteilter Servicesysteme. Der Autor führt das Konzept des „Synchronitätsbudgets“ ein und plädiert für die Minimierung synchroner Anfragen zwischen Services, um Leistung und Verfügbarkeit zu verbessern. Synchrone Aufrufe sind kostspielig und beeinträchtigen die Antwortzeiten und die Systemstabilität. Anhand eines Beispiels zur Verarbeitung von E-Commerce-Bestellungen zeigt der Artikel, wie Interaktionen mit Inventar- und Versanddiensten asynchron gehandhabt werden können (z. B. mithilfe von Kafka), wobei synchrone Aufrufe für Situationen reserviert bleiben, in denen sie unerlässlich sind (wie Zahlungsdienste). Der Autor behandelt auch das Outbox-Muster und die CDC-Technologie zur Behandlung von Nachrichtenpuffern und Datensynchronisierung in asynchroner Kommunikation, um letztendlich ein hochperformantes und hochverfügbares verteiltes System zu erreichen.

Mehr lesen