如何在Cassandra中获取表的大小?

26

我想知道Cassandra表的大小是多少。

在cqlsh中是否有类似于MongoDB中的show dbs的查询?

如果没有,是否还有其他方法可以获取表的大小?


“size” 是指什么?表的列表还是表的大小? - Helping Hand..
表格的大小以MB为单位。 - Mouna
1个回答

33
nodetool cfstats -- <keyspace>.<table>

将给您表格的“已使用空间”。


5
这不是每个节点的统计数据吗?有没有办法获取整个集群的信息? - GothamGirl
5
除了使用nodetool之外,是否有其他途径可以访问此信息?通过CQL或任何API(OpsCenter?) - shivsky
@shivsky nodetool 使用 JMX 获取其统计信息,因此您可以使用 JMX 来执行相同的操作。 - mikea
4
以防有人好奇,这些单位是字节(https://docs.datastax.com/en/cassandra/2.1/cassandra/tools/toolsCFstats.html)。 - FuzzyAmi
2
这最多只能算是不完整的。tablestats/cfstats 可以给出磁盘上 SSTables 使用的大小,以及每个节点的大小。但是操作者要求的是表的大小。即使将所有节点的“已使用空间”相加,仍然不能确定它代表表的大小。你可能有超额数据占用了空间。 不幸的是,除非你压缩所有内容并将其除以 RF,否则我认为你永远无法获得适当的大小指标。 - Pedro Gordo
2
这就是我强调“已使用空间”的部分原因。OP正在询问表的大小(以MB为单位),这对我来说意味着磁盘上使用的空间量。无论这是否是一种误解,这都是你能得到的最接近的答案。但我完全同意你的观点,即在某个时间点计算表中活动数据的实际大小非常困难。 - mikea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接