如何从cassandra检索宽分区?

如何从cassandra检索宽分区?,cassandra,Cassandra,我们在cassandra有一些大分区,我想看看是什么导致了这个大分区。有没有工具可以从cassandra中获取分区数据并进行分析?现在,即使从分区中选择单行,cqlsh查询也会超时。这可能取决于您获得超时的原因,但有一些选项 将cassandra.yaml中的column\u index\u size\u(单位:kb)增加到1024左右,然后重新构建sstables。这解决了宽分区索引引入的对象分配问题 增加堆大小 以毫秒为单位增加读取请求超时时间 增加密钥缓存大小(nodetool setc

我们在cassandra有一些大分区,我想看看是什么导致了这个大分区。有没有工具可以从cassandra中获取分区数据并进行分析?现在,即使从分区中选择单行,cqlsh查询也会超时。

这可能取决于您获得超时的原因,但有一些选项

  • cassandra.yaml
    中的
    column\u index\u size\u(单位:kb)增加到1024左右,然后重新构建sstables。这解决了宽分区索引引入的对象分配问题
  • 增加堆大小
  • 以毫秒为单位增加读取请求超时时间
  • 增加密钥缓存大小(
    nodetool setcachecapacity 1000 0
    ),然后进行读取。观察读取阶段,直到降至零,然后重试请求。除非集群基本上未使用,否则这是很困难的。即使在超时后,读取仍将继续,一旦完成索引读取,它将缓存索引,以便后续读取将跳过该部分(通常是最差的部分),这将显著加快速度
  • 使用sstabledump或从sstable中提取原始数据

您所说的分区有多宽?大约3Gb。我有另一个设置,它只有299MB。这里的原因似乎是协调器节点超时。当前的堆设置是什么?3gb没有那么糟糕,我首先要增加yaml中的键缓存大小和列索引大小,并确保堆足够大。