2010-07-05 72 views
3

我需要一些帮助来决定我们应该为我们的项目选择哪个数据库。我们正在开发一个Web应用程序,收集有关用户行为的数据并分析这些数据(糟糕的解释,但我无法提供更多细节; Web分析数据是我们的核心数据集之一)。我们估计,我们将每周插入大约2亿行到从原始数据计算的数据库+数据中。数据必须保留至少六个月。为分析选择合适的数据库的难度

我已经花了上周和半年收集有关不同解决方案的信息,但似乎有太多,我感到迷失。我发现的最有希望的是Cassandra,Hbase和Hive。我也看过MongoDb,Redis和其他一些人,但他们看起来像适合不同的需求,或者社区并不那么活跃。

  • 整个应用程序将运行在亚马逊的EC2。作为一家初创公司,现收现付的定价模式就像一只手套一样适合我们。数据库在云中管理越容易,越好。
  • 可伸缩性很重要。我们将生成的数据量会有很大差异,并且会随着时间的推移而增长。
  • 我们无法支付巨额授权费用。否则,我们可能会使用类似http://www.vertica.com/
  • 我们需要对数据进行各种分析,他们越容易写得越好。我想过使用Map/Reduce来完成任务; Hbase似乎比Cassandra有更好的支持,Hive拥有它自己的查询语言。实时分析是不需要的;我们可以每天计算一次结果并将它们铲回数据库以便快速检索。
  • 压缩支持会很好,但不是必需的(磁盘空间很便宜:)。

我也不过关于使用MySQL(因为我们将使用所有的用户信息等等反正),但比例会更难在未来,我认为在某个时候,我们将不得不转移到一些其他数据库无论如何。我们也非常愿意投入一些时间和精力来推动所选数据库的发展。

回答

3

我们决定继续使用Hadoop(& Hive/Hbase)作为我们的主数据存储。造成这种情况的主要原因是:

  • 它被证明是技术,许多大网站正在使用它(Facebook ...)。
  • 很多关于甚至Hadoop书籍的文档都已经编写完成。
  • Hive提供了很好的SQL查询语言和命令行,所以即使不懂Java/Python /等的人也可以。可以轻松地编写查询。
  • 它是免费的,社区的人似乎是有帮助的:)