如何使用带有两个主键的hector将数据保存到cassandra columfamily?

时间:2012-09-21 11:24:05

标签: java cassandra hector

我正在使用cassandra 1.1.4和Hector 1.0.2并且我已经获得了一个columfamily定义,该定义映射到xls doc,并且我们希望按照以下方式存储数据:

create table test(
firstId int,
secondId varchar,
somedata varchar,
moredata varchar,
PRIMARY KEY (firstId, secondId));

这是用户需要的,但我如何在Hector中对此进行建模。目前我可以使用Mutator的addInsertion(Key k, String cf, HColumn<N,V> sc)作为单个密钥,但是有没有办法用两个主键和不同的数据类型来做?

任何帮助都会受到赞赏,即使不可能使用Hector,也可以使用其他东西。

提前致谢。

2 个答案:

答案 0 :(得分:0)

Cassandra是一个关键值数据库。它不能有两把钥匙。它可以拥有的是一个复合键,它可以包含两个所谓的“主键”。例如,如果其中一个是Integer,其中一个是Long,那么你将构造这样的键(Pelops)

Bytes.composite()
   .addInt(firstKeyVal)
   .addLong(secondKeyVal)
.build();

使用纯粹的Thrift你可以做同样的事情。 在hector中,你可能会对你所做的事情有点限制,因为你不能轻易地实现复合键。但是,这是可能的。我正在链接它:

How to define composite key for a column family and then reference it using Hector?

答案 1 :(得分:0)

使用CompositeType - How to define composite key for a column family and then reference it using Hector?

你的行键看起来像:firstId:secondId