大数据是“O'Reilly Radar”的一个主题,我们有幸请来了客座博客作者Joe Hellerstein,UC Berkeley的计算机教授,主要研究数据库和分布式系统。Joe曾就此话题撰写过详细的白皮书。
一场关于进行大规模数据分析的最佳方法的辩论正在数据系统届进行着。企业阵容的保守派青睐于关系数据库和SQL语言,然而互联网阵容则集中与MapReduce的开发模式 (流行于Google, Apache Hadoop实现开源克隆)。Hadoop被广泛用于Yahoo!和Facebook这样的公司,作为下一代重大开源项目,hadoop受到技术博客的关注。但是Hadoop在企业级几乎不被人知——SQL语言充斥着这些领域。他们和开发者社区有着惊人的代沟。我希望这种情况在未来一两年内发生改变。
我们正处在“数据革命”的开端。实际上我们还未实现这个革命,因为大量的数字信息还手工产生的:网页的文章,表格填写的数据,上传的视频和音乐。但是我们开始看到像software logs, UPC(通用产品代码) scanners, RFID, GPS transceivers, video and audio feeds这 样的自动生成数据的兴起。自动化生成的数据数量很快就会使世界上的内容作者们的作品集合相形见绌。与此同时,硬盘容量成指数级增长,因此存储这些数据的成 本越来越低。很多理由显示出,这些数据的价值在于其制式的多样性。这场革命的最后一步将是数据分析软件的平民化,他们将服务于更广泛的用户。
让我们看一下当今的高端数据分析软件。尽管有着不同的解决方案,他们有着共同的并行处理数据流的核心技术。磁盘阵列被组织在一起,通过高速网络将数据送入CPU集群来处理文本和数字。几十年来,像Teradata这样的高端关系数据库系统一直使用这种方法,最近几年像Google和Yahoo!这样的公司已经准备好了新型工具将这一过程扩展至前所未有的境界。
对于这两种并行处理海量数据的方法,近几个月已经有着不少吹鼓和交锋。废话不说,两种技术可归纳为如下:
关系数据库
-
多目的:用于数据分析、数据编辑、批量互动任务
-
通过“ACID transactions”机制实现高度数据完整
-
大量兼容工具用于加载、管理、报告、数据图形化和信息挖掘
- 支持SQL语言——用于数据分析最广泛的语言
-
SOL语言自动优化从根本上提升性能
-
通过连接协议、映射层和用户定义函数,将SQL和熟悉的编程语言集成
MapReduce (Hadoop)
-
为大型集群设计(超过1000台计算机)
-
极高的稳定性,长时间保持高效运行,即使个别机器宕机
-
数据以“原始格式”存储于文件系统,加载时无需将数据转换成表
-
没有专用的查询语言,开发者熟悉Java、Python或Perl
-
开发者决定性能而非查询语句优化
-
Hadoop开源项目基于企业赞助,随时间成熟,就像Linux和Apache
以上大致总结了双方优点。双方大多数评论均则暗指对方自吹自擂。双方论点均未被各自的关键人物加强。Hadoop相对年轻,多数报道称其慢于Google的MapReduce系统且梗消耗资源。与此同时,很多人将高端关系数据库等同于Oracle——以价高难管理而闻名,且不能像其他高端竞争者那样再平民PC上跑。业界无人小视这场争论,最保险的预测是“未来将很快发生改变”。SQL和MapReduce之间的界限已经变得模糊。Greenplum和Aster Data两家初创的数据库公司分别推出了集成了SQL语言引擎和MapReduce的大规模并行系统。双方以不同的MapReduce的特性为卖点:Greenplum支持文件系统访问并且去掉了SQL的需求;Aster则强调他们的稳定性和扩展性。同时Facebook的开源项目HIVE在Hadoop之上提供了类似于SQL的开发语言层。IBM和Microsoft也介入了这个领域,或进化出产品,或倡导开源。
路在何方?短期之内,热闹的市场将比过去十年里传统的数据库厂商以更快的速度推动新的变革。Hadoop的技术优势并非天生难于复制于关系数据库引擎。主要的挑战将是“管理数据库用户在为数据统一性和稳定性折中时的预期”。 Greenplum和Aster无疑将更大的数据库公司向前推了一步,无怪乎更多的坚定的数据库公司今年发布了相关的产品。
长远看来,如果MapReduce成为数据分析重要的开发接口,将会需要标准化的开发接口为他的广泛应用铺平道路。另外,MapReduce过于底层以至于限制了它的广泛应用,因此像Hive、Yahoo的PIG这样封装进高层查询语言也同样的需要标准化。
这些将如何推动以数据为中心的web service和云计算是一个有趣的问题。用户是否会将大量的私有信息放入“云”中?他们如何将petabytes及数据传输部署到主机上?已知大规模数据分析需要的计算机数量,SP商提供怎样的网络接入才划算?现阶段还无人能准确回答.
另外,Hadoop作为并行开发的入门,已成为的教育者们热衷的对象。Berkeley每个主修计算机的学生都将在至少一门课上编写Hadoop程序。其他一流大学也有类似课程。与此同时,主流语言(SQL是其中最好的例子)在计算机科学研究中正在经历一场复兴(此话另说)。因此,随着市场的变革,此类技术的相关产品将从源头得到丰富,并预示着未来几年的变化。