Java 按部分从cassandra获取数据

Java 按部分从cassandra获取数据,java,cassandra,datastax,Java,Cassandra,Datastax,在cassandra db中,我有一个包含1000万行的表。如果我使用普通的select查询,我只能有一个到cassandra的连接来获取数据。是否可以使用行号执行select查询 E.g. Select * from abc where row = x to row = y ? 所以我可以有10个不同的线程,每个线程将负责获取100万行。如果这是可能的,我的线程数是否应该等于集群中的节点数 我正在使用java datastax驱动程序连接到我的cassandra集群 是否可以使用行号执行se

在cassandra db中,我有一个包含1000万行的表。如果我使用普通的select查询,我只能有一个到cassandra的连接来获取数据。是否可以使用行号执行select查询

E.g. Select * from abc where row = x to row = y ?
所以我可以有10个不同的线程,每个线程将负责获取100万行。如果这是可能的,我的线程数是否应该等于集群中的节点数

我正在使用java datastax驱动程序连接到我的cassandra集群

是否可以使用行号执行select查询

否,但可以基于分区键的哈希标记值执行范围查询

假设您有一个六节点集群。6节点群集的3个主要令牌范围如下所示:

node   start range              end range
1)     9223372036854775808 to  -9223372036854775808
2)    -9223372036854775807 to  -5534023222112865485
3)    -5534023222112865484 to  -1844674407370955162
4)    -1844674407370955161 to   1844674407370955161
5)     1844674407370955162 to   5534023222112865484
6)     5534023222112865485 to   9223372036854775807
SELECT * FROM abc
  WHERE token(pkey) >   9223372036854775808
    AND token(pkey) <= -5534023222112865485;
如果我有一个名为
abc
的表,其分区键为
pkey
,并且希望查询节点2上该表的所有行,那么我的查询如下所示:

node   start range              end range
1)     9223372036854775808 to  -9223372036854775808
2)    -9223372036854775807 to  -5534023222112865485
3)    -5534023222112865484 to  -1844674407370955162
4)    -1844674407370955161 to   1844674407370955161
5)     1844674407370955162 to   5534023222112865484
6)     5534023222112865485 to   9223372036854775807
SELECT * FROM abc
  WHERE token(pkey) >   9223372036854775808
    AND token(pkey) <= -5534023222112865485;
从abc中选择*
其中令牌(pkey)>9223372036854775808
和代币(pkey)