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

发布于 2024-12-21 12:25:16 字数 614 浏览 1 评论 0原文

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

Cassandra:

  • 适合我们的写入密集型系统。 (+)
  • 看起来很难做聚合(对于分析非常重要)(有什么好的方法吗?只需阅读有关 Twitter rainbird 的幻灯片,看起来不错)(?)
  • 我不太喜欢 java。 (-)

MongoDB:

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

你们能帮我选择一个或回答我上面的一些问题吗?

谢谢。

Now I have a project with ads exchange service (something like google double click) and I have to pick a high-scalable database. I'm thinking about mongodb or cassandra.

Cassandra:

  • fit with our write-intensive system. (+)
  • looks hard to do aggregate(very important for analytics) (is there a good way? Just read slide about Twitter rainbird, seem good) (?)
  • I dont prefer java much. (-)

MongoDB:

  • Seem easier to do analytics. (have build-in aggregate functions) (+)
  • more RAM-consuming? (because of document-oriented vs key-value Cassandra) (?)
  • write perfomance compare to Cassandra? (?)
  • javascript shell and natural fit with node.js(one important part in our project) (+)
  • http://pastebin.com/raw.php?i=FD3xe6Jt - This article make me cautious. (-)

Can you guys help me to pick the one or answer some of my questions above

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凉栀 2024-12-28 12:25:16
爱人如己 2024-12-28 12:25:16

这在很大程度上取决于您的领域,大多数情况下人们可能会选择 Mongo。
例如 http://square.github.com/cube/ 是基于 Mongo 构建的。

Cube 是一个用于可视化时间序列数据的开源系统,基于 MongoDB、Node 和 D3 构建。如果您发送 Cube 带时间戳的事件(带有可选的结构化数据),您可以轻松构建内部仪表板聚合指标的实时可视化。例如,您可以使用 Cube 来监控网站流量,以 5 分钟为间隔计算请求数量:

Cassandra 的大多数用例都源于需求,高可用性,这是它的主要功能AFAIK。您的需求似乎集中在以一种廉价的方式将可查询数据推送到横向扩展数据库中,而 mongo 在查询方面几乎与 RDBMS 匹配。 Mongo 可能也更容易处理。

It depends a lot on your domain, most cases one would probably choose Mongo.
For example http://square.github.com/cube/ is built on Mongo.

Cube is an open-source system for visualizing time series data, built on MongoDB, Node and D3. If you send Cube timestamped events (with optional structured data), you can easily build realtime visualizations of aggregate metrics for internal dashboards. For example, you might use Cube to monitor traffic to your website, counting the number of requests in 5-minute intervals:

Most use cases of Cassandra draw from the need oh high availability that's the main feature of it afaik. Your needs seem to be centered around having a cheap way to shove queryable data in a scale-out DB, and mongo almost matches RDBMS in regards to querying. Mongo is also probably easier to deal with.

遥远的绿洲 2024-12-28 12:25:16

我认为 cassandra 很适合解决这个问题。

只要有您选择的语言的客户端库,您不需要了解太多 java 就可以运行它(除了安装 java 之外)。

Cassandra 0.8+ 现在具有原子计数器支持 - 非常适合展示次数/点击跟踪。

您还可以在 cassandra 之上运行 hadoop,为您提供一个经过验证的平台,用于将 MapReduce 作业写入进行分析/聚合并将结果也存储回 Cassandra。

查看有关 cassandra 和 hadoop 的幻灯片: http://www.slideshare.net/jeromatron/cassandrahadoop- 4399672

我希望有所帮助。

I think cassandra is a good fit for this problem.

You don't need to know much java to get it running (other than install java), as long as there is a client library in your chosen language.

Cassandra 0.8+ now has atomic counter support - perfect for impressions/click tracking.

You could also run hadoop on top of cassandra, giving you a proven platform for writing map reduce jobs to do analytics/aggregations and store the results back to Cassandra too.

Check out this slideshow about cassandra and hadoop: http://www.slideshare.net/jeromatron/cassandrahadoop-4399672

I hope that helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文