我需要在 Cassandra 中制作小型 POC,并且需要创建以下类型的列系列:
具有唯一字符串 ID(例如“1234”)的用户应按时间戳顺序存储其所有传入消息。
"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?" }
]
我google了很长时间,看到了很多例子,但我仍然不明白它应该是什么类型的COLUMN FAMILY?
我对 Cassandra 完全陌生,我知道这听起来像家庭作业:),但请帮忙。
更新:
我正在尝试创建以下 cli Create Family 列,但它似乎不起作用。
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)
您能帮忙解决一下 cli 语法吗?
最佳答案
对于 1.1 之前的版本,这应该可以解决问题。它假设您将 JSON 值存储在宽行中(您管理自己的序列化)。
CREATE COLUMNFAMILY Example
( user_id text PRIMARY KEY )
WITH comparator=timestamp;
对于 1.1 及以上版本,请查看此文档以获取进一步指导:http://www.datastax.com/dev/blog/schema-in-cassandra-1-1
关于nosql - 我可以在 cassandra 中创建以下列 Family 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486261/