2012-07-27 13 views
6

Ho un'installazione di Cassandra 1.1.2 sul mio sistema come cluster a nodo singolo e ho tre spazi chiavi: hotel, student e employee. Voglio scaricare lo schema keypace di hotel insieme ai dati della sua famiglia di colonne, se possibile, e ripristinare il dump su altri cluster Cassandra. Qualcuno mi può suggerire in dettaglio che come dovrei farlo?Importazione ed esportazione dello schema Keyspace in Cassandra

risposta

6

È possibile utilizzare sstable2json e json2sstable strumenti Cassandra

Scopri Datastax documentation sulla stessa e this troppo

Usage: sstable2json [-f outfile] <sstable> [-k key [-k key [...]]] 
Usage: json2sstable -K keyspace -c column_family <json> <sstable> 

È sempre possibile eseguire i comandi cassandra-cli nel file di

cassandra-cli -h HOST -p PORT -f fileName 

È possibile caricare tutte le istruzioni create in un file ed eseguire questo comando

Per ottenere gli script CLI per creare keyspaces e le famiglie della colonna di comando in uso seguenti cassandra-cli interfaccia

show schema 

Ma in caso si vuole creare un cluster di due nodi. Non hai bisogno di fare tutto quanto sopra. Avviare l'altro nodo con una gamma di token diversa e lo stesso nome di cluster. Cassandra internamente riuscirà a trasmettere i dati e le informazioni sullo schema

+0

grazie tamil grazie mille ho affrontato questo problema da 3 giorni è una buona soluzione ho una cosa da chiedere dopo aver recuperato lo spazio delle chiavi e ripristinarlo su altro cluster posso copiare e incollare i dati dello spazio delle chiavi che è presente nella directory dei dati –

+0

no non puoi farlo. Eseguire un 'nodetool drain' [nel caso in cui si desiderino tutti i dati anche in memoria] sul cluster esistente a un nodo e procedere con il caricatore json. Nessun altro andare. nodetool drain scaricherà tutti i CF ma il tuo cluster corrente sarà inaccessibile fino al termine di questa operazione. – Tamil

+0

Grazie ma ho fatto quello che ho menzionato sopra e funziona bene creerà qualsiasi problema se non userò il nodo di scarico ecc. –

2

Non è consigliabile utilizzare stable2json e json2sstable per caricare una grande quantità di dati. Usa l'API di jackson per creare il set di dati e trasformarlo in formato json. Implica di caricare tutti i dati in memoria per creare una rappresentazione json unica.

È ok per una piccola quantità di dati, ora immagina di caricare un grande set di dati di oltre 40 milioni di righe, circa 25 GB di dati, questi strumenti semplicemente non funzionano bene. Ho già chiesto a Datastax ragazzi senza chiarimenti.

In caso di set di dati di grandi dimensioni, è sufficiente copiare i file di dati cassandra da un cluster a un altro per risolvere il problema. Nel mio caso sto provando a migrare dal cluster di Cassandra 1.0.6 a 1.2.1, i file di dati non erano compatibili tra queste versioni.

Qual è la soluzione? Sto solo scrivendo il mio strumento di esportazione/importazione per risolvere questo problema. Spero di pubblicare presto un link per questo strumento.

Problemi correlati