2011-01-13 7 views
9

Supongo que todos los que jugaron con Cassandra ya leyeron el artículo this.Asignación de Supersand Colonna de Cassandra

Estoy tratando de crear mi esquema en CassandraCli, pero estoy teniendo muchos problemas, ¿alguien me puede guiar de la manera correcta? Estoy intentando crear una estructura similar a la familia de columnas Comentarios del artículo.

En la terminal CassandraCli I Tipo:

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

Trabaja muy bien, no hay ningún documento que me decía que si añado un column_metadata atribuyen los habrá para los súper columnas porque mi familia de columnas es de tipo estupendo, no puedo encontrar si es verdad lo que:

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

estoy tratando de crear el mismo que el de la familia columna del comentario del artículo, pero cuando intento de poblar

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

tengo:

cadena UUID no válido: el cuerpo

supongo que porque yo elegimos el subcomparator ser de tipo timeuuid y el cuerpo es una cadena, que debe ser un timeuuid, así que ¿cómo mis columnas dentro de la super columna, que es el tipo timeuuid, podrían contener columnas con nombres de tipo de cadena a medida que se crean los comentarios del artículo?

Gracias

+0

+1 para alguien con un representante de 1 haciendo una pregunta sobre Cassandra. Es refrescante ver a alguien interesado en algo más que SQL ... – SyntaxT3rr0r

Respuesta

0

¿Usted intentó citar 'body'?

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

Creo que cambiaste lo que comparator_type y subcomparator_type se aplican a. En las familias de supercolumnas, comparator_type se aplica a los nombres de las supercolumnas, y subcombparator_type se aplica a los nombres de las subcolumnas.

Cambie los tipos de comparador y su primer ejemplo debería funcionar.

0

me trataron:

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

funcionó ...

1

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

La respuesta correcta será eso.

: p