我使用的是Scalar库,它在Cassandra中添加了ACID支持。如何使用Scalar获得分区的大小?
在Cassandra驱动程序中,我会调用类似于下面的命令来获得大小。
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],但从文档中还不清楚我是否会得到所有的结果,还是某种系统/可配置的限制。
我如何获得分区的大小,即使我不能一次得到所有的问题?
发布于 2020-07-25 04:09:47
您需要执行scan并获得List<Result>。它从数据库中检索所有结果,但是如果分区的大小很大,则不建议这样做。
您可以使用withStart和withEnd Scan API限制扫描范围。https://scalar-labs.github.io/scalardb/javadoc/com/scalar/db/api/Scan.html
如果它只检索指定的范围,那么它可以依赖于下划线实现,但它只能检索Cassandra大小写中指定的范围。
https://stackoverflow.com/questions/63068247
复制相似问题