我目前正在开展一项需要支持的长期项目:
至关重要的是,Google Analytics引擎的性能不会受到来自API调用的读/写量的影响。
因此,我认为我可能不得不使用"前端"数据库和某种"后端"数据仓库。我还需要像Elastic Search或Solr索引存储在数据仓库中的数据。
问题:
如果是这样......
最后......
请注意,我的目的不是开始讨论哪些更好,而是要了解如何更有效地使用它们。如果它有所不同,主要是代码是用Scala和Java编写的。
我真的很感谢你的帮助。我基本上都在学习,所有的评论都非常有帮助。
谢谢。
答案 0 :(得分:1)
首先让我们谈谈Cassandra
这是一个具有最终一致性的NoSQL数据库,这对您来说基本上意味着Cassandra集群中的不同节点可能具有不同的快照'在存在群集间通信/可用性问题的情况下的数据。但数据最终会保持一致。
因为你认为它是一个前端'数据库您需要了解的是如何为数据建模。 Cassandra可以利用索引,但您仍需要预先定义访问模式。
通常Cassandra和Hadoop之间没有任何关系(除了两者都是用Java编写的),但Datastax发行版(企业版)直接从Cassandra获得Hadoop支持。
作为一般工作流程,您可以从您的小型'中读取/写入最新数据(比如说 - 最后24小时)。数据库表现出足够的性能(Cassandra对它有很好的支持),你可以将任何超过X(超过24小时)的东西移到一个长期存储空间'比如Hadoop,你可以运行所有类型的Map Reduce等。
关于文本搜索,它实际上取决于你需要什么 - 弹性搜索是对Solr和反向的竞争。你可以在这里看到自己如何比较http://solr-vs-elasticsearch.com/
答案 1 :(得分:0)
至于你的第三个问题,
我认为Cassandra更像是一个保存数据的数据库。
Hadoop负责提供一个计算模型,让您分析大数据 卡桑德拉。 因此将Cassandra与Hadoop结合起来非常有帮助。
还有其他可以考虑的方法,例如与mongo和hadoop结合使用, 因为mongo支持hadoop和它的数据之间的mongo-connector。
此外,如果您有一些搜索要求,您也可以使用solr,直接从mongo生成索引。