找到每个Cassandra分区中的行数的最佳工具是什么?我有一个很大的分区,我想知道该分区中有多少记录
答案 0 :(得分:5)
nodetool tablehistograms <keyspace> <table>
将为您提供表格的细胞和分区大小的分布。但这并不能确保分区。要获取特定的一个,必须在select
查询中使用count(*),该查询指定where子句中的分区键。一个非常大的分区,虽然可能会失败。
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是一个查找分区大小的工具,但这并不显示每个分区中的记录数: