2011-01-13 17 views
9

Immagino che tutti quelli che hanno suonato con Cassandra abbiano già letto l'articolo this.Mapping Cassandra Super Columns

Ho provato a creare il mio schema su CassandraCli, ma sto avendo un sacco di problemi, qualcuno può guidarmi nel modo giusto? Sto cercando di creare una struttura simile come la famiglia di colonne Commenti dell'articolo.

Nel terminale CassandraCli I Tipo:

create column family posts with column_type = ‘Super’ and comparator = ‘AsciiType’ and subcomparator = TimeUUIDType; 

Funziona bene, non v'è alcun documento che mi diceva che se aggiungo un column_metadata attributo quelli saranno per le colonne Super causare la mia famiglia colonna è di tipo super, non riesco a trovare se è vero così:

create column family posts with column_type = ‘Super’ and comparator = ‘AsciiType’ and subcomparator = ‘TimeUUIDType’ and column_metadata = [{column_name:'body'}]; 

sto cercando di creare lo stesso della colonna famiglia commento di questo articolo, ma quando provo a compilare

set posts['post1'][timeuuid()][body] = ‘Hello I am Goku!’; 

ho ottenuto:

stringa UUID valido: corpo

credo perché ho scelto il subcomparator essere di tipo timeuuid e il corpo è una stringa, che dovrebbe essere un timeuuid, quindi come le mie colonne all'interno della super colonna che è il tipo timeuuid possono contenere colonne con nomi di tipi di stringhe come vengono creati i commenti dell'articolo?

Grazie

+0

+1 per qualcuno con un rappresentante di 1 che fa una domanda su Cassandra. È rinfrescante vedere qualcuno interessato a qualcosa di diverso da SQL ... – SyntaxT3rr0r

risposta

0

Hai provato citando 'body'?

set posts['post1'][timeuuid()]['body'] = ‘Hello I am Goku!’; 
5

Penso che tu abbia cambiato l'aspetto di comparator_type e subcomparator_type. Nelle famiglie di super colonne, comparator_type si applica ai nomi di super colonne e subcombparator_type si applica ai nomi di sottocolonne.

Cambia i tipi di comparatore e il tuo primo esempio dovrebbe funzionare.

0

ho provato:

set posts[1][timeuuid()]['body'] = 'Hello I am Goku!'; 

ha funzionato ...

1

set posts[1][timeuuid()][utf8('body')] = 'Hello I am Goku!';

La risposta corretta è la percentuale.

: p