如何计算Cassandra分区的大小?

5jdjgkvh  于 2022-11-05  发布在  Cassandra
关注(0)|答案(2)|浏览(341)
CREATE TABLE IF NOT EXISTS video (key int, value int, PRIMARY KEY (key, value));

此处的分区关键字为key,聚簇关键字为value。没有常规列。假定此分区中有1000000行。
分区的大小是多少?

gwo2fgha

gwo2fgha1#

1.在Cassandra表中插入所需数量的记录。
1.等待刷新将记录持久保存到磁盘,或在群集节点上手动调用nodetool flush
1.导航到数据目录。默认情况下,data_file_directories将数据持久保存到/var/lib/cassandra/data。切换到<your_table_name-timeuuid>格式化目录
1.列出<sstable_version-Data.db>文件以查看其大小。请注意,这只是针对单个节点的大小。如果群集中有多个节点,则必须在每个节点上重复这些步骤来计算大小。
1.或者,您也可以在每个节点上运行nodetool tablestats命令,以了解有关特定表的统计信息。

k5ifujac

k5ifujac2#

要计算分区大小,需要以下数据点:

  • 分区键列的大小
  • 静态列的大小
  • 分区中单元的大小(群集+常规列)
  • 每行元数据开销的大小

在您的情况下:

  • 分区键的大小(单个int列)是4 bytes
  • 静态列(没有)的大小为0 bytes
  • 单元的大小(群集int + 0常规列)是4 + 0 bytes
  • 元数据开销的大小平均为8 bytes

因此,对于1M行:

partition size = 4B + 0B + (4B x 1,000,000 cells) + (8B x 1,000,000,000 rows)
               = 12,000,004 bytes
               = 11.44 MB

干杯干杯干杯

相关问题