2011-10-20 20 views
5

Ślepo po http://wiki.apache.org/cassandra/CassandraCli, a czy ktoś może to wyjaśnić?Dlaczego wycinanie i wklejanie z samouczka CLIandra CLI nie działa?

aaron-mac:apache-cassandra-1.0.0 aaron$ bin/cassandra-cli -host localhost -port 9160 
Connected to: "Test Cluster" on localhost/9160 
Welcome to the Cassandra CLI. 

Type 'help;' or '?' for help. 
Type 'quit;' or 'exit;' to quit. 

[[email protected]] use Keyspace1; 
Authenticated to keyspace: Keyspace1 

[[email protected]] create column family User with comparator = UTF8Type; 
5ef4bad0-fb2a-11e0-0000-242d50cf1ffd 
Waiting for schema agreement... 
... schemas agree across the cluster 
[[email protected]] set User['jsmith']['first'] = 'John'; 
org.apache.cassandra.db.marshal.MarshalException: cannot parse 'jsmith' as hex bytes 
[[email protected]] 

Odpowiedz

4

To dla starszej wersji Cassandry. Klawisze są teraz traktowane jako bajtów hex domyślnie, więc trzeba:

set User[utf8('jsmith')]['first'] = 'John'; 

czy:

assume User keys as utf8; 
set User['jsmith']['first'] = 'John'; 

Albo, jak notatka w dokumencie mówi:

Uwaga: Począwszy od Cassandry 0.8, musimy zadeklarować key_validation_class dla rodziny kolumn:

update column family User with key_validation_class=UTF8Type; 
+0

Hmmm. Myślałem, że mam dziś Cassandrę 1.0. Sprawdzę. –

+0

Paczkę rozpakowano do aaron-mac: apache-cassandra-1.0.0, fwiw. –

+0

Zaktualizowałem stronę wiki, aby podkreślić to bardziej, korzystając z przykładów z odpowiedzi Theodore'a (dzięki!). – DNA

21

Zanim uruchomisz jakiekolwiek polecenie w Cassandrze C LI, zawsze jest wskazane, aby wykonać następujące czynności:

assume <column_family> keys as utf8; 
assume <column_family> comparator as utf8; 
assume <column_family> validator as utf8; 

To zapewni, że wszystko masz ustawione i lista zostanie zrozumiane

PS: To jest tylko dla początkujących do Cassandry

+0

Cassandra w wersji> = 2.0 – CodeGroover

1
set User['jsmith'][utf8('first')] = utf8('John'); 

Jeśli nie masz pewności co do polecenia set, możesz wpisać help set;, a wyświetli się pełna dokumentacja.

+0

Rzeczywiście działało sprawdzanie poprawności za pomocą utf8 ("moja wartość"). – Adelin

Powiązane problemy