4

为基于 Web 的应用程序存储大量数据的最佳方式是什么?

每条记录只有 3 个字段,但每天将有大约 1.44 亿条记录 - 存储一个月 - 总共 4,464,000,000 条记录。让我们四舍五入到 50 亿。

数据必须可在关键字上搜索并尽快将结果返回给最终用户。

  • 哪种编程语言?
  • JSON / XML / 一些我从未听说过的数据库系统?
  • 什么样的基础设施?想象一下,这个系统只能同时满足最多 1,000 个用户的需求。

我假设无论您搜索 10 条记录还是 100 亿条记录,代码都是相同的,您只需要提高效率即可。我还假设 mySQL/PHP 没有机会,我们将为托管解决方案支付一大笔钱。

只需要一些关于从哪里开始的指导,真的。谢谢!

4

1 回答 1

4

大数据生态系统中有许多工具(NoSQL 数据库、分布式计算、机器学习、搜索等)可以回答您的问题。由于您的应用程序的写入量很大,因此我会推荐 Apache Cassandra,因为它具有出色的写入性能(尽管它需要比 NoSQL/文档数据库(如 MongoDB)更多的数据建模)。您还需要基于 Solr 或 ElasticSearch 的搜索解决方案,以及用于索引和查询的 Map/Reduce。

编程语言无关紧要,除非您的业务最终用户将针对您的大数据编写查询,在这种情况下,您可以使用非常类似于 SQL 的东西,例如 Hive 或 Pig。为了帮助您入门,以下(最近的)链接可能会让您了解如何根据您的需求选择分析堆栈 - 请注意,每个数据库或分布式计算范例都专门针对某些特定用例:

我们如何选择我们的分析堆栈

还可以查看各种用例的高可扩展性,了解公司如何解决可扩展性问题。

于 2013-03-01T16:52:00.337 回答