Elasticsearch vs Cassandra与Elasticsearch与Cassandra
我正在学习NoSQL,并根据我的客户的要求寻找不同的选项。 在提出这个问题之前,我已经经历了各种资源(一个在NoSQL知识匮乏的人)
- 我需要以更快的速度存储数据并读取数据。
- 完全失效保护,易于扩展。
- 能够searchGoogle Analytics的数据。
我结束了一个简短的列表: Cassandra and Elasticsearch
我所理解的是Cassandra是一个完美的NoSQL存储解决scheme,因为我可以使用索引写入数据和读取数据。 分析失败或可能失败。 未来,如果我想从from_date to to_date
数据,或更多的方式获取数据的分析,如果我没有正确地devise数据模型或保持长远的眼光,这可能是在不断变化的世界很难。
虽然Elastic Search
是最好的索引(由Lucene支持),并可以随机search数据通过抛出一些随机文本。 但是,即使我想检索数据from_date to to_date
(我希望它可能),它的工作原理是否相同。 但真正的问题是,它是一个search引擎,还是像Cassandra一样完美的NoSQL数据存储? 如果是的话,为什么我们仍然需要卡桑德拉?
如果这两者都在不同的世界,请解释一下! 我们如何将它们结合起来以获得更有效的解决scheme?
我们的一个应用程序使用存储在Cassandra和ElasticSearch中的数据。 我们使用Cassandra来访问这些logging,并将数据复制到devise用于遵守特定应用程序请求的查询表中。 对于比我们的查询表可以允许更自由的search,ElasticSearch很好地执行该function。
我们问过同样的问题(我们自己)……“为什么我们不能从ElastsicSearch获得所有的东西?
答案是ElasticSearch被devise成一个search引擎,而不是一个持久的数据存储。 有时ElasticSearch丢失写入。 ElasticSearch中的架构更改很难做到,而不会将所有内容都丢掉并重新加载。 为此,我编写了旨在使ElasticSearch与我们的Cassandra群集保持同步的作业。 关于这个话题还有一个关于Quora的相当新近的讨论 ,也得到了类似的观点。
这就是说,ElasticSearch 非常适合作为search引擎。 Cassandra作为一个可扩展,高性能的数据存储工作良好。 但查询数据与查找数据不同。 有些时候我们需要一个或另一个,而两者的结合对我们的应用来说效果很好。 它可能(或不可能)适合你的工作。
至于分析方面,我在使用Cassandra Spark连接器方面取得了一些成功,可以处理更复杂的OLAP查询。 希望有所帮助。
Cassandra + Lucene是一个不错的select。 这个问题有不同的举措,例如:
- Stratio的Cassandra Lucene索引 – 来源于Stratio Cassandra,是Apache Cassandra的一个插件,它扩展了它的索引function。 ( https://github.com/Stratio/cassandra-lucene-index )
- Stratio Cassandra,它是Apache Lucene的本地集成,非常有趣。 ( https://github.com/Stratio/stratio-cassandra ) – 这个项目已经停止Stratio的Cassandra Lucene索引
- Tuplejump Calliope,就像Stratio Cassandra一样,但不太活跃。 ( https://github.com/tuplejump/stargate-core )
- 通过DatastaxsearchDSE。 它允许在Apache Solr中使用Cassandra,但它是一个专有的选项( http://www.datastax.com/what-we-offer/products-services/datastax-enterprise )
在自己处理这个问题之后,我已经意识到像casandra这样的NoSQL数据库是非常好的,当你想要确保你的数据模式保持可靠的写入操作时,并且不想利用elasticsearch提供的索引操作。 如果你想保留一些索引数据,那么elasticsearch是好的,如果你相信你的计划,只会做比读写更多的读。
我的情况是数据分析。 所以我在弹性search中保留了很多的Latices,因为后来我想遍历数据来看看下一步应该做什么。 如果我想在我的分析桩中对数据模式进行很多更改,我会使用casandra。
还有很多很好的代表工具,比如kibana,你可以用一些好的graphics来展示你的数据。 也许我很懒,但他们很好看,他们帮助我。
将数据存储在Cassandra和ElasticSearch的组合中可以提供大部分function。 它允许您查找键值表,并且还允许您在索引中search数据。
该组合为您提供了很大的灵活性,非常适合您的应用。