您的位置:首页 > 数据库 > MySQL

Twitter:为何弃用MySQL转而使用NoSQL

2011-01-07 10:46 260 查看
导语:
2009年开始掀起的“NoSQL革命”在Web领域造成了极大的反响,Twitter也在2010年对
其Tweets数据类型引进新生的NoSQL数据库。近日,国外知名网站readwriteweb.com企业频道作者Klint
Finley撰写了一篇有关“Twitter放弃MySQL转而使用NoSQL缘由”的文章。



以下为文章摘要:

infoQ在今年早些时候发布了一个演讲视频,在该视频中,Kevin
Weil谈到了公司应如何使用NoSQL。Weil指出Twitter严重依赖于MySQL。然而,当MYSQL在许多用途上表现的并不理想的时候
Twitter使用了NoSQL解决方案。据威尔介绍,在2009年里,Twitter用户数从1月份的每天约
200万人,激增至12月份的每天近5000万人。每天登陆Twitter的用户数量增长已经超过了20倍。目前Twitter每天产生的用户数据在
12TB左右,而每年约产生4PB的数据。

Scribe

Twitter的系统日志在一段时间后停止进行压缩,所以Facebook使用Scribe来替代它。日志的收集创建在Facebook开源框架
上,Twitter已经发布了一些Scribe的补丁。Twitter使用Scribe来记录Hadoop的日志。Scribe使Twitter记录日志
数据变得简单。Scribe还可以比以前记录更多的数据,现在数据日志已经分成了80个不同的类别。

Hadoop

Twitter每天都需要将更多的数据可靠的写入到一个硬盘驱动器上,然后这是不现实的,所以像Twitter这样每天都产生大量数据的机构需要把
数据存储在集群之中才能满足其业务需求。Twitter使用了Cloudera的Hadoop为其分配集群。Weil指出能够,MySQL不能满足
Twitter在大规模做需求分析时所要求的效率,为了满足需求,Twitter使用了Hadoop及自己拥有的开源项目,他们称之为FlockDB。
Hadoop可以运行分析并找到在FlockBD中相似的社交图数据集合。

Pig



这种Pig脚本可以帮您找到其网站年龄在18至25岁访问者中访问量排名前五位的网页
Weil说Hadoop是通过Java语言实现的,但是Java是复杂的,这使得它很难快速的重复执行。相反,Twitter使用Pig脚本的语
言,这个高级语言运行在Hadoop之上。

Yahoo创造了Pig脚本语言并使其快速发展,Weil表示,Pig非常易学并且容易理解。他说,你将受益于Pig的方便,并且它缩短了执行时
间,但这是值得的。

HBase

HBase是建立在Hadoop的之上的,并且具有低延时和数据可变性的设计。 Twitter的使用它来增强人们的搜索。

FlockDB

FlockDB是一个实时的、分布式的数据库。如上所述,它的建立和开源由来自Twitter。该公司使用它的社交图分析。它仍然在MySQL的下
面,但是它的速度非常快。

Weil用一个在FlockDB的应用程序举例,显示哪些用户显示@表示回复。举个例子。如果Ashton
Kutcher发送tweet到@foursquare。它不应该显示在Kutcher的6156915粉丝之中,他应该仅在关注Kutcher的用户和
Foursquare中显示。

对于希望更多了解Twitter如何分析社交图的资料请点这


Cassandra



Twitter至今仍然在尝试并使用Casandra,这个开源的数据库由Facebook创建。Weil说,Twitter当前的原子计算实验使
用的就是Cassandra。但对Twitter而言,Cassandra也非万能,首先在于Cassandra代码或许还存在不少问题,Twitter
如果投入大量的精力来改进Cassandra和比较优化MySQL 的投入来看有点得不偿失。在QCon
Beijing上@nk也提到Cassandra在Twitter的内部测试中曾经暴露出不少严重的问题。

Twitter拿所有的这些数据都用来做什么?

Twitter的使用它收集的所有数据有各种用途。有些只是简单的计数问题,如计算出有多少请求它的服务,每天有多少搜索服务,每天来处理这些交易
的平均时间,等等。

其他用途更为复杂。例如,不同类型用户的运行比较。Twitter的分析数据,以确定是否移动用户,用户谁使用了第三方客户短或“超级用户”与普通
用户使用Twitter的不同。

韦伊最后指出,Twitter的其他问题包括:确定转推的话题中哪些类型是人们最感兴趣,最成功的网络需要什么样的社会效果图结构,以及如何区分不
同类型的人或机器人。(李智/译)

原文请点击这里

您目前正在使用的NoSQL数据库类型是什么?
Cassandra
CouchDB
Drizzle
Membase
MongoDB
Neo4j
SimpleDB
FlockDB
Project Voldemort
Riak
其它
尚未使用任何NoSQL数据库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: