http://www.datastax.com/dev/blog/basic-rules-of-cassandra-data-modeling
官方给的建议有两点:
也给出了一些使用举例了啦,读的时候以为大概知道要领了,结果下地干活的时候发现然而并没有。。
现在我遇到个问题,逻辑类似 Page Rank, score 通过 follow 关系传递给下一个人,然后不断计算到收敛。需要按从高到低排序。
假设有几亿用户,并且好友关系复杂,这个 score 是一个会比较频繁更新的字段。
为了数据均匀,我用比如 username 来做分区键,会导致查询查的时候分区变得随机;
为了查询的时候结果更集中,我用 score 来做分区键,这样会导致作为分区键的值经常变化。
虽然这个文档中没有提到分区键频繁变化会有什么后果,但是可以想象,根据这个分区键来作为划分 cluster 节点的值,会导致数据不断被转移,显然是低效的。
那么我能想到的解决的办法有两个:
想请教有没有更好的 trade off.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.