Astyanax getKey用复合键

时间:2013-08-15 17:53:15

标签: cassandra counter astyanax cql3 compound-key

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

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

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

1 个答案:

答案 0 :(得分:2)

您只需编写一个适合数据模型中列的类。然后,您可以在突变或查询中将此课程提供给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() {
      }
   }

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

查看this blog explaining in great detail如何使用复合键插入数据(我从中获取此示例)。

希望有所帮助。