R編程語言最早出現于1993年,而在2000年,它的第一個符合產品質量的版本R-1.0發布了。自那之后,R就成為了統計分析方面的業界標準,圍繞著這門語言出現了大量的圖形界面工具,以及可用于各種IDE及文本編輯器的包。
Revolution Analytics是一家成立了9年的公司,他們為R語言提供商業級的支持服務。但就在最近,微軟收購了這家公司,作為他們向大數據及機器學習領域邁出的第一步。這次收購的結果是在即將問世的SQL Server 2016中將提供對R語言的支持。
SQL Server R Services的主要優點在于數據的本地化。通過在數據庫中直接運行R,免除了將數據從數據庫服務器搬到R服務器的過程中通常會產生的性能開銷。它的另一個優點在于能夠將整個操作封裝為一個存儲過程,因此無需通過某個外部應用服務器對操作過程進行控制。
調用這一過程的方法是使用sp_execute_external_script,這個存儲過程允許你通過標準的查詢將數據從SQL Server傳遞至R服務。而在R腳本執行完畢之后,可以返回一個R變量,通常來說是一個數據幀。
在sp_execute_external_script中有一個令人感興趣的特性,即@language這個參數。雖然它目前僅限于使用R語言,但從文檔上看,未來似乎可以通過一種插件模型以支持其他腳本語言。
可使用任意一種通過xxx注冊的受支持語言。language的類型是sysname。
在進行復雜的數據處理時,R語言比起常規的SQL語句具有許多優勢。Casimir Saternos在他的文章“超越SQL:使用R語言進行數據處理”中提出了一些示例,例如如何簡化表的PIVOT和UNPIVOT操作。Casimir在文章的總結中這樣說道:
從定義上來說,SQL是一種查詢語言。它的長處在于從數據庫中獲取數據,在許多場景中,這是唯一一種從數據庫中取出數據的方法,因而顯得至關重要。
但是,在進行數據轉換時,SQL又有可能變得非常笨重。SQL本身是一種非常靈活的語言,因此也支持以大量不同的方式進行數據的轉換,但這些轉換往往需要使用冗長的、晦澀的、難以維護的SQL語句。而通過R語言所帶的大量的包,可以以一種簡潔的、清晰的、簡單的方法執行相同的操作。付出一定時間去學習這些包是完全值得的,這讓我們能夠充分利用SQL與R語言包中最好的方面,通過一系列易于理解與掌握的步驟實現數據的分析。
SQL Server 2016當前的最新版本是第3個社區技術預覽版。