2014-08-29 49 views
1

我使用Cassandra 2.0和CQL3作为查询语言。 如果省略了LIMIT值,则Cassandra通常对于SELECT语句的LIMIT值的默认值为10,000。 是否可以查询一个列族的所有行,而不管将返回多少行? 还是必须将LIMIT值设置为非常高的值以确保获得所有行? Thx!Cassandra CQL3 Select语句无限制

回答

6

这是一个常见的误解。交互式shell在cqlsh中只有默认10000行限制。服务器和协议没有可以返回的默认或最大行数。尽管会有一个超时,但会停止运行查询,以防止用户运行格式错误的查询,这可能会导致系统不稳定。

要从表中获取所有信息,最好的工具通常是一个独立的分析引擎,如spark。如果数据足够小,则可以使用分页,这将在您的查询中返回部分数据,而不是同时返回整个数据。几乎所有的现代司机都支持分页。还有一些工作可以将它添加到cqlsh中,该工具很快就会在2.1分支中准备好。

+1

+1对COPY 2.1所做的更改听起来就像他们已经取得了重大进展:https://issues.apache.org/jira/browse/CASSANDRA-7405 – Aaron 2014-08-29 14:41:31

-1

根据文件,你不能。 如何计算行数然后在限制表达式中使用此值?