In questo articolo torniamo a parlare di tecnologie che ci stanno particolarmente a cuore, e rappresentano due delle soluzioni opensource più performanti nella scelta Seacom per le architetture software. Parliamo di Apache Kafka e Dremio:
Kafka per Seacom rappresenta non solo un “classico” sistema message broker, ma una vera piattaforma di stream processing, che permette di processare dati durante il flusso, che, con l’aggiunta di KSQL, consente anche l’interrogazione di questi dati con semantica sql.
Dremio è una piattaforma di data virtualization e data lake engine che consente un accesso ai dati facilitato e migliorato nelle performance, senza dover spostare i dati originali dalle rispettive strutture dati (silos, data lake). Per maggiori info potete fare un salto sul tema del mese di Aprile, dove ne abbiamo parlato nel dettaglio.
Fino a questo momento era impossibile connettere direttamente Dremio e Kafka, mentre per altri servizi era già disponibile un connettore dedicato (come nel caso di elasticsearch).
Il connettore Kafka – Dremio è quindi entrato a far parte dei progetti legati a Xstream Data, una business unit dedicata allo sviluppo di sistemi avanzati di gestione dati e architetture big data.
In questo articolo andremo a spiegare cos’è ksqlDB, per approfondirlo poi tramite un video che mostra il funzionamento del connettore Dremio – ksqlDB. Per avere una introduzione a Dremio rimandiamo all‘articolo che introduce Dremio.
Le caratteristiche di ksqlDB
ksqlDB non è nuovo: è la continuazione dello sviluppo di KSQL, un prodotto che esiste già da metà 2017 e che ha cambiato nome solo di recente.
Oltre al cambio di nome, ora il prodotto è sotto licenza Confluent Community e se prima le query SQL restituivano tutte un flusso di dati continuo, adesso queste hanno anche un nome in ksqlDB: Push Queries.
ksqlDB introduce le Pull queries, le quali permetterebbero di prendere i dati in un punto specifico nel tempo, come se stessimo interrogando un RDBMS(Relational Database Management System).
Al momento questo tipo di query presenta una serie di limiti: ad esempio. si
possono eseguire solo su tabelle materializzate create utilizzando funzioni di
aggregazione.
ksqlDB è un database per lo streaming di eventi ideato per creare applicazioni di
streaming su Kafka utilizzando query SQL. Sempre sul sito di Seacom troviamo
un articolo che introduce Kafka con i relativi casi d’uso.