Java 按部分从cassandra获取数据
在cassandra db中,我有一个包含1000万行的表。如果我使用普通的select查询,我只能有一个到cassandra的连接来获取数据。是否可以使用行号执行select查询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
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)