选择广告/分析服务的数据库

时间:2011-12-17 19:50:37

标签: node.js mongodb cassandra analytics nosql

现在我有一个带广告交换服务的项目(比如谷歌双击),我必须选择一个高度可扩展的数据库。我在考虑mongodb或cassandra。

卡桑德拉:

  • 适合我们的写密集型系统。 (+)
  • 看起来难以聚合(对于分析而言非常重要)(有一个好方法吗?只是阅读有关Twitter雨鸟的幻灯片,看起来不错)(?)
  • 我不喜欢java。 ( - )

MongoDB的:

  • 似乎更容易进行分析。 (具有内置聚合函数)(+)
  • 更多RAM消耗? (因为面向文档的vs键值Cassandra)(?)
  • 写出与Cassandra相比的性能? (?)
  • javascript shell和自然适合node.js(我们项目中的一个重要部分)(+)
  • http://pastebin.com/raw.php?i=FD3xe6Jt - 这篇文章让我很谨慎。 ( - )

你们可以帮我挑选一个或回答上面的一些问题

感谢。

3 个答案:

答案 0 :(得分:4)

答案 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

我希望有所帮助。