雅虎:数据库大小比拼唯我独尊

[摘要]雅虎的这个数据库还使用了深度改良的PostgreSQL引擎,用为其商用硬件集群专门设计的代码来取代查询处理层。另一方面从性能来讲,因为雅虎是专门为自己的需求量身打造的数据库,就算是处理100TB的数据,雅虎数据库引擎的执行效率也是商业数据库的10倍以上。

  谁拥有全球最大的最繁忙的SQL数据库?雅虎当仁不让。

  雅虎谷歌这两大搜索引擎的巨头一直都在为各种头衔你抢我夺,争吵不休。例如,若干年前关于谁拥有全球最大的网页索引问题,最后谷歌以超过雅虎三倍的索引量最终胜出。之后的争论主题曾经转移到了搜索相关性问题上。

  现在,雅虎又期待能在另一个领域盖过谷歌的风头,获得业界的认可:雅虎宣称拥有生长环境下全球容量最大的SQL数据库,同时也是全球最繁忙的数据库,每个月能够为雅虎分析好几亿网页浏览者的行为。为此雅虎的数据业务副总裁Waqar Hasan表示,雅虎是全球首个(据他们所知)将一个PB级数据库投入生产环境的企业,这个数据库最初的构建所要达到的容量可以上升到几十个PB,到2009年更是要翻倍地增长。

  作为数据容量度量单位,PB的出现对于一台普通的计算机来说简直是遥不可及,要知道1PB相当于100万GB,而现在性能较好的普通个人台式机的容量不超过200GB。Hasan表示,雅虎所拥有的数据量远远超过传统产业企业的数据量,甚至在互联网世界里都比其他的同等级竞争对手要多得多。而个中原因,Hasan所给出的解释是用户花费在雅虎网站上的时间是花费在谷歌上的两倍,微软的三倍。这也是微软为什么那么热衷于收购雅虎的原因之一。

  人们对于单纯追求计算速度提升的热情在逐渐减退,从成本极高的超级计算机转移到了大规模网格构成的廉价PC服务器。同时商业智能和技术化的商业分析浪潮的兴起促使人们把视线投入到能够一次分析百万计消费者行为从而为企业提高收益的超大型数据仓库上面。

  雅虎收集的数据是结构化数据(相对于电子邮件那样的非结构化数据而言),是与用户如何使用其网站相关的数据,包括广告和用户体验等。雅虎利用这些数据尽可能为用户提供他们所希望达到的最佳体验,从个性化服务的设计到通过精准的广告定位实现广告客户的商业利益最大化。这使雅虎能够在跨越一个较低的技术门槛而实现所谓的“深度分析”功能。

  雅虎的数据库技术最初出自于2005年底被雅虎低调收购的Mahat技术公司。雅虎的数据库构建基于商用的Intel处理器,在大型服务器集群中连接起来。传统的方法是使用大型对成多处理器系统,而雅虎则将大量小型的处理器系统,然后联合成大型服务器集群。雅虎的这个数据库还使用了深度改良的PostgreSQL引擎,用为其商用硬件集群专门设计的代码来取代查询处理层。这样无论是在硬件还是在软件上,这个数据库都得到了革新。例如,SQL数据库是以表为单位来组织管理的,这些表由行和列构成,传统的数据排列方式是按照行进行的,而雅虎则选择用分布式列来存储数据。这样做的好处是你可以只是获取你感兴趣的数据,减少了特定查询过程中所要处理的数据量,,这样能够极大地提高查询效率,特别是在进行深度分析查询时。同时雅虎还利用先进的数据压缩技术和平行向量查询处理技术,后者在执行平行处理方面是非常有效的方法。

  谷歌的BigTable数据库也采用了商用硬件集群,但Hasan认为雅虎的商用硬件集群与之不同之处在于雅虎的集群是专门为SQL界面设计的,可以让你在编程上毫不费力。对于谷歌的BigTable数据库,你需要编写的C++或Java程序,而雅虎的数据库则是用SQL指令来达成相同的任务,从编程的角度来讲,大大提高了生长效率。

  雅虎开发自己的数据库的诱因是商业数据库供应商不能满足其需求。Hasan表示,现在的商业数据库能够很好的处理25TB级别的数据,勉强一点还可以管理达到100TB级别的数据,而雅虎需要管理的数据量比100TB还要多上100倍,这是商业数据库所无法企及的。另一方面从性能来讲,因为雅虎是专门为自己的需求量身打造的数据库,就算是处理100TB的数据,雅虎数据库引擎的执行效率也是商业数据库的10倍以上。




免责声明:

本站系本网编辑转载,会尽可能注明出处,但不排除无法注明来源的情况,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网联系, 来信: liujun@soft6.com 我们将在收到邮件后第一时间删除内容!

[声明]本站文章版权归原作者所有,内容为作者个人观点,不代表本网站的观点和对其真实性负责,本站拥有对此声明的最终解释权。