WHERE子句具有非主键缺点

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

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

要做到这一点,似乎有三种可能性(所有主要缺点):

  • 创建一个二级索引(不建议用于性能问题)。
  • 创建一个新表(即使cassandra没问题,我也不需要冗余数据)。
  • 把我想要查询的列放在主键中,在这种情况下,我需要在我的WHERE子句中定义主键的所有部分,并且我不能使用除IN=之外的其他运算符。
  • 有没有另外一种方法去做我想做的事情(带有非主键列的WHERE clause )而没有上面的3个约束?


    从Cassandra本身来说,你仅限于你在上面指定的选项。 如果你想知道为什么看看这里:

    CQL的深层次看哪里条款

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


    我假设表是为不同的目的而设计的,因为你想查询的字段不是分区键的一部分。 我的建议是复制表格并将其键入想要查询的字段。 我会建议设计一个新的表格,以便根据数据建模概念使用它。

    Cassandra提供了一些优点,例如线性缩放等,通过对您可以对CQL执行的操作施加某些限制。

    链接地址: http://www.djcxy.com/p/90409.html

    上一篇: WHERE clause with non primary key disadvantages

    下一篇: How to get the overall most popular tags from normalized tables?