Stiamo lavorando su una grande piattaforma di microservizi per un'azienda nel settore degli eventi dal vivo. È costituito da API RESTful containerizzate, per lo più costruite in Nodo, che lavorano con Apache Kafka e Cassandra sul back-end. Oltre a questo sistema, stiamo aggiornando il nostro livello di analisi per i dati raccolti nelle API. Questo sistema ha il compito di fornire entrambe le API RESTful e un'interfaccia utente basata sul Web con un dashboard di metriche. Ciò consente ai clienti di prelevare direttamente dalle API per l'utilizzo nel proprio software di analisi o l'opzione di utilizzare la nostra interfaccia utente per visualizzare.
Inizialmente, pensavamo di creare un servizio "semplice" che rispondesse agli argomenti di Kafka, tirasse e scricchiolava i dati e rilasciava i dati analizzati in tabelle per le tabelle di metrica da raccogliere per la visualizzazione. Il nostro POC ruota intorno a questo design, oggi. Quello che non abbiamo è il livello di ingestione / analisi ... ed ecco dove Spark potenzialmente arriva.
Ho trascorso l'ultima settimana a passare l'aspirapolvere a Spark il più possibile, ma non ho esperienza con esso, oltre a questo.
Quello che spero è; possiamo essenzialmente sostituire questo strato di "ingestione" nostrana che avevamo programmato per iscritto, con Apache Spark. I miei requisiti sono:
- Vista quasi in tempo reale di analisi / metriche
- Recupero rapido dei dati su tutte le API nel sistema di origine
- Visualizzazioni metriche per intervallo di date (pre, durante e post-evento)
Ho fornito un diagramma approssimativo dei miei pensieri. In poche parole, la mia speranza è che io possa creare un'applicazione Spark in grado di rispondere a un evento consumer di Kafka, eseguire una query sui nostri dati Cassandra e inviare tali dati a un altro set di tabelle Cassandra, in come in tempo reale come possibile velocità.
Ci aspettiamo una grande quantità di dati, soprattutto nel tempo. Tuttavia, tutti i dati nel sistema vengono filtrati da un ID evento specifico, che è basato su un timeframe, e dovrebbe risultare in un sottogruppo molto più piccolo di dati Cassandra. A volte nel prossimo futuro, tuttavia, vorremmo anche confrontarci anno dopo anno.
Sulla base di questa (molto) approssimativa visione di alto livello di ciò che stiamo affrontando, Spark sembra uno strumento valido per il lavoro?