如何在 Cassandra 中构建动态查询?

How to build a Dynamic Query in Cassandra?

根据论坛和少数人的经验,我理解 Java 驱动程序可以根据以下内容提供帮助 post ..

1

但是有什么方法可以在没有 java 驱动程序的情况下在 Cassandra 中构建查询。 不幸的是,这里没有人回答这个问题 Dealing with dynamic Query String in Cassandra。趁机再养。

谢谢, 普拉萨德

这里有两个方面:

  1. 最简单的方法 - 构建查询本身 - 这可以通过连接字符串或使用第一个问题中讨论的 QueryBuilder 来完成。
  2. 最复杂的一个 - 如何执行查询。在 Cassandra 中,要求您在执行查询时(至少)提供分区键。否则,您将执行完整的 table 扫描,最有可能以读取超时结束。

为了缓解第二个问题,人们正在进行非规范化并创建辅助 tables,其中特定字段是分区键。但这无法自动完成,因为您可能会以特定 table 的非常倾斜的数据分布结束。二级索引也有局限性,最好与分区键一起使用。

P.S。在 DataStax Enterprise 中,这可以通过在 table 上添加 DSE Search 索引来稍微放宽,但性能会比纯 Cassandra 略差。