首页 > 解决方案 > 如何在 Cassandra 中构建动态查询?

问题描述

根据论坛和少数人的经验,我了解 Java 驱动程序可以根据以下帖子提供帮助..

Cassandra 3 Java Driver构建动态查询1

但是有没有办法在没有 java 驱动程序的情况下在 Cassandra 中构建查询。不幸的是,没有人回答这里的查询 处理 Cassandra 中的动态查询字符串。把它当作再次举起它的机会。

谢谢,普拉萨德

标签: cassandracassandra-3.0dynamicquery

解决方案


这里有2个方面:

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

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

PS 在 DataStax Enterprise 中,这可以通过在表上添加DSE Search索引来稍微放松,但性能会比纯 Cassandra 稍差。


推荐阅读