database - 为分析选择合适的数据库的困难

标签 database amazon-ec2 nosql

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

我花了一周半的时间收集有关不同解决方案的信息,但似乎有太多让我感到迷茫的地方。我发现最有前途的是 Cassandra、Hbase 和 Hive。我还查看了 MongoDb、Redis 和其他一些,但它们看起来适合不同的需求,或者社区不太活跃。

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

我也考虑过使用 MySql(因为无论如何我们都会将其用于所有用户信息等),但是将来扩展会更加困难,我认为在某些时候我们无论如何都必须转移到其他数据库.我们也非常愿意投入一些时间和精力来插入所选数据库的发展。

最佳答案

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

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

关于database - 为分析选择合适的数据库的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179465/

相关文章:

java - Hibernate:只需保存一个带有@EmbeddedId 的实体作为主键

amazon-s3 - 如何确定哪个 AWS 位置最适合为特定区域的客户提供服务?

java - 京都内阁/伯克利 DB : Hash table size limitations

nosql - 通过 https 访问 couchdb 蒲团

python - 如何从许多 JSON 文件创建快速、可查询的索引(最好使用 Python)

javascript - Express JS 的目录困惑

php - 在后台发送论坛而不重新加载页面

javascript - 在 HTML5 中存储用户输入数据

wordpress - 更新 ec2 上的 WordPress 主题

java.net.UnknownHostException : <<hostname>> : unknown error