最近,我开始使用 cassandra 的 Java 驱动程序(cassandra-driver-core-2.0.2)来研究 Grails 与 Cassandra 的集成。所以我很想知道我们如何才能知道我们的表在 cassandra DB 中存储数据所需的大小。
我创建了一个名为 Customkeyspace 的键空间和一个名为 Movie 的列族。所以我很想知道我必须使用哪个工具/命令来了解键空间/列族的大小?
要获取有关 Cassandra 中列族的统计信息,您只需运行以下命令:
nodetool cfstats
它报告有关表的统计信息,包括实时数据大小以及磁盘上的数据。
有关 Cassandra 2.1 的此实用程序的文档可在此处获得。
我创建了一个小脚本来nodetool
在一个漂亮的表格中打印结果:
#!/bin/sh
nodetool cfstats -H | awk -F ' *: *' '
BEGIN { print "Keyspace,Table,Live,Total" }
/^Keyspace : / { ks = $2 }
/\tTable:/ { t = $2 }
/\tSpace used .live/ { sp = $2 }
/\tSpace used .total/ { print ks "," t "," sp "," $2 }
' | column -s , -t
要获取 Cassandra 中关于键空间或表的列族的统计信息,您可以简单地运行以下命令:
nodetool cfstats
结果:这将返回与可用键空间相关的完整统计信息。
但是,如果您想找出特定键空间或表的统计信息,请运行以下命令:
对于键空间:
nodetool cfstats <keyspace_name>
或
nodetool cfstats -H <keyspace_name>
对于表:
nodetool tablestats <keyspace_name>.<table_name>
或
nodetool tablestats -H <keyspace_name>.<table_name>
注意: -H 表示人类可读格式
有关详细信息,请参阅nodetool cfstats
发现:
您可能会看到SSTable count
0
Space used (live)
并Space used (total)
为 0 字节
要了解上述两个发现的 WHY(s),请参阅:SSTable 计数显示为 0 的原因
您可以根据旧版和新版 Cassandra 使用以下命令。
nodetool cfstats或nodetool tablestats
上面的命令将为您提供有关键空间和表的大小详细信息。您也可以参考以下链接以获取有关如何使用不同选项的更多详细信息 https://docs.datastax.com/en/dse/6.7/dse-dev/datastax_enterprise/tools/nodetool/toolsTablestats.html