2013-08-22 8 views
5

Stworzyłem stary klucz w klastrze Cassandra, ale stwierdziłem, że definicja jego "komparatora" jest błędna, więc muszę odtworzyć nowy obszar kluczy i przeprowadzić migrację danych. Czy istnieje narzędzie do przeprowadzania migracji danych? lub muszę programować z Thrift klientem odczytać wszystkie dane ze starego keyspace i zapisać je w nowej keyspace? Wszelkie sugestie i fragmenty kodu są mile widziane!Jak przeprowadzić migrację danych Cassandry z jednego obszaru kluczy do innego obszaru kluczy?

Odpowiedz

0

Możemy to zrobić za pomocą polecenia COPY w cql. Używając polecenia COPY możemy zapisać dane tabeli w pliku .csv i powrócić do tabeli z pliku .csv. Ale lepszym rozwiązaniem będzie napisanie programu do odczytu z tabeli i zapisanie go do innej tabeli, ponieważ importowanie z pliku csv może się nie powieść, jeśli tabela zawiera typy kolumn kolekcji, takie jak list<text>, map<text, text>, set<text>.

Np: - Aby skopiować dane z tabeli z tabeli do pliku .csv: -

COPY keyspace1.table1 (column1, column2) TO 'path/to/file/keyspace1_table1.csv'; 

Aby skopiować dane z pliku csv do tabeli: -

COPY keyspace2.table1 (column1, column2) FROM 'path/to/file/keyspace1_table1.csv'; 

Patrz Cassandra migration tool