[SQL][R]安裝 SQL Server 2016 CTP 3.2 與 R 整合

SQL Server 從 2016 開始有支援 R 的整合,但跟以往的安裝過程會有點不同,需要多增加一點步驟和處理,因此將相關步驟給整理一下。

在 SQL Pass 今年一月份的活動中,有介紹在 SQL Server 下與 R 的整合,說實在還真有聽沒有懂,而買了好久的 R 的書籍,也都沒有好好地來看一下,因此想先從安裝 SQL Server 與 R 的整合,開始進入到學習 R 語言的第一步囉。當然如果是舊版的 SQL Server,一樣可以在 R 裡面使用 RODBC 的 Library 來做連結,只是在 SQL Server 2016 下可以直接使用 Stored Procedure 來做呼叫。

第一步當然從安裝 SQL Server 開始,基本上跟之前版本安裝上沒有太大的差異,最主要在於在安裝功能上要記得選擇「進階分析延伸模組」,但如果您是要直接採用命令列船參數安裝的話,則要在 FEATURES 內多增加 「ADVANCEDANALYTICS」 這個功能。

設定過程中,因為有選擇加入進階分析延伸模組,因此這裡會提示說要記得安裝後的一些後製設定

該經告主要是提醒你可以上 MSDN 的網站來看一篇「Installing SQL Server R Services

反正你可以先記住網址,這裡還是要先把 SQL Server 安裝起來。


前面安裝完 SQL Server,接下來我們要按照 MSDN 上的說明,分別來安裝以下幾套軟體 

  1. Revolution R Open 3.2.2 for Revolution R Enterprise 7.5.0 ( 網址 )
  2. Revolution R Enterprise 7.5 ( 網址 )

這兩套安裝起來算是蠻簡單的,幾乎都是下一步就完成了,只是 Revolution R Enterprise 的程序會稍微多一點。

 

到這個步驟會提示你需要重新開機,然後再繼續往下安裝。

經過一些步驟之後就可以安裝好 R 的套件了


完成上述 SQL Server 和 R 的安裝,那接下來就要設定他們之間的整合了,首先先開啟 SSMS 連接上 SQL Server,接著透過下面的指令來設定

exec sp_configure 'external scripts enabled', 1; 
reconfigure;

 

接著要執行一個 Revolution R Open 下的工具程式 registerRext.exe,這個程式預設是放在 %programfiles%\RRO\RRO-3.2.2-for-RRE-7.5.0\R-3.2.2\library\RevoScaleR\rxLibs\x64 的目錄下面,因此如果你的 SQL Server 安裝的時候是採用 Default Instance 的話,那麼可以直接開啟 DOS 視窗來執行下面的指令,但如果是採用 Name Instance 的話,則記得後面要再加上參數 「 /instance:<Instance name>」才可以。

"C:\Program files\RRO\RRO-3.2.2-for-RRE-7.5.0\R-3.2.2\library\RevoScaleR\rxLibs\x64\registerRext.exe" /install


做到這裡,應該就完成基本上的設定,但因為在以往 SQL Server 的主機上,主要都是要把記憶體留給 SQL Server Instance 來使用,但現在我們不只要給 SQL Server 來使用,可能還要考慮有一些是要留給 R 來做使用,因此如果要做這個部分的調整,則可以參考另外一篇 MSDN 上的文章「Configure and Manage Advanced Analytics Extensions」上的說明來做調整。

那接下來我們就要來測試看看,是否真的可以去呼叫 R 了,在 SQL Server 2016 開始,提供一個新的預存程序「sp_execute_external_script」來呼叫 R,那因為目前我會用的也有限,就先拿一個基本的範例來測試一下了。從結果看起來應該是有正確呼叫了,只是 iris 和一些 script 還搞不清楚那個是做啥的,但至少已經可以先整合在一起了。

整個安裝過程算是蠻快的,也沒有需要花太多時間,因此當成一個開始的入門,接下來應該就可以來弄點資料測試看看了。

 

目前我自己覺得不錯的參考資料 

1. Try R - Code School : 非常棒的互動資料,我反覆看了兩次,稍微對基礎的 R 有點概念了,建議大家可以參考看看。

2. 尋找中...