Cassandra中的复杂列设计和Hector查询

时间:2013-08-30 13:35:23

标签: cassandra hector

我要求设计如下

Row      Column          Column     
 A  |      B        |      E      |

       SubColumn         SubColumn
       C        D       F        G
       1        2       3        4

我不知道这种结构是否可行。我也想知道如何使用Hector客户端查询这样的表。如果我可以使用Hector读取插入,删除和更新的一些示例,那将是很好的。

1 个答案:

答案 0 :(得分:0)

使用Mutator在SuperColumn上插入一个列与我们已经看到的非常相似。唯一的区别是我们现在正在创建一个HSuperColumn来代替HColumn来提供一些额外的结构。例如,如果我们想将我们的用户存储在“计费”部门下,我们将使用以下对Mutator的调用:

 Mutator<String> mutator =
 HFactory.createMutator(keyspace, stringSerializer);
 mutator.insert("billing", "Super1", HFactory.createSuperColumn("jsmith",
 Arrays.asList(HFactory.createStringColumn("first", "John")),
 stringSerializer, stringSerializer, stringSerializer));

对于SuperColumn的检索,简单的情况几乎与检索标准列相同。唯一的区别是使用了Query实现。

 SuperColumnQuery<String, String, String, String> superColumnQuery =
 HFactory.createSuperColumnQuery(keyspace, stringSerializer,
 stringSerializer, stringSerializer, stringSerializer);
 superColumnQuery.setColumnFamily("Super1")
 .setKey("billing").setSuperName("jsmith");
  Result<HSuperColumn<String, String, String>> result = superColumnQuery.execute();