对卡桑德拉复合键的误解

ces*_*are 7 composite-key cassandra

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

提前致谢

切萨雷

lib*_*ack 3

如果您使用顺序保留分区(OPP),那​​么是的,键将被排序存储,然后您可以获得一系列键的切片,例如A:A到A:Z - 但不一定是any:A到any: Z。

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

然而,由于列是按顺序存储的,因此使用复合值对于访问数据范围来说非常强大。

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

如果需要,列名可以用作关键字来执行 Multiget 查询以进行其他查找。