2012-07-17 62 views
2

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

每个记录只有3个字段,但每天将有大约1.44亿条记录 - 存储一个月 - 总计444.4亿条记录。让我们凑到50亿。

数据必须通过关键字搜索&尽可能快地向最终用户返回结果。

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

我假设代码是相同的,无论你是在搜索10条记录还是100亿条记录,你都必须提高效率。我还假设mySQL/PHP没有机会,我们将为托管解决方案付出非常大的款项。

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

+0

您已将问题标记为“数据操作”,而问题本身就像您只需要搜索和显示一样。那么:只读还是访问? – 2012-07-17 12:04:43

+0

是的,谢谢马丁!删除了标签。而且,'甚至更好',用户没有写入权限 - 写入是通过cron完成的,所以应该只有一个用户(cron作业)写入'数据库'。 – Sarah 2012-07-17 20:10:19

+0

@Sarah,这个cron作业多长时间写入数据库?它会简单地添加记录到最后,还是会运行“DELETE”和“UPDATE”查询? – 0b10011 2012-08-24 13:58:41

回答

2

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

编程语言并不重要,除非您的业务最终用户将针对您的大数据编写查询,在这种情况下,您可以使用类似SQL的东西,如Hive或Pig。为了让您开始使用,下列(最近)链接可能给你如何根据自己的需求来挑选一个分析栈一些想法 - 请注意,每个数据库或分布式计算模式专门用于某些特定用例:

How we picked our analytics stack

另请参阅High Scalability了解各种用例,了解公司如何解决其可伸缩性问题。

相关问题