Sto usando Cassandra 2.0.9 per memorizzare grandi quantità di dati, diciamo 100Gb, in una famiglia di colonne. Vorrei esportare questi dati in formato CSV in modo rapido. Ho provato:Esportare una grande quantità di dati da Cassandra a CSV
- sstable2json - produce abbastanza grande file JSON che sono difficili da analizzare - in quanto strumento mette i dati in una riga e usa lo schema complicato, ci vuole (ex 300Mb di file di dati = ~ 2 Gb JSON.) un sacco di tempo per scaricare e Cassandra piace cambiare i nomi dei file sorgente secondo il suo meccanismo interno
- COPIA - fa sì che i timeout su istanze EC2 abbastanza veloce per gran numero di record
- CAPTURE - come sopra, provoca timeout
- legge con impaginazione - ho usato timeuuid per esso, ma restituisce circa 1,5k record al secondo
Io uso Amazon istanza EC2 con memorizzazione veloce, 15 GB di RAM e 4 core
Is esiste un'opzione migliore per esportare gigabyte di dati da Cassandra a CSV?
Hai pensato di creare il tuo piccolo aggeggio per questo? Usando il driver datastax puoi facilmente fare richieste che estraggono i tuoi dati e serializzarli in un file csv con poco o nessun codice java? Ciò garantirebbe di ottenere il risultato esatto desiderato (con un piccolo sforzo però). – Ar3s
Inoltre, non ho né il metodo né il problema sul "read with pagination". – Ar3s
* legge con paginazione * - usando il driver python Ho provato a leggere il contenuto usando limite (valori testati 100 - 10000, basati su TimeUuid) e offset, era molto lento, Cassandra era in grado di leggere circa 1,5k di record al secondo su 3 istanze e fattore di replicazione 2 Non riesco a immaginare, che il semplice utilizzo del driver renderà possibile la lettura veloce, poiché per ogni riga Cassandra deve verificare quali dati del nodo sono memorizzati. – KrzysztofZalasa