因此,很多公司开始致力于供应更有针对性的信息,例如推举或在线广告,这种能力会直接影响公司在商业上的成败。现在类似Hadoop①这样的系统能够为公司供应存储和处理PB级数据的能力,随着新机器学习算法的不断发展,网络更多数据的需求也在进步神速。
以前,由于缺少划算的办法来存储所有信息,很多公司会忽略某些数据源,但是现在这样的处理办法会让公司损失竞争力。存储和剖析每一个数据点的需求在不断增长,这种需求的增长直接导致各公司电子商务平台产生了更多的数据。
过去,唯一的选择便是将网络到的数据删减后保存起来,例如只保留最近N天的数据。然而,这种方法只在短期内可行,它无法存储几个月或几年网络到的所有数据,因此建议:构建一种数学模型覆盖全体韶光段或者改进一个算法,重跑以前所有的数据,以达到更好的效果。
对付海量数据的主要性,Ralph Kimball博士指出②:
“数据资产会取代20世纪传统有形资产的地位,成为资产负债表的主要组成部分。”
还指出:
“数据的代价已经超越了传统企业广泛认同的代价边界。”
Google和Amazon是认识到数据代价的典范,它们已经开始开拓知足自己业务需求的办理方案。例如,Google在一系列的技能出版物中描述了基于商业硬件的可扩展的存储和处理系统。开源社区利用Google的这些思想实现了开源Hadoop项目的两个模块:HDFS和MapReduce。
Hadoop善于存储任意的、半构造化的数据,乃至是非构造化的数据,可以帮助用户在剖析数据的时候决定如何阐明这些数据,同样许可用户随时变动数据分类的办法:一旦用户更新了算法,只须要重新剖析数据。
目前Hadoop险些是所有现有数据库系统的一种补充,它给用户供应了数据存储的无限空间,支持用户在恰当的时候存储和获取数据,并且针对大文件的存储、批量访问和流式访问做了优化。这使得用户对数据的剖析变得大略快捷,但是用户同样须要访问剖析后的终极数据,这种需求须要的不是批量模式而是随机访问模式,这种模式相对付在数据库系统来说,相称于一种全表扫描和利用索引。
常日用户在随机访问构造化数据的时候都会查询数据库。RDBMS在这方面最为突出,但是也有一些少量的有差异的实现办法,比如面向工具的数据库。大多数RDBMS一贯遵守科德十二定律(Codd’s 12 rules)③,这个定律对付RDBMS来说是刚性标准,并且由于RDBMS的底层架构是经由仔细研究的,以是在相称长的一段韶光里这种架构都不会有明显的改变。近年来涌现的各种处理方法,如列式存储的(column-oriented)数据库和大规模并行处理(Massively Parallel Processing,MPP)数据库,表明业界重新思考了技能方案以知足新的事情负载,但是大多数办理方案仍旧是基于科德十二定律来实现的,并没有冲破传统的法则。
列式存储数据库
图1 列式存储构造与行式存储构造
值得把稳的是,从范例RDBMS的角度来看,HBase并不是一个列式存储的数据库,但是它利用了磁盘上的列存储格式,这也是RDBMS与HBase最大的相似之处,由于HBase以列式存储的格式在磁盘上存储数据。但它与传统的列式数据库有很大的不同:传统的列式数据库比较适宜实时存取数据的场景,HBase比较适宜键值对的数据存取,或者有序的数据存取。
如今数据的产生速率比几年以前已经有了迅猛的增长,随着环球化步伐加快,这个增长速率只会越来越迅猛,由此所产生的数据处理问题也会越来越严厉。像Google、Amazon、eBay和Facebook这样网站的用户已经覆盖到了地球上的绝大多数人。环球化网络运用(planet-size web application)的观点已经形成,在这种背景下,企业利用HBase更得当。
举例来说,Facebook每天增量存储到它们Hadoop集群的数据量超过15 TB④,并且随后会对所有这些数据进行处理。这些数据一部分是点击流日志,用户点击了它们的网站或点击了利用Facebook供应的社交插件的网站,每一步点击操作都会被记录并保存,这非常适宜以批处理的模式,为预测和推举系统构建机器学习模型。
Facebook还有一个实时组件,便是它们的系统,个中包括谈天、涂鸦墙和电子邮件,每个月会产生超过1350亿条数据⑤,存储几个月之后便会产生一个量级弘大的尾部数据,并且这些尾部数据须要被有效地处理。只管电子邮件中占用存储量较大的部分(如附件)常日存储在二级系统中⑥,但这些产生的数据量还是令人难以置信的。以Facebook的数据产生条款为根本,如果按Twitter中的每条数据占用140字节来打算,Facebook每个月将会产生超过17 TB的数据,在将这些数据导入到HBase之前,现存的系统每个月也要处理超过25 TB的数据。⑦
目前在少数的重点行业中,面向Web业务的公司网络的数据量也在不断增长。
金融
如股票涨跌产生的数据。
生物信息学
如环球生物多样性信息机构(Global Biodiversity Information Facility,http://www.gbif.org/)。
智能电网
如OpenPDC(http://openpdc.codeplex.com/)项目。
发卖
如发卖终端(POS机)产生的数据,或者是股票系统、库存系统。
基因组学
如Crossbow(http://bowtie-bio.sourceforge.net/crossbow/index.shtml)项目。
移动电话做事、军事、环境工程
也产生了海量的数据。
海量数据领域越来越被重视,且该领域呈现出了非常多的新技能。技能的发展和韶光的沉淀使得HBase开始被大家广泛认可,成为海量数据在线存储领域的首选。
①干系信息可以在Hadoop的官方网站http://hadoop.apache.org/中找到。也可以到Tom White编写的《Hadoop威信指南(第2版)》(原出版社为O’Reilly)一书中查阅你想理解的Hadoop知识。
②此处引用的是Kimball集团的Ralph Kimball博士的一篇题为“Rethinking EDW in the Era of Expansive Information Management”的演讲(http://www.informatica.com/campaigns/rethink_edw_kimball.pdf),这个演讲谈论了一个不断发展的企业数据仓库市场的需求。
③Edgar F. Codd定义了13个规则(编号为0~12),这些规则匆匆使数据库管理系统(Datebase Management System,DBMS)被考虑为RDBMS。HBase须要知足更多的通用规则,但也有一些规则没有知足,最主要的是规则5:全面的数据子措辞规则,这个规则定义了至少须要支持一种关系型措辞。详情见维基百科关于科德十二定律的链接http://en.wikipedia.org/wiki/Codd's_12_rules。
④见Facebook供应的信息http://www.facebook.com/note.php?note_id=89508453919。
⑤请看博文http://www.facebook.com/note.php?note_id=454991608919,这篇博文来自Facebook的工程团队。150亿条墙和1200亿条谈天,共计1350亿条一个月。此外,Facebook还添加了SMS和其他一些运用,这些都会使数据量变得更为弘大。
⑥Facebook利用了Haystack,Haystack优化了二进制大工具的存储构造,供应了二进制小工具存储,例如图片。
⑦见http://www.slideshare.net/brizzzdotcom/facebook-messages-hbase,这是Facebook的员工Nicolas Spiegelberg写的,他也是HBase的committer。
本文节选自《HBase威信指南》
内容简介
本书磋商了如何通过利用与HBase高度集成的Hadoop将HBase的可伸缩性变得大略;把大型数据集分布到相对廉价的商业做事器集群中;利用本地Java客户端,或者通过供应了REST、Avro和Thrift运用编程接口的网关做事器来访问HBase;理解HBase架构的细节,包括存储格式、预写日志、后台进程等;在HBase中集成MapReduce框架;理解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。
本书适宜利用HBase进行数据库开拓的高等数据库研发职员阅读。