访问cassandra中所有节点的所有行效率低下。有没有办法访问已经有行键的index.db?内置的cassandra支持这种类型的东西吗?
答案 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>
通过上述查询,您可以获得给定令牌范围内的所有可用分区键。根据执行时间调整令牌范围。