如何使用 ScalarDB 在 Cassandra 中查找分区的大小

How to find size of a partition in Cassandra using ScalarDB

我正在使用在 Cassandra 中添加 ACID 支持的标量数据库库。如何使用标量数据库获取分区的大小?

在 Cassandra Java 驱动程序中,我会调用类似下面的方法来获取大小。

val resultSet = session.execute(partitionSizeQuery)
      val resultSetSize = resultSet.all.size 

ScalarDB 的等价物是什么。

当我调用

时我得到Optional[Result]
val result = transaction.get(getQuestion)

然后我调用 .get 来获取结果的值,如果有一个值(在检查 result.isPresent

val resultGet = result.get
    logger.trace(s"result is ${resultGet}")

我想以上只会给我一行。

我想过使用 Scan 以及它给出 List[Result] 但从文档中不清楚我是否会得到所有结果或一些 system/configurable 限制。

即使我不能一次性得到所有的东西,我如何得到分区的大小?

您需要完成 scan 并获得 List<Result>。 它会从数据库中检索所有结果,但是如果分区的大小不建议这样做。

您可以使用withStartwithEnd API of Scan来限制扫描范围。 https://scalar-labs.github.io/scalardb/javadoc/com/scalar/db/api/Scan.html

如果仅检索指定范围,可能取决于下划线实现,但在 Cassandra 情况下,它仅检索指定范围。