如何有效地读取cassandra中的所有行键...

时间:2017-12-27 09:15:15

标签: cassandra

访问cassandra中所有节点的所有行效率低下。有没有办法访问已经有行键的index.db?内置的cassandra支持这种类型的东西吗?

2 个答案:

答案 0 :(得分:2)

如果没有到达群集中的每个节点,就无法使用一个请求获取所有密钥。然而,在大多数Cassandra驱动程序中都有内置分页功能。例如,在Java驱动程序中:https://docs.datastax.com/en/developer/java-driver/3.3/manual/paging/

这会减少每个节点的压力,因为它只会获取每个请求的限制数据量。每个后续请求将从最后一个继续,这意味着您将触及您正在进行的请求的每个结果。

编辑:这可能是您想要的:How can I get the primary keys of all records in Cassandra?

答案 1 :(得分:0)

一种可能的选择是查询所有令牌范围。 例如,

SELECT distinct <partn_col_name> FROM <table_name> where token(partn_col_name) >= <from_token_range> and token(partn_col_name) < <to_token_range>

通过上述查询,您可以获得给定令牌范围内的所有可用分区键。根据执行时间调整令牌范围。