【问题标题】:How to know the size of a keyspace and column family in Cassandra?如何知道 Cassandra 中键空间和列族的大小?
【发布时间】:2015-01-16 16:17:06
【问题描述】:

最近我开始使用 cassandra 的 Java 驱动程序 (cassandra-driver-core-2.0.2) 将 Grails 与 Cassandra 集成。 所以我很想知道我们如何才能知道我们的表在 cassandra DB 中存储数据所需的大小。

我创建了一个名为 Customkeyspace 的键空间和一个名为 Movie 的列族。 所以我很想知道我必须使用哪个工具/命令来了解键空间/列族的大小?

【问题讨论】:

  • Cassandra 不处理表格,而是处理KeySpace 中的Columns 和SuperColumns。此外,这些列和 SuperColumns 可以聚集在一起。本质上,您想调整KeySpace 的大小吗?
  • 感谢您提供信息,是的,我有兴趣了解键空间的大小以及列族。

标签: cassandra nodetool


【解决方案1】:

要获取有关 Cassandra 中列族的统计信息,您只需运行以下命令:

nodetool cfstats

它报告有关表的统计信息,包括实时数据大小以及磁盘上的数据。

有关 Cassandra 2.1 的此实用程序的文档可在 here 获得。

【讨论】:

  • 所以我在 nodetool 中运行这个命令(nodetool cfstats)。我得到了这个信息 - 表:电影 SSTable 计数:0 使用的空间(实时):0 使用的空间(总计):0 使用的空间快照(总数):0 SSTable 压缩比:0.0 Memtable 单元数:1887 Memtable 数据大小:49225 ....那么为什么在 Memtable 数据大小中显示所占用的字节数?为什么使用的空间(实时)和使用的空间(总计)中的大小变为 0?..此外,如果用户想知道特定列族的 cassandra 中一行的数据大小是多少?我们该怎么做?
  • 我怀疑这是因为当您运行 nodetool cfstats 时,您刚刚创建了表并且还没有将写入刷新到磁盘。
【解决方案2】:

我创建了一个小脚本来打印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

【讨论】:

    【解决方案3】:

    要获取 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

    调查结果:

    1. 您可能会看到 SSTable count 为 0

    2. Space used (live)Space used (total) 为 0 字节

    要了解上述两个发现的原因,请参考:Reason of why SSTable count shown as 0

    【讨论】:

    • @vikash-kumar-choudhary 显示原因的链接已损坏。可以更新一下吗?
    • 嗨@Phuong Vu,对我来说,它正在工作。如果您仍然遇到问题,请单击给定的链接查看详细信息:distributeddatastore.blogspot.com/2013/08/…
    【解决方案4】:

    您可以根据新旧版本的 Cassandra 使用以下命令。

    nodetool cfstatsnodetool tablestats

    以上命令将为您提供有关键空间和表的大小详细信息。您也可以参考下面的链接以获取有关如何使用不同选项的更多详细信息 https://docs.datastax.com/en/dse/6.7/dse-dev/datastax_enterprise/tools/nodetool/toolsTablestats.html

    【讨论】:

      猜你喜欢
      • 2014-04-18
      • 2013-03-23
      • 1970-01-01
      • 2015-03-15
      • 2018-07-02
      • 2016-05-15
      • 2014-05-09
      • 2016-02-13
      • 2015-10-26
      相关资源
      最近更新 更多