大数据进入R时代

Rlogo

自从60年代主机进入学术界和企业界,统计分析就是人们熟知的应用之一。而统计领域广泛使用的R语言是诞生于 1980年左右的 S 语言的一个分支。 R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。

最初S语言的实现版本主要是S-PLUS。但S-PLUS是一个商业软件,相比之下开源的R语言更受欢迎,被人们誉为“统计界的Red Hat”。

今天,随着信息系统正面临大数据的爆炸式增长,大数据分析需求随之水涨船高,在这股大数据热潮中,开源软件取代商业软件成为舞台的明星,受到人们追捧。2012年,R语言在数据挖掘/分析和可视化应用领域的快速崛起标志着R已经为大数据做好准备。

在KDNuggets2012年做的“过去与十二个月你在实际项目中使用的数据挖掘/分析工具”的调查中,R以30.7%的得票率荣登榜首,超过微软Excel(29.8%)和Rapidminer(2010和2011年排名第一)。值得注意的是,今年排名前五名的数据挖掘工具中有四个是开源软件。此外R还在击败SQL和Java,在最受欢迎的数据挖掘应用编程语言排行榜中排名第一。

大数据分析工具排行榜

今天每个人都喜欢R,尤其是那些销售数据仓库和Hadoop大数据产品的厂商。无疑,开源是R语言大获成功的一个重要原因,R语言的开发得到了来自统计师和量化分析师社区的大力支持。

字母家谱

R与诞生于主机时代的SAS和SPSS的专有工具不同,类似Linux被称为Unix的开源版本,R语言大量借用了S语言的方法。

1976年John Chambers在贝尔实验室开发的S语言是为了替代昂贵的SPSS和SAS工具。如果说S是VAX和Unix小型机时代的产物,那么R则是PC和Linux时代的产物。

1996年新西兰奥克兰大学的两位统计学教授——Ross Ihaka和Robert Gentleman发明了R语言,这两位教授也是R开发团队的核心成员,值得注意的是S语言的发明者John Cambers也是R开发团队的成员,因为不难理解R语言的一些数据处理路径与S语言相同。

R可以看做是S的一种实现,Insightful公司开发的S-PLUS也是S的实现版本,2004年Insightful把S-PLUS授权给了朗讯科技,后来又被Tibco软件于2008年收购。

革命来临

与S和S-PLUS不同的是,R并不是象牙塔里炮制出的代码,而是一个由分析师和程序员构成的社区的产物,这个社区为处理各种数据集创建了超过2500个插件。

今天,根据Revolution Analytics的统计,R被全球超过200万个量化分析师采用。Revolution Analytics成立于2007年,并开发出了R的并行实现,该公司采用了开放内核的方式开发R,为开源软件包退工商业支持,同时扩展R环境,提升其在计算机集群上的表现,并将其与Hadoop集群对接。

迄今还没有公司将SPSS(2009年被IBM收购)的开源替代品PSPP商业化,但等PSPP进一步成熟,商业化是迟早的事。

2008年,在拿到英特尔资本的种子投资后,Revolution Analytics开始在R企业版中加入闭源扩展,该做法遭到了R社区的反对。从那以后,Revolution Analytics并行开发了R统计引擎,使之能更好地支持多核多线程处理器和服务器集群;增加了一个类NoSQL的格式——XDF,并增加了对原生SAS文件格式(以及向XDF格式的转换)的支持。

最近,Revolution Analytics进一步改良R的实现,使每个Hadoop集群的节点都能在本地运行R分析功能处理HDFS系统中的数据,并将计算结果汇总,这有些类似MapReduce对非结构化数据的操作。

平行宇宙

为了在与数据仓库领域竞争对手的角逐中占据上风,Netezza于2010年2月开源了Netezza软件栈。

Netezza是数据仓库一体机的制造商,基于高度定制化和并行化的PostgreSQL数据库。使用FPGA来提升其在x86集群上的性能表现。

Netezza开放了其软件开发环境,通过一组API允许SAS和R算法并行运行于其数据仓库一体机上。同时还为Java、C++、Fortan和Python等程序提供访问其数据仓库的接口。此外,Netezza通过FPGA,而不是SQL数据查询语言来提取数据仓库中的数据。

在Netezza开源7个月后,随着大数据商机的逐渐显现,IBM以17亿美元的高价收购了Netezza。

2010年10月,数据仓库厂商Teradata在其数据仓库产品中增加了数据库内分析组件——TeradataR。这相当于把Teradata的数据仓库挖掘工具变成了R控制台的一个插件,这意味着通过R程序能够调用Teradata数据库里的44种不同的分析功能。

Teradata拥抱R的方式是保留R控制台,在数据库中并行运行分析,而不是将数据提取到一个工作站然后在本地运行R。

Oracle加入

在R化的热潮中,连Oracle都不能免俗。今年二月,Oracle发布了高级分析(Advanced Analytics),为Oracle数据库和R分析引擎之间架起了桥梁。

Advanced Analytics是Oracle 11g R2 数据库的数据挖掘附件。当R程序员准备运行一个统计路径,他们可以在数据挖掘工具箱中调用与SQL等同的功能命令,来使用Oracle数据库。

如果没有对应的SQL功能,植入在各数据库节点的R引擎将运行R路径,汇总分析数据并作为答案返回到R控制台。

Oracle还为其大数据一体机发布了R Connector for Hadoop,是Cloudera CDH3 Hadoop环境的一个版本,运行在Oracle的Exa系列的x86集群中。该连接器允许R控制台与Oracle大数据一体机上的Hadoop的HDFS文件系统和NoSQL数据库对话。

第一时间获取面向IT决策者的独家深度资讯,敬请关注IT经理网微信号:ctociocom

   

除非注明,本站文章均为原创或编译,未经许可严禁转载。

相关文章:


关于作者

主要关注社会化商务时代的客户关系管理、业务流程管理、数据挖掘、商业智能和企业协作等领域的新技术、新应用和新趋势。曾长期从事信息化咨询服务和软件开发工作,服务过首都机场、国家电网公司、中国蓝星等企业。邮箱:guanzhigang@ctocio.com