【问题标题】:Astyanax getKey with compound keyAstyanax getKey 与复合键
【发布时间】:2013-08-15 17:53:14
【问题描述】:

我想使用复合主键运行以下代码。

Column<String> result = keyspace.prepareQuery(CF_COUNTER1)
    .getKey(rowKey)
    .getColumn("Column1")
    .execute().getResult();
Long counterValue = result.getLongValue();

研究似乎表明它可以是一个表示键的字符串(如果它不是复合主键)。 The documentation 说它是 K 类型,唉,我对 Java 不是很熟悉,也不知道这意味着什么。它只是继承了很多东西的基本类型吗?如果是这样,我真的不知道getKey(K) 需要什么才能处理复合键(我是吗?)。

【问题讨论】:

    标签: cassandra counter astyanax cql3 compound-key


    【解决方案1】:

    您只需要编写一个适合数据模型中列的类。然后,您可以在您的突变或查询中将此类提供给 Astyanax。

    例如,如果您有这样的数据模型

       CREATE TABLE fishblogs (
            userid varchar,
            when timestamp,
            fishtype varchar,
            blog varchar,
            image blob,
            PRIMARY KEY (userid, when, fishtype)
        );
    

    你会创建一个这样的类:

       public class FishBlog {
          @Component(ordinal = 0)
          public long when;
          @Component(ordinal = 1)
          public String fishtype;
          @Component(ordinal = 2)
          public String field;
    
          public FishBlog() {
          }
       }
    

    Whenfishtype 构成您的复合列键,并由 FishBlog 类表示。 Userid 将是您的行/分区键,可以是简单的“字符串”类型。

    看看this blog explaining in great detail如何使用复合键插入数据(我从这里举了这个例子)。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-28
      • 2013-06-20
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      相关资源
      最近更新 更多