Cassandra性能:包含更多列的行数越少,列数越少,行数越少

时间:2015-06-19 07:50:20

标签: cassandra cql3 datastax-java-driver

我们正在评估是否可以从SQL SERVER迁移到cassandra for OLAP。根据内部存储结构,我们可以有宽行。我们几乎需要按日期访问数据。我们经常需要访问日期范围内的数据,因为我们有财务数据。如果我们使用date作为分区键来支持按日期过滤,那么我们最终会减少具有大量列的行。 如果我们将来每天处理数百万个事务,那么如果我们将来有数百个列用于单行密钥,它是否会妨碍性能?

我们是否需要对访问模式进行一些更改,以使每行的列数更多,行数更少。

需要一些绩效洞察才能朝着两个方向前进

1 个答案:

答案 0 :(得分:3)

使用宽行对于Cassandra来说通常很好,但是有一些事情需要考虑:

  • 确保在任何情况下都达不到20亿列限制
  • 整个宽行存储在同一节点上:它需要适合磁盘。此外,如果您有一些日期比其他日期(例如今天)更频繁地访问,那么您可以在存储当天数据的节点上创建热点。
  • 非常宽的行会影响性能但是:The Last Pickle的Aaron Morton有一篇有趣的文章:http://thelastpickle.com/blog/2011/07/04/Cassandra-Query-Plans.html 它有些陈旧,但我相信这些概念仍然有效。

对于良好的表格设计决策,您需要了解所有典型的过滤条件。如果您有任何其他字段通常过滤为完全匹配,您也可以将它们添加到分区键中。