Misunderstanding on Composite Key for Cassandra

只谈情不闲聊 提交于 2019-11-29 14:22:32

问题


I've to test different datamodels for Cassandra. I'm thinking about to use a composite key made by key1:key2 for the row key. With this configuration on Cassandra, for example, I can query to have all the rows having a specific key1 value and any key2 value but It's impossible otherwise (obtain all the rows having a specific key2's value and any key1). Is it right?

thanks in advance

Cesare


回答1:


If you use Order Preserving Partitioning (OPP), then yes, the keys will be stored sorted, and then you can get slices over a range of keys e.g. A:A to A:Z -- but not necessarily any:A to any:Z.

But, OPP is not guaranteed to evenly distribute the keys across the nodes and you could end up with "hot spots" of too many or too few keys. You probably want to use Random Partitioning (RP) which distributes the keys by storing by hash across all nodes.

However, since Columns are stored sorted, using Composite values can be pretty powerful for accessing ranges of data.

See this question for details on querying Composite columns using Hector .

If necessary, the column names could then be used as keys to do Multiget queries for additional lookups.




回答2:


I hope these articles help you :)

http://pkghosh.wordpress.com/2011/03/02/cassandra-secondary-index-patterns/

http://www.datastax.com/docs/0.7/data_model/cfs_as_indexes

http://www.anuff.com/2011/02/indexing-in-cassandra.html

Also checkout this question

Storing a list of values in Cassandra



来源:https://stackoverflow.com/questions/9872868/misunderstanding-on-composite-key-for-cassandra

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!