我是Cassandra的新人。我已经研究并对Cassandra数据库进行了一些测试,我得到了一些问题:
鉴于Cassandra鼓励非规范化和数据重复,当多个列族中存在的数据仅从一个列族更新时,如何保证数据的一致性?
表中的列数会影响查询效果吗?
确实,查询返回的记录数越多,其性能就越差?
在Cassandra中使用mapreduce有什么用处?
答案 0 :(得分:2)
鉴于Cassandra鼓励非正规化和重复 数据,当多列系列中存在的数据为
时 仅从其中一个列族更新数据一致性 保证?
这就是Cassandra引入BATCH的原因。即使使用BATCH,您仍然处于分布式系统中,并且在建模数据时需要这样思考。既然你没有具体的问题,我们会在理论上继续谈论。
表中的列数会影响查询性能吗?
不是列数,而是每个单独分区的大小。分区越大,Cassandra的一些内部机制(如压缩)就越难以工作。如果您不熟悉数据存储在磁盘上的方式,我建议您查看THIS教程。
查询返回的记录数越大越好, 它的表现更差?
这是物理学。更多数据=更多IO,带宽,GC用于收集ETC的对象。鉴于Cassandra是作为事务数据存储构建的,它不是为非常大的数据返回/全表扫描构建的(很少有真正的分布式系统)。上面链接的教程很好地解释了。
在Cassandra中使用mapreduce有什么用处?
如果您对在Cassandra上运行分析感兴趣,我建议使用Spark,因为在商业和开源级别上已经有很多工作要优化Spark和Cassandra的关系。当您对Cassandra的工作原理感到满意时,如果您对在Cassandra上进行任何类型的分析感兴趣,我建议您查看THIS教程。它讨论商业产品,但概念/教程也适用于开源。
答案 1 :(得分:0)