Cassandra范围查询cql

时间:2015-01-12 14:06:17

标签: cassandra

我必须创建一个存储大量数据的表(如400列和5.000.000到40.000.000行)。有一个计数器“计数器”从1开始计数。现在这是我的主要关键。其他变量是int,float和varchar类型和重复。

我需要对数据库进行比较,所以我必须使用Cassandra,即使可能有其他数据库,也可以在这个特定问题上做得更好。

在这张桌子上,我想执行一些范围查询。查询应该是:

SELECT计数器,val1,val2,val3 FROM表WHERE计数器> 1000 AND计数器< 5000;

还会有其他过滤器参数:

... AND val54 ='确定';

我认为这是Cassandra的问题,因为“反击”是PK。我将尝试运行token()函数,但我想这会很慢。

现在我正在学习Cassandra中的数据建模,但我希望有一些Cassandra经验的人得到一些提示,比如如何组织表并使查询成为可能和快速的?也许只是我应该了解的一些主题或可以帮助我的链接。

祝你有愉快的一天, 弗里德里希

1 个答案:

答案 0 :(得分:1)

对于Cassandra来说,这听起来像是一个糟糕的用例。

首先,Cassandra不鼓励范围查询。这是因为无法通过访问群集中的每个节点来解析范围。

其次,您不能将计数器类型列与其他列类型混合使用。对于给定的表,它可以具有(并且仅具有)计数器列,也可以具有所有非计数器列。

就Cassandra数据建模而言,如果您想创建一个成功的数据模型,请围绕您要查询的确切内容创建分区。