|
|
1
2
这种设计是完全可扩展的。Cassandra以稀疏的形式存储数据,因此空单元格不会占用磁盘空间。 缺点是cassandra在按值索引方面不是很好。有二级索引,但它们应该只用于索引一两列,而不是数百万列中的每一列。 解决这个问题有两种选择:
|
|
|
2
2
从所需的一组查询开始,构造柱族以支持这些视图。尤其是在涉及的字段如此之少的情况下,每个CF都可以廉价地作为自己的数据索引视图。在提取过程中,密钥将最终将数据划分到一个特定的Cassandra节点,该节点可以按预先确定的顺序将一组宽行快速流式传输到应用服务器。这发挥了Cassandra的优势之一,因为与在RDBMS表的索引搜索中在各种轨道和扇区之间来回跳跃相比,在物理介质上读取的碎片(当未缓存时)极低。 如果可用,一种有用的方法是选择键来分割数据,这样对该片段中的所有列进行全面扫描是一个合理的提议,并且非常适合您的查询。然后,你过滤你不需要的东西,即使过滤是在你的客户端(应用服务器)中执行的。一部电影的所有评论都是一个很好的例子。即使你过滤了积极的评论,或者只提供了最近的评论或摘要,你仍然可以合理地获取该键的所有行,然后抛出你不需要的。 |
|
3
0
另一种选择是,如果你能弄清楚如何对数据进行分区(按时间、按类别),playOrm提供了一种将S-SQL划分到分区中的解决方案,这种解决方案非常快速。它非常像RDBMS,只是您对数据进行分区以保持可伸缩性,并且可以拥有任意多的分区。分区可以包含数百万行(尽管在一个分区中,我不会超过1000万行)。 后来 院长 |