在 Linux 上安裝 SQL Server 2022 機器學習服務 (Python 和 R)
適用於: SQL Server 2022 (16.x) - Linux
本文會引導您在 Linux 上安裝 SQL Server 機器學習服務。 您可使用機器學習服務來在資料庫中執行 Python 和 R 指令碼。
您可以在 Ubuntu 和 Red Hat Enterprise Linux (RHEL) 上安裝機器學習服務。 目前不支援 SUSE Linux Enterprise Server (SLES)。
您可以在執行 Linux 發行版本的 Docker 容器上安裝 ML 服務。 在 Docker 容器內,步驟會與以下相同。
如需詳細資訊,請參閱 Linux 上的 SQL Server 安裝指引中的<支援的平台>一節。
重要
本文參考 SQL Server 2022 (16.x)。 若是 Linux 上的 SQL Server 2019,請參閱在 Linux 上安裝 SQL Server 2019 機器學習服務 (Python 和 R)。 若是 Windows 上的 SQL Server,請參閱在 Windows 上安裝 SQL Server 2022 機器學習服務 (Python 和 R)。
預先安裝檢查清單
在 Linux 上安裝 SQL Server 並驗證安裝。
查看 Python 和 R 延伸模組的 SQL Server Linux 存放庫。 如果您已為資料庫引擎安裝設定來源存放庫,您可以使用相同的存放庫註冊來執行 mssql-server-extensibility 封裝安裝命令。
您應該有執行 T-SQL 命令的工具。
- 您可使用 Azure Data Studio,這是在 Linux、Windows 和 macOS 上執行的免費資料庫工具。
需要在此安裝過程中重新啟動 SQL Server 執行個體。
套件清單
在連線到網際網路的裝置上,系統會使用每個作業系統的套件安裝程式,獨立地下載及安裝套件。
Linux 上 SQL Server 2022 (16.x) 可用的安裝套件:
套件名稱 | 適用於 | 描述 |
---|---|---|
mssql-server-extensibility | 全部 | 用來執行 Python 和 R 的擴充性架構。 |
安裝 mssql-server-extensibility 套件
設定對應至 Linux 發行版本的 Linux 存放庫。 使用套件
mssql-server-extensibility
和相關聯相依性libssl-dev
安裝 SQL Server 擴充性功能。Ubuntu \(英文\)
sudo apt-get install mssql-server-extensibility libssl-dev
RHEL
yum install mssql-server-extensibility
檢閱並接受 SQL Server ML 服務的使用者授權合約 (EULA)。
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y
若要完成接受 EULA,必須重新啟動 SQL Server 執行個體。
sudo systemctl restart mssql-server
安裝執行階段和套件
設定 R 支援
安裝 R 執行階段
下載並安裝所需的 R 版本。 選擇 R 4.2 版或更高版本,可直接從 cran.r-project.org 下載。請依照所需執行階段的指示進行。
開啟管理員 R 終端機:
sudo R
執行下列命令,以安裝
CompatibilityAPI
和RevoScaleR
的相依性:# R Terminal install.packages("iterators", lib="/usr/lib/R/library") install.packages("foreach", lib="/usr/lib/R/library") install.packages("R6", lib="/usr/lib/R/library") install.packages("jsonlite", lib="/usr/lib/R/library")
為 Linux 下載並安裝
CompatibilityAPI
和RevoScaleR
。install.packages("https://aka.ms/sqlml/r4.2/linux/CompatibilityAPI_1.1.0_R_x86_64-pc-linux-gnu.tar.gz", repos=NULL, lib="/usr/lib/R/library") install.packages("https://aka.ms/sqlml/r4.2/linux/RevoScaleR_10.0.1_R_x86_64-pc-linux-gnu.tar.gz", repos=NULL, lib="/usr/lib/R/library")
從 R 終端機確認
RevoScaleR
安裝。library("RevoScaleR")
使用 SQL Server 設定 R 執行階段
使用適用於 Linux 的 SQL Server 設定已安裝的 R 執行階段,其中
path/to/
是 R 二進位檔的檔案路徑,而RFolderVersion
是所安裝 R 執行階段的版本特定資料夾名稱 (例如R4.2
)。sudo /opt/mssql/bin/mssql-conf set extensibility rbinpath /usr/lib/R/bin/R sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/lib/R
重新啟動
Launchpadd
服務。systemctl restart mssql-launchpadd.service
設定適用於 Linux 的 SQL Server,以允許使用
sp_configure
系統預存程序的外部指令碼。EXEC sp_configure 'external scripts enabled', 1; GO RECONFIGURE GO
執行簡單的 T-SQL 命令傳回 R 的版本,以確認安裝:
EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R'; GO
設定 Python 支援
安裝 Python 執行階段
下載與安裝 Python。 專門選擇 Python 3.10 版,可直接從 python.org 下載。請依照提供的指示進行。 此外,為執行階段版本安裝共用的 Python 執行階段程式庫。 例如,若要為 Ubuntu 安裝
libpython3.10
:sudo apt-get install libpython3.10
。為根使用者下載並安裝
revoscalepy
。sudo pip install dill numpy==1.22.0 pandas patsy python-dateutil sudo pip install https://aka.ms/sqlml/python3.10/linux/revoscalepy-10.0.1-py3-none-any.whl --target=/usr/lib/python3.10/dist-packages
從 Python 終端機確認
revoscalepy
安裝。 確認可匯入程式庫。import revoscalepy
使用 SQL Server 設定 Python 執行階段
使用 SQL Server 設定已安裝的 Python 執行階段,其中
pythonbinbath
會設定為已安裝 Python 二進位檔的路徑,而datadirectories
會包含為所需 Python 版本安裝套件所使用的路徑 (例如/usr/lib/python3.10/dist-packages
)。 使用下列指令碼並搭配您的實際安裝路徑:sudo /opt/mssql/bin/mssql-conf set extensibility pythonbinpath /usr/bin/python3.10 sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/lib:/usr/lib/python3.10/dist-packages
重新啟動
Launchpadd
服務。systemctl restart mssql-launchpadd.service
設定適用於 Linux 的 SQL Server,以允許使用
sp_configure
系統預存程序的外部指令碼。EXEC sp_configure 'external scripts enabled', 1; GO RECONFIGURE GO
執行簡單的 T-SQL 命令傳回 Python 的版本,以確認安裝:
EXEC sp_execute_external_script @script=N'import sys;print(sys.version)',@language=N'Python'; GO
安裝 Java
若要安裝 Java 語言延伸模組,請參閱在 Linux 上安裝 SQL Server Java 語言延伸模組。
確認安裝
若要驗證安裝,請使用下列任一方法:
使用查詢工具執行 T-SQL 指令碼,該指令碼會執行叫用 Python 或 R 的系統預存程序。
執行下列 SQL 命令,以在 SQL Server 中測試 R 執行。 錯誤? 請嘗試重新啟動服務,
sudo systemctl restart mssql-server.service
。EXEC sp_execute_external_script @language =N'R', @script=N' OutputDataSet <- InputDataSet', @input_data_1 =N'SELECT 1 AS hello' WITH RESULT SETS (([hello] int not null)); GO
執行下列 SQL 命令,以在 SQL Server 中測試 Python 執行。
EXEC sp_execute_external_script @language =N'Python', @script=N' OutputDataSet = InputDataSet; ', @input_data_1 =N'SELECT 1 AS hello' WITH RESULT SETS (([hello] int not null)); GO
離線安裝
遵循離線安裝指示,以取得安裝套件的步驟。 尋找您的下載網站,然後使用以下套件清單下載特定套件。
提示
數個套件管理工具都提供協助您判斷套件相依性的命令。 若是 yum,請使用 sudo yum deplist [package]
。 若是 Ubuntu,請使用 sudo apt-get install --reinstall --download-only [package name]
,後面接著 dpkg -I [package name].deb
。
適用於 Python 和 R 執行階段的獨立 RevoScale 套件
RevoScale 套件也可以是用於 Python 和 R 執行階段的獨立套件。 若要為獨立案例安裝 Python 或 R 執行階段,請分別依照安裝 Python 執行階段和安裝 R 執行階段小節中的指示操作。
相關內容
Python 開發人員可以遵循下列教學課程,以了解如何搭配使用 Python 與 SQL Server:
R 開發人員可以從一些簡單的範例開始,並了解 R 如何搭配 SQL Server 使用的基本概念。 如需下一個步驟,請參閱下列連結: