e scusa se la domanda sembra un po 'ingenua.
Attualmente sto leggendo tutorial su Kafka & Spark e c'è qualcosa che non riesco a capire: come sfruttare / esporre i dati ricevuti da Spark.
Ecco cosa sto cercando di capire:
Un sacco di eventi < = > Kafka broker < = > Ricevitore Spark < = > Mappa / Riduci / Trasforma / Aggrega / MLearning < = > Conservazione ?? < = > accesso da parte degli utenti finali ??
Capisco la parte sinistra del flusso di lavoro, hai un flusso di eventi, distribuito da un broker, quindi consumato dai ricevitori Spark.
Ho letto molte caratteristiche di Spark, che è in grado di trasformare gli RDD in altri RDD (fondamentalmente), usando la memoria in-memory (che può anche essere persistente o memorizzata nella cache). Ma allora ??
Non ho in mente un caso d'uso specifico, ma immagino di voler: - mantenere un registro eventi del flusso di eventi "per la cronologia" - aggregare i dati (ad esempio un conteggio semplice) - applica alcuni esempi di apprendimento automatico (diciamo la regressione) - mantieni un valore dell'ultimo evento accaduto per un rapido accesso operativo
Nella mia mente, ciò coinvolge diversi sistemi di archiviazione dei dati, ad esempio Hadoop per i registri, Redis per l'ultimo evento, ecc.
Quindi vorrei che gli utenti fossero in grado di interrogare tutti i dati persistenti: - una semplice API REST per ottenere l'ultimo valore dell'evento - un sistema complicato simile a una query per recuperare il registro eventi - alcune API di reporting per ottenere la previsione dell'algoritmo ML
Come sarebbe stato realizzato tramite Spark? Spark è progettato per tale uso? Spark offre storage persistente per database? O dovrebbero essere diversi consumatori di Kafka dello stesso evento?
Grazie per l'aiuto, sono un po 'confuso.