在Cassandra中使用公共前缀获取密钥范围
我想使用hector API获取具有公共前缀的所有行。我玩了一点Range Superslicesky,但没有找到让它正常工作的方法。关键范围参数是否适用于通配符等在Cassandra中使用公共前缀获取密钥范围,cassandra,hector,Cassandra,Hector,我想使用hector API获取具有公共前缀的所有行。我玩了一点Range Superslicesky,但没有找到让它正常工作的方法。关键范围参数是否适用于通配符等 更新:我使用ByteOrderedPartitioner而不是RandomPartitioner,它可以很好地使用它。这是预期的行为吗?是的,这是预期的行为。在RandomPartitioner中,行是按其键的MD5散列顺序存储的,因此要获得有意义的键范围,需要使用像ByteOrderedPartitioner这样的保序分区器 然而
更新:我使用ByteOrderedPartitioner而不是RandomPartitioner,它可以很好地使用它。这是预期的行为吗?是的,这是预期的行为。在RandomPartitioner中,行是按其键的MD5散列顺序存储的,因此要获得有意义的键范围,需要使用像ByteOrderedPartitioner这样的保序分区器
然而,使用稍微不同的数据模型和RandomPartitioner通常可以避免一些缺点详细说明以上答案,你应该考虑使用列名作为你的“普通前缀”而不是关键字。然后,您可以使用列切片获取特定范围内的所有列名,也可以使用辅助索引,然后对具有该列名的所有键执行索引切片
Column slice example:
Key (without prefix)
<prefix1> : <data>
<prefix2> : <data>
...
Secondary index example:
Key (with or without prefix)
"prefix" : <the_prefix> <-- this column is indexed
otherCol1 : <data>
...
列切片示例:
密钥(无前缀)
:
:
...
二级索引示例:
键(带或不带前缀)
“前缀”: