[SQL Server]R Services改名機器學習服務(SQL Server 2017)

R語言以及Python是資料科學工作中常用的兩把利劍,兩者在資料分析、機器學習上都是很棒的武器,去年微軟在SQL Server 2016把R語言整合進平台,就在今年,即將推出的SQL Server 2017也將把Python整合進資料平台了,此外,這一次也同時把R Services重新命名為Machine Learning服務來呼應這次的整合與原有R機器學習套件的升級,不久的將來,Python常用的scikit-learn、TensorFlow及keras套件也能直接執行在SQL Server內了,今天我們先來安裝RC2版本環境。

 

SQL Server 2017 RC2下載

從MSDN訂閱下載8月2號推出的RC2版本(RTM前的最終測試版本)

相較rc1,這次rc2檔案大小增加了8KB

 


SQL Server 2017 RC2安裝

點選安裝檔案setup.exe

 

選安裝 >> 新增SQL Server 獨立安裝

 

目前是RC2,所以是180天試用版

 

勾選我接受授權條款,然後下一步

 

執行全新安裝

 

選擇資料庫引擎服務、Machine Learning服務(資料庫內) R、Python

同意安裝Microsoft R Open

 

同意安裝Anaconda(森蚺,也算是蟒蛇的一種),是Python所提供的資料科學平台

 

確認好安裝摘要後按下安裝

 

安裝程式最重要的一步,安裝完成!

好的,把SQL Server 2017 RC2以及Machine Learning Service都安裝好了,用T-SQL來寫幾行R和Python的程式碼來確認R和Python的執行環境。

 


開啟external scripts

在執行R或是Python之前,我們首先要開啟external scripts

EXEC sp_configure  'external scripts enabled', 1
RECONFIGURE WITH OVERRIDE

 

設定完成後,重新啟動SQL Server服務


查詢R和Python的版本資訊

R

EXEC sp_execute_external_script  @language =N'R',
@script=N'
print(R.Version()$version.string)
',
@input_data_1 =N''
GO

 

執行結果:  3.3.3

 

Python

EXEC sp_execute_external_script  @language =N'Python',
@script=N'
import sys
import os
print(sys.version)
',
@input_data_1 =N''
GO

執行結果: 3.5.2

兩者版本和RC1時相同,已測試好的套件應該safe..

 


小結

  • 雖然用T-SQL把R或是Python的程式碼以字串格式放到預存程序不太容易debug,常常要用print函數看輸出,但也因為借重R和Python的豐富package,在這個資安就是國安的時代,我們不用四處移動資料就能就近在資料庫內探索資料的輪廓、從結構建立模型。
  • 假設程式很長,還是可以先使用IDE(Visual Studio、R Studio或Jupyter),製作少量的sample資料寫程式,測試完成後再包成Package,讓SQL預存程序執行。
  • AP程式能與機器學習更緊密的結合。

 


參考

SQL Server 2017的新功能

R Project

Python