2015-04-14 5 views
9

Qual è il modo migliore per scrivere la data da Kafka a Cassandra? Mi aspetterei che fosse un problema risolto, ma non sembra esserci un adattatore standard. Un sacco di gente sembra usare Storm per leggere da Kafka e poi scrivere a Cassandra, ma la tempesta sembra un po 'eccessiva per semplici operazioni ETL.Streaming di dati da Kafka a Cassandra in tempo reale

+0

Proprio come un aggiornamento - Siamo andati con Spark Streaming fino ad ora così buono. Testare DataStax Spark ora – EugeneMi

+1

Inoltre, Kafka 3.0 avrà Kafka Connect, un framework per la costruzione di connettori. Alla fine avranno probabilmente anche un connettore C *. Come ho notato prima, Spark Streaming sta funzionando davvero bene per noi. Facile da usare, si prende cura della tolleranza agli errori e della scalabilità per te. – EugeneMi

risposta

4

Stiamo pesantemente usando Kafka e Cassandra attraverso tempesta

Facciamo affidamento sulla tempesta perché:

  • ci sono di solito un sacco di elaborazione distribuita (tra nodi) passi prima conseguenza di colpire messaggio originale Cassandra (Topologie bulloni da tempesta)

  • Non abbiamo bisogno di mantenere noi stessi lo stato di consumo di Kafka (offset) - Il connettore Storm-Kafka lo sta facendo per noi quando tutti i prodotti del messaggio originale vengono registrati all'interno di Storm

  • elaborazione del messaggio è distribuito tra i nodi con la tempesta nativamente

caso contrario, se si tratta di un caso molto semplice, si potrebbe effettivamente leggere i messaggi da Kafka e scrivere portare a Cassandra senza l'aiuto della tempesta

+1

Grazie! Dove finisce Storm per l'offset di Kafka? Potete garantire esattamente una volta l'elaborazione del messaggio se l'offset non è memorizzato nella stessa transazione dei dati elaborati in Cassandra? Inoltre, avete visto qualcuno in Spark Streaming? – EugeneMi

+0

Nel nostro caso particolare è la garanzia "almeno uno". Va bene - abbiamo progettato la maggior parte delle nostre operazioni di elaborazione come idempotenti. Ho sentito delle garanzie "esattamente una volta" in Storm Trident, ma si tratta di un micro-batching, così lo Spark Streaming. – viktortnk

1

La recente versione di Kafka è arrivata con il concetto di connettore per supportare sorgenti e sink come concetti di prima classe nel design. Con questo, non è necessario alcun framework di streaming per lo spostamento dei dati in/out di Kafka. Ecco il connettore Cassandra per Kafka che è possibile utilizzare: https://github.com/tuplejump/kafka-connect-cassandra