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經理網