在Cassandra中使用Map type列中的密集更新是反模式的吗?

时间:2015-04-12 13:21:47

标签: cassandra anti-patterns

我在Cassandra中建模一个包含Map列的表。所以这个Map应该包含动态值,并且会对该行进行更新(我将通过主键更新)

这是一种反模式,我应该考虑其他选择吗?

1 个答案:

答案 0 :(得分:1)

您尝试做的可能就是我所说的 here

我想到的第一个重要限制是规范给出的限制:

  • 64KB是集合中项目的最大大小
  • 65536是集合中可查询元素的最大数量

更多其他帖子中描述的问题

  1. 您无法检索集合的一部分:即使内部的每个条目都存储为列,您也只能检索整个集合(这可能导致非常慢的性能)
  2. 您必须选择是否同时在键或值上创建索引。
  3. 由于地图是键入的,因此您无法在内部添加混合值:您必须将所有内容表示为字符串或字节,然后转换数据客户端
  4. 我个人认为这种方法是出于所有这些原因的反模式 - 这种方法提供了一种模式较少的解决方案,但是降低了性能并引入了许多限制,例如一个二级索引和键入。

    HTH,Carlo