对卡桑德拉复合键的误解

时间:2012-03-26 13:18:26

标签: cassandra composite-key

我要为Cassandra测试不同的数据模型。我正在考虑使用key1:key2为行键创建的复合键。 例如,在Cassandra上使用此配置,我可以查询所有行具有特定的key1值和任何key2值但是否则不可能(获取具有特定key2的值和任何key1的所有行)。 是不是?

提前致谢

切萨雷

2 个答案:

答案 0 :(得分:3)

如果您使用订单保留分区(OPP),则是,将按键存储密钥,然后您可以获得一系列密钥的切片,例如答:A到A:Z - 但不一定是任何:A到任何:Z。

但是,OPP不能保证在节点之间均匀分配密钥,最终可能会出现太多或太少密钥的“热点”。您可能希望使用随机分区(RP),它通过在所有节点之间存储散列来分发密钥。

但是,由于Columns存储已排序,因此使用Composite值可以非常强大地访问数据范围。

有关使用Hector查询复合列的详细信息,请参阅此question

如有必要,可以将列名用作进行其他查找的Multiget查询的键。

答案 1 :(得分:3)