选择正确的数据库进行分析的难度

时间:2010-07-05 12:34:03

标签: database amazon-ec2 nosql

我需要一些帮助来决定我们应该为项目选择哪个数据库。我们正在开发一个Web应用程序,用于收集有关用户行为的数据并对其进行分析(不好的解释,但我无法提供更多详细信息; Web分析数据是我们的核心数据集之一)。我们估计我们每周会将大约2亿行插入数据库+根据原始数据计算的数据。数据必须保留至少六个月。

上周我花了一半时间收集有关不同解决方案的信息,但似乎有很多我觉得迷失了。我找到的最有希望的是Cassandra,Hbase和Hive。我还看了MongoDb,Redis和其他一些人,但看起来他们看起来很适合不同的需求,或者社区不那么活跃。

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

我也在使用MySql(因为我们会将其用于所有用户信息等),但是未来扩展会更加困难,我认为在某些时候我们不得不转移到其他数据库。我们也非常愿意投入一些时间和精力来推动所选数据库的发展。

1 个答案:

答案 0 :(得分:3)

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

  • 这是经过验证的技术,很多大型网站都在使用它(Facebook ......)。
  • 编写了很多文档,甚至是Hadoop书籍。
  • Hive提供了类似SQL的查询语言和命令行,所以即使是不懂Java / Python等的人也是如此。可以轻松编写查询。
  • 它是免费的,社区人似乎很有帮助:)