15

我的团队要求我在 Cassandra 和 SOLR 之间进行选择,以便更快地响应@前端查询。我告诉他们 Cassandra 是 NOSQL 数据库,而 SOLR 是索引。但是后来他们说我们可以将完整的数据库推送到 SOLR(比如将 SOLR 用作数据库),或者我们可以将 Cassandra 与 SOLR 一起使用。都糊涂了。

我们正在处理的数据量就像 10 亿个分布在 4 个 MySQL 表中(使用连接获取),我们只从网站获得读取查询。我们不需要全文搜索

我认为 SOLR 不能轻易被击败的是它的全文搜索功能,但我们不需要它。

那么,SOLR 还有什么 Cassandra 无法提供的,Cassandra 有什么可以在我们的特定情况下替代 SOLR 的呢?

换句话说,谁的表现会更好?卡桑德拉一个人?SOLR 作为一个单独的数据库?还是两者一起?最重要的是为什么和为什么不呢?

对我来说,在我的下一次团队会议上用优势支持我的选择真的很重要,就好像为什么一个比另一个更好一样。

并提前感谢。

编辑:

  • SOLANDRA不是一个选择,因为我猜它没有那么成熟,也不再需要维护
  • DataStax不是一个选项,因为 SOLR 功能仅在企业版中提供
4

4 回答 4

7

如果你不需要 Solr 的全文搜索功能,我认为没有理由选择它而不是 Cassandra。

(披露:我为 DataStax 工作。)

在操作上,由于基于 Dynamo 的架构,处理 Cassandra 集群会简单得多。对 Solr 进行分片可能会非常痛苦,这也是我们 DataStax 将搜索内置到 DSE 中的重要原因之一;这是很多人想要避免的。我不是想在 DSE 上卖给你,只是指出 Solr 的缺点。

例如,当您想使用 Solr 更改分片数量时,您必须创建并构建一个全新的索引。您必须担心 Solr 集群的死锁。还有其他几个限制:http ://wiki.apache.org/solr/DistributedSearch

你还没有说太多关于你需要支持什么样的查询。添加该信息将为您提供更好的答案。

于 2012-04-18T00:43:32.960 回答
4
  • Cassandra 是一个 NoSQL 数据存储,旨在处理大量数据。兆字节及以上。它绝对是为执行而设计的。
  • 请记住,NoSQL DB 或数据存储在查询方面的功能有限。他们不会有 JOIN 查询。因为这会杀死一个系统。想想吧!
  • 您肯定能够非常快地读/写,并且可以查询一些数据。
  • 灵活的模式,您可以将稀疏数据推送到其中。也就是说,在一般数据库中,您将 NULL 推送为空条目,在这里您根本不推送它 :) 您不需要!
  • 没有全文搜索。

这就是大 BUT 的用武之地。

  • 说了这么多,另一端的 SOLR 是 TF-IDF 全文搜索引擎。虽然您可以将它用于您的数据库。
  • 灵活的架构。只需标记不需要的字段。
  • Solr 将有助于快速标记、解析和索引数据。会有极好的反响。它返回 XML,您可以解析 XML 以创建可表示的数据。
  • 读取查询很快,我的意思是非常快。但是我没有比较 Cassandra 和 SOLR 可以分享。

最后,因为你想要 CASSANDRA 和 SOLR 在一起。看看SOLANDRA(前 Lucandra)

于 2012-04-17T05:39:52.690 回答
4

你也可以看看Datastax
There's Community and Enterprise edition,虽然我认为 Solr 不包含在社区版中:(

Solandra 不再积极开发,作者移至 Datastax 并继续在那里工作。

恕我直言,Cloudera 用于 Hadoop,即 Datastax 用于 Cassandra。

于 2012-04-17T12:09:11.963 回答
1

Solrs indexing features would out perform Cassandra for reads. It'll index popular queries so frequent ones will be faster still. It was built for reads, cassandra is built to store. But as already stated Cassandra will scale awesomly if that's needed. Why not benchmark single node, 1 mill random text strings, 1mill query average. Either of em will out perform mysql let alone mysql join queries. PS solr will soon support joins I think solr 4.....

于 2013-01-22T10:01:59.563 回答