cassandra - 如何在 Cassandra 中构建动态查询?
问题描述
根据论坛和少数人的经验,我了解 Java 驱动程序可以根据以下帖子提供帮助..
Cassandra 3 Java Driver构建动态查询1
但是有没有办法在没有 java 驱动程序的情况下在 Cassandra 中构建查询。不幸的是,没有人回答这里的查询 处理 Cassandra 中的动态查询字符串。把它当作再次举起它的机会。
谢谢,普拉萨德
解决方案
这里有2个方面:
- 最简单的一个 - 查询本身的构建 - 这可以通过连接字符串来完成,或者通过使用第一个问题中讨论的QueryBuilder来完成。
- 最复杂的一个 - 如何执行查询。在 Cassandra 中,要求您在执行查询时(至少)提供一个分区键。否则,您将执行最有可能以读取超时结束的全表扫描。
为了缓解第二个问题,人们正在进行非规范化并创建特定字段是分区键的辅助表。但这不能自动完成,因为您可能会以特定表的非常倾斜的数据分布结束。二级索引也有限制,最好也与分区键一起使用。
PS 在 DataStax Enterprise 中,这可以通过在表上添加DSE Search索引来稍微放松,但性能会比纯 Cassandra 稍差。
推荐阅读
- python - Flask 组织棉花糖模式
- python - 从困在 .filename.py.swp 文件中的 Python 脚本中恢复输出?
- javascript - 带有 javascript 对象的三元表达式
- javascript - JavaScript和php在一段时间后停止工作,只有在我重命名一些变量时才有效
- c++ - 如何在c ++中找到第一个最大值?
- python - 如何使用 python 导入共享点列表项
- r - 如何删除多种语言的停用词?
- bash - 在多个 bash 脚本中包含常用函数
- spring - spring boot添加=在post方法中的数据之后
- sql - 一段时间内总和为零的个人列表