《连线》:谷歌Dremel让大数据变小

  北京时间8月16日消息,《连线》杂志近日刊载文章称,开源云计算软件平台Hadoop已经在整个网络中得到了广泛的运用,无论是在数据分析领域还是在其他各种数据运算任务中都是如此;但是,谷歌已经开发出了更新的技术Dremel,这是一种用来分析信息的方法,它可以在数以千计的服务器上运行,能以极快的速度处理网络规模的海量数据,从而让“大数据”看起来变小。


  以下是这篇文章的全文:

《连线》:谷歌Dremel让大数据变小

迈克·奥尔森,Hadoop运动背后的首脑之一。


  迈克·奥尔森(Mike Olson)运营着一家专业致力于全球最热门软件的公司,他是硅谷创业公司Cloudera的首席执行官,这家公司在开源云计算软件平台Hadoop上经营自身业务,这个平台以将谷歌变成网络上最具主导性的力量的技术为基础。


  据预计,Hadoop将在2016年以前帮助创造一个8.13亿美元的软件市场。但甚至就连奥尔森都说,这已经是旧新闻了。


  Hadoop来自于谷歌在2003年底和2004年发布的两份研究报告,其中一份描述了谷歌文件系统(Google File System),这是在数以千计的低价电脑服务器上存储海量数据的一种方式;另一份则详细描述了MapReduce,这种技术能将所有那些服务器内部的处理能力整合起来,对所有数据进行运算,使其变成某种有用的东西。在8年以后,Hadoop在整个网络中得到了广泛的运用,无论是在数据分析领域还是在其他各种数据运算任务中都是如此。但是,谷歌却已更进一步,开发出了更新的技术。


  在2009年,这个网络巨头开始用新技术取代GFS和MapReduce。奥尔森会告诉你说,这些技术是整个世界正在走向的去处。“如果你想要知道未来大规模的、高性能的数据处理基础设施是什么样子的,我的建议是你可以去看看谷歌现在将会发布的研究报告。”奥尔森在最近与《连线》杂志进行小组讨论时说道。


  自Hadoop崛起以来,谷歌已经发布了三份特别有趣的研究报告,内容有关为其庞大的网络业务提供支撑的基础设施。其中一份文件详细描述了Caffeine,这个软件平台为谷歌的网络搜索引擎构建了指引;另一份则展示了Pregel,这是一个旨在映射大量在线信息之间关系的“图表数据库”。但最有趣的论文则描述了一种名为Dremel的工具。


  “如果你曾事先告诉我Dremel声称其将可做些什么,那么我不会相信你能开发出这种工具。”加利福尼亚大学伯克利分校的计算机科学教授阿曼多·福克斯(Armando Fox)说道,他专业致力于研究这种数据中心规模的软件平台。


  Dremel是一种用来分析信息的方法,它可以在数以千计的服务器上运行,允许你“请求查询”海量数据,如网络文件的集合或是数字图书馆等,甚至是描述成百上千万条垃圾游戏信息的数据。这类似于分析一个使用SQ语言L的传统数据库,这种语言在过去数十年时间里广泛应用于整个软件世界。举例来说,如果你拥有一个数字图书的集合,那么就可以运行一个专设的查询请求,然后就可获得所有作者的名单——或是图书内容覆盖某个特定主题的作者名单。


  “你拥有一种类似于SQL的语言,能让制定专设的查询请求变得非常简单——而且,你不需要做任何编程工作,只需将查询请求输入到命令行里即可。”负责管理谷歌基础设施的Urs Holzle说道。


  区别在于,Dremel能以极快的速度处理网络规模的海量数据。据谷歌的研究报告显示,你能以拍字节(petabyte,PB,1PB等于1024TB)的数量级来进行查询,而且只需几秒钟时间就能完成。


  Hadoop已经提供了在庞大的数据集合中运行SQL查询请求的工具,Pig和Hive等姊妹项目也是为此而构建的,但使用Hadoop会有迟延时间。这是一个“批量处理”平台,你可以交给它一个任务,然后它需要花费几分钟时间——或者是几个小时——来运行这个任务,然后可以得到查询结果。而与此相比,Dremel则是专门为瞬时查询而设计的。


  “Dremel能执行许多查询请求,而同样的数据如果由MapReduce来处理,则通常会需要向后者给出一系列的任务,而且前者的执行时间仅相当于后者很小的一部分。”谷歌的Dremel报告指出。Holzle称,Dremel能在大约3秒钟时间里运行1PB的数据查询请求。


  阿曼多·福克斯称,这种处理能力是史无前例的。Hadoop是“大数据”运动的中心,这场运动旨在构建能够分析海量信息的工具。但就今天的大数据工具而言,它们经常都会存在一种缺点。与传统的数据分析或是“商务智能”工具相比,大数据工具的信息分析速度和精确度有所不及。但福克斯指出,如果使用Dremel,那么就能获得很好的速度和精确度。


  “他们成功地大规模的数据分析与真正深挖数据的能力结合到了一起,而且他们做到这一点的方式是我以前从未想到过有可能做到的。”他说道。“数据的规模以及挖掘数据的速度确实令人感到印象深刻。人们以前也曾做过大数据系统,但在Dremel以前,没人真的能做出一个如此庞大和如此迅速的系统。”他进一步指出:“在通常情况下,你只能同时运行一个任务或是另一个任务;在一个任务方面做得越多,就越是不得不放弃另一个。但通过Dremel,你能同时进行两个任务。”


  据谷歌的研究报告显示,这个平台自2006年开始就已经在谷歌内部使用,有“数千名”谷歌员工使用这个系统来对所有信息进行分析,从软件崩溃报告到谷歌的各种服务,再到谷歌数据中心内部的磁盘表现都可进行分析。有些时候,这种工具会在数十个服务器上使用,而有些时候则多达数千个。


  虽然Hadoop已经取得了无可置疑的成功,但奥尔森则指出,构建这个平台的公司和开发者慢了一拍。同样的事情也发生在Dremel身上。谷歌在2010年就发布了有关Dremel的报告,但距离这个平台能被第三方开发者模仿仍有很长一段路要走。以色列的一个团队正在构建一个被称为OpenDremel的克隆版平台,但其中一位名叫大卫·格鲁兹曼(David Gruzman)的开发者告诉我们,在经过漫长的时间以后,这个平台的编码进程还只是处在开端阶段。


  华盛顿大学的粒子物理学副教授、创业公司Cloudant的首席科学家迈克·米勒(Mike Miller)感到吃惊,原因是我们并未看到某些大型的风险投资公司为一家致力于“逆向工程”Dremel的创业公司提供融资。在过去多年时间里,Cloudant曾处理过与谷歌所面临的数据问题相同的许多问题。


  今天你可以使用Dremel——即使你并非谷歌的工程师。谷歌现在提供一种被其称为BigQuer的Dremel网路服务。你可以通过一个在线API(应用程序接口)来使用这个平台。基本上来说,你可以把你的数据上传到谷歌,然后谷歌会允许你在它的内部基础设施中运行查询请求。谷歌所提供的云服务数量正在增长,而这种服务也是其中一部分。在最早的时候,谷歌允许你使用一种名为Google App Engine的服务来在其基础设施中托管所有应用;而时至今日,谷歌则提供其他多种能在同样的基础设施上运行的设施,包括BigQuery和Google Compute Engine等,能让用户瞬时接入虚拟服务器。


  世界的其他部分可能落后于谷歌,而谷歌则正将自己带给世界的其他部分。