Cassandra - 具有非主键缺点的WHERE子句

far*_*awa 11 database indexing where-clause cassandra nosql

我是新手cassandra,我将其用于分析任务(需要良好的索引).

我在这篇文章(和其他人)中读到:cassandra,通过非主键选择,我无法使用非主键列查询我的数据库WHERE clause.

为此,似乎有3种可能性(ALL具有主要缺点):

  • 创建二级索引(不建议用于性能问题).
  • 创建一个新表(即使cassandra没问题,我也不想要冗余数据).
  • 在主键中放置我想要查询的列,在这种情况下,我需要在WHERE子句中定义主键的所有部分,并且我不能使用除INor 之外的其他运算符=.

有没有其他方法来实现我想要做的事情(WHERE clause使用非主键列)而没有上面的3个约束?

bec*_*hbd 6

从Cassandra本身,您只能使用上面指定的选项.如果你想知道为什么看看这里:

深入了解CQL的哪些条款

但是,如果您尝试对存储在Cassandra中的信息运行分析,那么您是否考虑过使用Spark.Spark专为分布式系统上的大规模数据处理而构建.实际上,如果您正在使用Datastax(请参阅此处),它在Spark和Cassandra之间具有一些很好的集成功能,专门用于加载和保存数据.它有免费(社区)和付费(企业)版本.