我正在使用spring-boot,datastax-java-cassandra-connector_2.11-2.4.1.jar和java8。
我有需要从C *表读取/加载数据的场景,但是该表可能有数百万条记录。
我需要从C *表加载此数据,无论如何使用datastax-java-cassandra-connector API的java / spring-boot我可以按分区拉数据分区?
虽然select * from table
可能有效,但更有效的方法可能是通过类似select * from table where token(part_key) > beginRange and token(part_key) <= endRange
的查询按令牌范围读取数据。 Spark Cassandra连接器的工作方式相同-它获取所有可用令牌范围的列表,然后从每个令牌范围获取数据,但将其直接发送到保存此令牌范围的节点(与select * from table
相反,该节点检索所有令牌范围)数据通过协调器节点)。
在计算令牌边界时,请特别小心,尤其是对于整个范围的开始和结束。您可以找到example of the Java code in my repository(将其粘贴到此处太长了。)