2012-09-18 6 views
2

que je dois faire petit POC à Cassandra et je dois créer la colonne Famille du type suivant:Puis-je créer la colonne suivante Famille en cassandra?

utilisateur avec string id unique (par exemple « 1234 ») doit stocker tous ses messages incomming commandés par horodatage.

"1234"=> 
    [ 
     1348008041376000 : { target_uid : 4321, msg : "Hello, how are you?" }, 
     1348008041377000 : { target_uid : 3213, msg : "And how Are you?" } 
    ] , 
    "4321"=> 
    [ 
     1348008041376000 : { target_uid : 1234, msg : "Thank you I'm fine." }, 
     1348008041377000 : { target_uid : 2345, msg : "And how Are you?" } 
    ] 

Je googlé depuis longtemps et ont vu beaucoup d'exemples, mais je ne peux toujours pas réaliser ce type de famille de colonne doit-il être?

Je suis totalement nouveau dans Cassandra et je sais que cela ressemble à des devoirs :), mais s'il vous plaît aider.

Mise à jour:

Je suis en train de créer les cli suivants Créer une colonne de famille, mais il ne semble pas fonctionner.

CREATE COLUMN FAMILY messages with comparator = DateType and key_validation_class=UTF8Type AND column_metadata=[ {column_name: msg, validation_class: UTF8Type}]; 
java.lang.RuntimeException: org.apache.cassandra.db.marshal.MarshalException: unable to coerce 'msg' to a formatted date (long) 

Pouvez-vous s'il vous plaît aider avec la syntaxe cli?

Répondre

2

Cela devrait faire l'affaire pour les versions antérieures à 1.1. Il suppose que vous stockez vos valeurs JSON dans une rangée large (vous gérez votre propre sérialisation).

CREATE COLUMNFAMILY Example 
    (user_id text PRIMARY KEY) 
    WITH comparator=timestamp; 

Pour la version 1.1 en avant, un coup d'oeil à ce document pour plus de conseils: http://www.datastax.com/dev/blog/schema-in-cassandra-1-1

+0

merci pour la réponse, je suis juste essayer de le faire dans cli et je crée la requête qui, selon ma compréhension fera la même chose que votre requête, mais quelque chose ne va pas. Peux-tu aider s'il te plait? –

+0

Vous avez défini un comparateur (nom de colonne) comme étant de type DateType, puis redéfini un nom de colonne basé sur du texte "msg" dans les métadonnées de colonne. La première technique est appropriée pour une famille de colonnes dynamiques et la seconde pour une famille de colonnes statiques. Vous devez faire l'un ou l'autre. – phatfingers

+0

Utilisez 'default_validation_class' plutôt que' column_metadata'. – phatfingers

Questions connexes