首页 文章

Cassandra范围查询cql

提问于
浏览
0

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

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

在这个表上,我想执行一些范围查询 . 查询应该像:

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

还会有其他过滤器参数:

......和val54 ='确定';

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

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

弗里德里希度过美好的一天

1 回答

  • 1

    这听起来像是Cassandra的一个糟糕的用例 .

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

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

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

相关问题