我正在使用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,也可以使用其他东西。
提前致谢。
答案 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