【发布时间】:2018-04-11 05:04:38
【问题描述】:
我有两个关于 Cassandra 查询结果的问题。
-
当我在 Cassandra(即
select * from table)中对表进行“完整”选择时,是否保证结果将以分区令牌的递增顺序返回? 例如,有下表:create table users(id int, name text, primary key(id));是否保证下面的查询会返回token列值递增的结果?
select token(id), id from users;如果是,是否也保证数据分布在集群中的多个节点上?
-
如果上述问题的答案是“是”,那么使用二级索引是否仍然有效?例如,如果我们有以下索引:
create index on users(name);我们使用索引查询表:
select token(id), id from users where name = 'xyz';对结果的顺序有保证吗?
上述问题的动机是令牌是否适合用于实现分页和/或恢复损坏的较长“数据导出”。
编辑:网络上有多个资源表明订单与令牌订单匹配(例如,在 partitioner results 或 this Datastax page 的描述中):
如果没有在 WHERE 子句中指定分区键,则结果集的实际顺序将取决于用户 ID 的散列值。
但是,Cassandra 官方文档中没有指定结果的顺序,例如。 SELECT statement.
【问题讨论】:
标签: cassandra