需要 nosql 数据库进行按位条件查询
Posted
技术标签:
【中文标题】需要 nosql 数据库进行按位条件查询【英文标题】:Need nosql database for queries with bitwise condition 【发布时间】:2014-12-04 17:50:20 【问题描述】:我目前正在使用 apache cassandra 数据库来存储信息。 但是 cassandra 不允许执行按位运算的查询。
我需要执行查询:
从 field1 = 的表中选择 count(*)和 BIT_COUNT(field2 ^ ?)
但 cassandra 不允许这样做。
您能建议一些 nosql 或嵌入式快速 sql 解决方案吗?
数据库包含超过 100 万行。
【问题讨论】:
【参考方案1】:如果您对 Cassandra 感到满意,您可以添加 Spark 并使用 Spark SQL 执行类似的查询。 Spark 有一个开源连接器,可以使用 Cassandra 作为其分布式数据库。
还有 DataStax Enterprise,它允许您与 Hadoop/Hive 集成并获得类似的分析功能。 (DataStax Enterprise 也是一种获取 Spark 功能的简单方法。)
【讨论】:
这个 apache spark 是什么?还有数据库是哪个集群还是什么? 是的,Apache Spark 能够替代 Hadoop 的 M/R 框架,并且比 hadoop 的 M/R 更灵活、更快且开销更少。它需要像 Cassandra(或 Hadoop 的 HDFS)这样的底层分布式数据库。我不确定您的数据库/集群问题是什么,您能详细说明一下吗? 问题是spark如何处理数据,将数据加载到内存中还是如何? 还有。 spark是有自己的数据存储还是只使用底层的Cassandra? Spark 将数据加载到内存中,如果这还不够,则具有磁盘溢出机制。据我所知,Spark 没有自己的数据存储机制,而是依赖于作者提供的“弹性分布式数据集”(RDD)。每个 RDD 都可能依赖于不同的底层技术(cassandra、hdfs 等)。它只会将您明确告诉它写回的内容写回 Cassandra。以上是关于需要 nosql 数据库进行按位条件查询的主要内容,如果未能解决你的问题,请参考以下文章