现在我有一个带广告交换服务的项目(比如谷歌双击),我必须选择一个高度可扩展的数据库。我在考虑mongodb或cassandra。
卡桑德拉:
MongoDB的:
你们可以帮我挑选一个或回答上面的一些问题
感谢。
答案 0 :(得分:4)
我不了解Cassandra,但MongoDB在将其用于分析方面具有一些优势:高并发性,分片,将事件的所有内容存储在单个文档中,upsert和$inc等功能
有关更详细的说明,请查看以下资源:
MongoDB Analytics - videos
http://blog.mongodb.org/post/171353301/using-mongodb-for-real-time-analytics
http://www.mongodb.org/display/DOCS/Use+Cases
http://www.slideshare.net/jrosoff/scalable-event-analytics-with-mongodb-ruby-on-rails
http://nosql.mypopescu.com/post/3508305955/fast-asynchronous-analytics-with-mongodb
http://blog.opengovernment.org/2011/02/24/fast-asynchronous-analytics-with-mongodb/
http://blog.10gen.com/post/4416876632/london-startup-ubervu-on-storing-5tb-of-data-in-mongodb
答案 1 :(得分:1)
这很大程度上取决于您的域名,大多数情况下可能会选择Mongo 例如,http://square.github.com/cube/建立在Mongo上。
Cube是一个开源系统,用于可视化时间序列数据,构建在MongoDB,Node和D3之上。如果您发送多维数据集时间戳事件(带有可选的结构化数据),则可以轻松构建内部仪表板的聚合度量标准的实时可视化。例如,您可以使用多维数据集监控您网站的流量,以5分钟为间隔计算请求数量:
Cassandra的大多数使用案例都是从高可用性中得出的,这是它的主要特征。您的需求似乎集中在一个便宜的方法来推广可扩展数据库中的可查询数据,而mongo几乎与查询相关的RDBMS相匹配。 Mongo也可能更容易处理。
答案 2 :(得分:0)
我认为cassandra非常适合这个问题。
只要有所选语言的客户端库,您就不需要知道多少java来运行它(除了安装java)。
Cassandra 0.8+现在有atomic counter support - 非常适合展示次数/点击跟踪。
您还可以运行hadoop on top of cassandra,为您提供经过验证的平台,用于编写地图缩减作业以进行分析/聚合,并将结果存储回Cassandra。
查看有关cassandra和hadoop的幻灯片:http://www.slideshare.net/jeromatron/cassandrahadoop-4399672
我希望有所帮助。