【问题标题】:No of Partitions created in Cassandra在 Cassandra 中创建的分区数
【发布时间】:2018-11-05 02:39:38
【问题描述】:

我在 Cassandra 中创建了一个带有一个分区键(即一个主键)的表,并在其中插入了大约 50K 条记录,其中 35K 条是唯一记录。

根据规则(如有错误请指正),Cassandra中的分区数应该等于表中的唯一记录(即分区数=主键中的唯一记录)。

但是当我做节点工具时 -

./nodetool tablestats -H keyspace.tablename

它给了我:-

    Number of keys (estimate partitions key): 7500

即比我的表中唯一记录的数量少得多。

所以请任何人解释一下这种情况。

【问题讨论】:

  • 你只有1个节点吗?你冲了吗?什么版本?

标签: cassandra cql


【解决方案1】:

tablestats 只为您提供键数的相对大小,而不是确切的大小。 如果您想知道总的唯一行数,请运行 select count(partition_key_col) from tableName。 执行查询时可能会出现查询超时,请在执行查询前设置cqlsh request-timeout

【讨论】:

    【解决方案2】:

    正如您所描述的,您的表中有 35k 条唯一记录。 Cassandra 中的唯一记录是(分区键(PK)+ 聚类列(CC))。 在这里更正你的陈述。分区数 = 唯一分区键(不是主键(PK+CC)。) 因此,对于相同的分区键,根据您的集群列,您可能有超过 1 行。

    这就是您拥有大约 7.5k 个唯一分区的原因,总体而言它将拥有 35k 个唯一记录。

    https://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsTablestats.html#toolsTablestats__example

    如果你读到键数(估计)的意义,它说的是同样的事情。

    【讨论】:

      【解决方案3】:

      tablestats 在刷新时刷新。如果您手动运行 nodetool 刷新,您应该会看到一个准确的数字。

      【讨论】:

        猜你喜欢
        • 2016-12-21
        • 2020-05-09
        • 1970-01-01
        • 2018-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多