【问题标题】:Can I create the following column Family in cassandra?我可以在 cassandra 中创建以下列 Family 吗?
【发布时间】:2012-09-11 06:18:59
【问题描述】:

我需要在 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 语法吗?

【问题讨论】:

    标签: nosql cassandra command-line-interface bigdata


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复,我只是尝试在 cli 中执行此操作,并且我创建了查询,根据我的理解,该查询将与您的查询相同,但出现了问题。你能帮忙吗?
    • 您已将比较器(列名)定义为 DateType 类型,然后在列元数据中重新定义基于文本的列名“msg”。第一种技术适用于动态柱族,第二种技术适用于静态柱族。你需要做一个或另一个。
    • 使用default_validation_class 而不是column_metadata
    猜你喜欢
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 2012-02-29
    • 2021-09-11
    • 2023-02-11
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    相关资源
    最近更新 更多