Vue d’ensemble
KSQL est une interface SQL pour le stream processing sur Kafka.
Permet d’écrire des requêtes SQL plutôt que du code Java/Scala.
Construit au-dessus de Kafka Streams.
Composants principaux
graph TB A[KSQL CLI/REST API] --> B[KSQL Server] B --> C[Kafka Cluster] B --> D[State Stores] C --> E[Input Topics] C --> F[Output Topics]
KSQL Server : exécute les requêtes SQL sur les topics Kafka. Gère l’état et la tolérance aux pannes.
KSQL CLI / REST API : interfaces pour soumettre requêtes et inspecter résultats.
Kafka Cluster : stocke les topics d’entrée et de sortie. Assure scalabilité et persistance.
State Stores : utilisés pour jointures, agrégations, calculs fenêtrés. Implémentation avec RocksDB ou in-memory.
Modèle d’exécution
KSQL compile le SQL déclaratif en topologie Kafka Streams.
Chaque opérateur correspond à un nœud dans le graphe de dataflow.
Exemple de transformation : Filter → Map → Aggregate → Sink.
Les requêtes sont distribuées et fault-tolerant.
Exactly-once semantics grâce au protocole transactionnel de Kafka.