cassandra分区的大小

时间:2018-05-28 19:47:01

标签: cassandra

找到每个Cassandra分区中的行数的最佳工具是什么?我有一个很大的分区,我想知道该分区中有多少记录

3 个答案:

答案 0 :(得分:5)

nodetool tablehistograms <keyspace> <table>将为您提供表格的细胞和分区大小的分布。但这并不能确保分区。要获取特定的一个,必须在select查询中使用count(*),该查询指定where子句中的分区键。一个非常大的分区,虽然可能会失败。

4.0基于sstable-tools中的describe命令后

sstablemetadata。如果您提供-s来扫描sstable,它将为您提供最大的分区和最大的行数,以及具有大多数逻辑删除的分区。这些可以用于3.0和3.11 sstables。我认为2.1 sstables无法处理。

...
Partitions: 22515                                                               
Rows: 13579337
Tombstones: 0
Cells: 13579337
Widest Partitions: 
  [12345] 999999
  [99049] 62664
  [99007] 60437
  [99017] 59728
  [99010] 59555
Largest Partitions: 
  [12345] 189888705
  [99049] 2965017
  [99007] 2860391
  [99017] 2826094
  [99010] 2818038
...

上面的例子有一个parititon key一个int,它会打印出如下的键:

Widest Partitions: 
  [frodo] 1
Largest Partitions: 
  [frodo] 104

答案 1 :(得分:0)

您可以使用nodetool命令查找可用于表的分区总数。 ./nodetool cfstats <keyspace>.<table>.

如果您知道分区键,则可以触发分区的选择计数(*)以获得否。该分区中的记录。在执行查询之前,查询可能会在大分区set cqlsh request-timeout上的计数查询超时。

要了解如何计算物理分区大小,请浏览Datastax DS220: Data Modeling partition size

答案 2 :(得分:0)

Instaclustr是一个查找分区大小的工具,但这并不显示每个分区中的记录数:

https://github.com/instaclustr/cassandra-sstable-tools