agsandrew - Fotolia
Kafka a désormais son moteur SQL
Confluent a développé KSQL pour permettre d’effectuer des requêtes en continu sur les flux de données Kafka. La société compte ouvrir l’usage de la technologie aux analystes.
Coller SQL au streaming de données. A la fin août, Confluent, la société créatrice du projet Open Source Kafka (né chez LinkedIn), a présenté un moteur SQL interactif, KSQL, qui permet d’interroger les flux de données en temps réel de Kafka. Après avoir rapproché SQL de Hadoop, puis de Spark pour en faciliter l’adoption auprès des populations d’analystes et de data scientists, c’est aujourd’hui au tour de Kafka, l’un des projets montants de la fondation (en version 1.0 depuis octobre dernier).
KSQL (Kafka SQL), qui s’appuie sur l’API native Kafka Streams, permet en gros de manipuler les données des flux traités par Kafka via des requêtes SQL – ou du moins qui reprennent les principes syntaxiques du langage. Et ce directement, sans avoir à déplacer ou stocker les données dans un autre datastore et sans traitements batch intermédiaires. Les requêtes sont exécutées en continu sur les flux Kafka.
Etendre la portée de Kafka
Comme avec Hadoop ou encore Spark, cette idée de rapprocher SQL de Kafka a pour vocation de lever les barrières de l’adoption de ce framework Open Source, alors que justement, le traitement des flux de données et le temps réel deviennent de plus en plus répandus dans les entreprises. Pour autant, Kafka restait jusqu’alors l’apanage de techniciens avertis, capables d’écrire des lignes de code. Avec SQL, une couche d’abstraction vient s’ajouter pour s’ouvrir à des utilisateurs, un peu plus métier. « KSQL lève les obstacles que l’on connait dans le traitement de flux de données, et apporte une interface SQL simple et entièrement interactive pour les données dans Kafka. Vous n’avez plus besoin d’écrire du code dans un langage de programmation comme Java ou Python », écrit d’ailleurs Neha Narkhede, la co-fondatrice et actuelle CTO de Confluent, dans un billet de blog.
KSQL, disponible dans une première version de test (et en lignes de commandes), s’appuie sur SQL. Mais il ne s’agit pour l’heure que d’un dialecte limité qui a dû épouser les caractéristiques des flux de données Kafka. Naha Narkhede explique qu’avec le temps, KSQL supportera une grammaire SQL plus aboutie. La communauté Open Source devrait maintenant y contribuer.
Parmi les usages cités par Confluent, on retrouve le monitoring en temps de systèmes, la détection d’anomalies dans les systèmes de sécurité ou encore l’intégration de données (une forme d’ETL dopé aux stéroïdes) et le développement d’applications.
Pour autant, apporter une interface SQL à des flux de données n’est pas une première en soi. On se rappelle par exemple de Kinesis Analytics chez AWS, qui s’appuie sur le moteur de SQLstream, Blaze.