教學課程:適用 R 資料科學家的 SQL 開發

適用於: SQL Server 2016 (13.x) 和更新版本

在這個適用資料科學家的教學課程中,瞭解如何根據 SQL Server 2016 或 SQL Server 2017 中的 R 功能支援,建置預測性模型的端對端解決方案。 本教學課程使用 SQL Server 上的 NYCTaxi_sample 資料庫。

您將組合使用 R 程式碼、SQL Server 資料和自訂 SQL 函數來建立分類模型,以表示計程車司機在特定車程時獲得小費的機率。 您也會將 R 模型部署至 SQL Server,並使用伺服器資料以根據模型來產生分數。

此範例可以擴充至所有類型的真實生活問題,例如預測銷售活動的客戶回應,或預測對事件的花費或出席情況。 因為可以從預存程序叫用模型,所以您可以輕鬆地將它內嵌在應用程式中。

由於此逐步解說是針對 R 開發人員介紹 R 服務 (資料庫內) 所設計,因此會儘量使用 R。 不過,這並不代表 R 一定是每項工作的最適用工具。 在許多情況下,SQL Server 可以提供較佳效能,尤其是資料彙總和功能工程這類工作。 這類工作特別受益於 SQL Server 中的新功能 (例如記憶體最佳化資料行存放區索引)。 我們將在過程中嘗試指出可能的最佳化做法。

Prerequisites

我們建議您在用戶端工作站上執行此逐步解說。 您必須能夠連接到相同網路上已啟用 SQL Server 和 R 語言的 SQL Server 電腦。 如需工作站設定的指示,請參閱 設定 R 開發的資料科學用戶端

或者,您也可以在同時具有 SQL Server 和 R 開發環境的電腦上執行逐步解說,但我們不建議在生產環境中使用此設定。 如果您需要將用戶端和伺服器放在同一部電腦上,請務必安裝第二組 Microsoft R 程式庫,以便從「遠端」用戶端傳送 R 指令碼。 請勿使用在 SQL Server 執行個體的程式檔案中安裝的 R 程式庫。 尤其是,如果您使用一台電腦,則在這兩個位置都需要 RevoScaleR 程式庫,以便支援用戶端和伺服器作業。

  • C:\Program Files\Microsoft\R Client\R_SERVER\library\RevoScaleR
  • C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\RevoScaleR

其他 R 套件

這個逐步解說需要一些預設不會安裝為 R 服務 (資料庫內) 一部份的 R 程式庫。 您必須將套件安裝在您要開發解決方案的用戶端上,以及您要部署解決方案的 SQL Server 電腦上。

在用戶端工作站上

在您的 R 環境中,複製下列幾行,然後在主控台視窗 (Rgui.exe 或 IDE) 中執行程式碼。 有些套件也會安裝必要的套件。 總共安裝大約 32 個套件。 您必須連接網際網路,才能完成此步驟。

# Install required R libraries, if they are not already installed.
if (!('ggmap' %in% rownames(installed.packages()))){install.packages('ggmap')}
if (!('mapproj' %in% rownames(installed.packages()))){install.packages('mapproj')}
if (!('ROCR' %in% rownames(installed.packages()))){install.packages('ROCR')}
if (!('RODBC' %in% rownames(installed.packages()))){install.packages('RODBC')}

在伺服器上

在 SQL Server 上安裝套件有幾個選項。 例如,SQL Server 提供 R 套件管理功能,可供資料庫管理員建立套件存放庫,並將安裝自己套件的權限指派給使用者。 不過,如果您是電腦上的系統管理員,只要安裝到正確的程式庫,您就可以使用 R 安裝新的套件。

注意

在伺服器上,即使出現提示,也不要安裝至使用者程式庫。 如果您安裝至使用者程式庫,SQL Server 執行個體會找不到或無法執行套件。 如需詳細資訊,請參閱在 SQL Server 上安裝新的 R 套件

  1. 在 SQL Server 電腦上,以系統管理員身分開啟 RGui.exe。 如果您已使用預設值來安裝 SQL Server R Services,則可以在 C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64 中找到 Rgui.exe。

  2. 在 R 提示字元中,執行下列 R 命令:

install.packages("ggmap", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("mapproj", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("ROCR", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("RODBC", lib=grep("Program Files", .libPaths(), value=TRUE)[1])

這個範例會使用 R grep 函數來搜尋可用路徑的向量,並尋找包含 "Program Files" 的路徑。 如需詳細資訊,請參閱 RDocumentation 以瞭解基底套件

如果您認為已經安裝套件,請執行 installed.packages() 檢查已安裝的套件清單。

後續步驟