【问题标题】:Storing a Fractional Twitter Firehose with MongoDB on EC2 [closed]在 EC2 上使用 MongoDB 存储分数 Twitter Firehose [关闭]
【发布时间】:2012-12-11 09:29:58
【问题描述】:

我希望满足以下要求:

  1. 存储大量推文(例如每天 500 万条)和相关的用户资料。
  2. 能够查询数据(获取在时间 X 和时间 Y 之间创建的所有推文)。
  3. 能够随着数据大小的增加将服务器添加到集群中。

我不熟悉 MongoDB。

A.我可以用 MongoDB 满足以上要求吗?

B.如果我要使用 EC2 执行上述操作,您会推荐什么规格的硬件: 例如:从 2 个大型实例开始,每个实例附加 500GB EBS。

谢谢。

谢谢。

【问题讨论】:

  • 您需要构建一个测试系统并对其进行基准测试,并将其与您的其他未指定用例进行匹配。可能有一种方法可以让任何现代数据库系统满足您所描述的需求。
  • 我不只是评论了这个更广泛的版本吗?无论如何,我同意您在发布之前需要做更多的研究和测试。我的意思是您有这种情况,并且您正在询问您不熟悉的技术。你需要多研究一下
  • @Sammaye,我考虑了你的观点,我删除了这个问题并将其缩小到我认为更容易处理的问题。而且,如果有人问我关于 MySQL 的相同问题,我将能够为他们回答,我很乐意这样做。我正在做更多的研究,但我认为接触到在我之前走过这条路的人是这个网站的重点。
  • @WPCoder,我正在为此构建一个合成推文生成器。但是,例如,如果有人问我是否可以使用 MySQL 进行上述操作,我会建议他们到别处寻找。
  • @user1172468 我想问你为什么 MySQL 不能在这种情况下工作,因为你没有提供足够的上下文来提供答案。事实上,考虑到您提供的详细信息,一系列带有简单索引的平面文件就可以使用。

标签: mongodb amazon-web-services amazon-ec2 bigdata nosql


【解决方案1】:

真的,你的问题缺乏任何真正的研究你的目的,因此它不清楚并且有点离题,但是我会就这个话题给出一些指示;也许他们会帮助你。

是的,MongoDB 就像 MySQL 或 MSSQL 或 Postgres SQL 一样可以处理这种工作负载。这个数据集对数据库来说并不是什么新鲜事。是的,我想如果您每秒存储 9,000 条推文,每天存储 5 亿条推文(http://yearinreview.twitter.com/en/tps.html),您可能需要非常仔细地研究您对技术的选择(就像 Twitter 在他们选择走 NoSQL 路线时所做的那样),但您是存储远少于此。然而,即使在这种情况下,已经证明通过正确的设置(此处为 Facebook)MySQL 也可以处理这样的负载。

所以这不是一个问题:这个数据库可以处理这个吗?更多的是一个问题:我的数据库如何处理这个?

我要提到的第一件事是对如何在 MongoDB 中构建服务器集群进行更多研究,我可以肯定地说,如果您需要副本 (http://docs.mongodb.org/manual/replication/) 和分片 (http://docs.mongodb.org/manual/sharding/),您将需要两台以上的服务器.

如果您真的想要我对此的个人意见,我选择不使用资源较多的服务器,例如大型实例,而是选择数量更多的小型服务器。从长远来看,它们被证明更便宜,实际上更容易管理。

现在讨论数据库如何再次处理这个问题。我已经介绍了分片和副本集。这两个部分对您来说非常重要,可以让您的数据库很好地扩展到集群中并保持数据的一致性和可用性,但这只是其中的一部分。您还必须拥有正确的工作集、正确的索引和正确的架构(那里有很多权利,不是英语错误 - 故意的)。

我可以想象您将为此创建两个集合,一个 user 集合和一个 tweet 集合,可能在 _id 上为用户提供索引,user_idtweet。您可能会将它们制成分片键,并将 tweet 集合拆分到 user_id 上,这样您就可以通过仅查询一台计算机而不是执行全局分散和收集操作来快速将用户的推文分布在多台计算机上。但是考虑到您可能也必须进行时间操作(在 x 和 y 日期之间获取推文),您可能想要查看一些基于时间的分片索引,我不确定;这是为了你的测试。

这应该让您开始思考和研究 MongoDB 以用于您的用例。

希望对你有帮助,

【讨论】:

    猜你喜欢
    • 2021-01-09
    • 2014-12-27
    • 2014-05-08
    • 1970-01-01
    • 2011-05-15
    • 2016-09-17
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    相关资源
    最近更新 更多