2

我需要在 Cassandra 中制作小型 POC,并且需要创建以下类型的列 Family:

具有唯一字符串 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语法吗?

4

1 回答 1

2

对于 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

于 2012-09-19T02:02:02.840 回答