適用於: Linux 上的 SQL Server 2022 (16.x)
本文會引導您在 Linux 上安裝 SQL Server 機器學習服務。 您可使用機器學習服務來在資料庫中執行 Python 和 R 指令碼。
您可以在 Ubuntu 和 Red Hat Enterprise Linux (RHEL) 上安裝機器學習服務。 不支援 SUSE Linux Enterprise Server (SLES)。
你可以在運行 Linux 發行版的 Docker 容器上安裝 機器學習 Services。 在 Docker 容器內,步驟如下。
如需詳細資訊,請參閱 Linux 上的 SQL Server 安裝指引中的<支援的平台>一節。
Important
本文參考 SQL Server 2022 (16.x)。 關於 Linux 版的 SQL Server 2019,請參見「在 Linux 上安裝 SQL Server 2019 機器學習 Services(Python 與 R)」。 若是 Windows 上的 SQL Server,請參閱在 Windows 上安裝 SQL Server 2022 機器學習服務 (Python 和 R)。
預先安裝檢查清單
在 Linux 上安裝 SQL Server 並驗證安裝。
查看 Python 和 R 延伸模組的 SQL Server Linux 存放庫。 如果您已為資料庫引擎安裝設定來源存放庫,您可以使用相同的存放庫註冊來執行 mssql-server-extensibility 封裝安裝命令。
您應該有執行 Transact-SQL (T-SQL) 命令的工具。
- 您可以使用任何熟悉的 SQL Server 用戶端工具連線到 SQL Server 執行個體,例如 sqlcmd、 SQL Server Management Studio (SSMS) 或 Visual Studio Code 的 MSSQL 延伸模組。
需要在此安裝過程中重新啟動 SQL Server 執行個體。
套件清單
在已連線至網際網路的裝置上,套件會使用各作業系統的套件安裝程式下載並安裝,而不依賴資料庫引擎。
以下安裝套件適用於 Linux 上的 SQL Server 2022(16.x):
| 封裝名稱 | 適用於 | Description |
|---|---|---|
mssql-server-extensibility |
全部 | 用來執行 Python 和 R 的擴充性架構。 |
安裝 mssql-server-extensibility 套件
設定符合 Linux 發行版的存放庫,以安裝及升級 Linux 上的 SQL Server 使用套件
mssql-server-extensibility及其相關相依套件libssl-dev安裝 SQL Server 擴充性功能。Ubuntu
sudo apt-get install mssql-server-extensibility libssl-devRHEL
yum install mssql-server-extensibility請審查並接受SQL Server 機器學習服務的最終使用者授權協議(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 執行環境。 以下指令使用預設的 R 安裝路徑。 如果你在其他地方安裝了 R,請更新路徑。
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重新啟動
mssql-launchpadd服務。systemctl restart mssql-launchpadd.service設定適用於 Linux 的 SQL Server,以允許使用
sp_configure系統預存程序的外部指令碼。EXECUTE sp_configure 'external scripts enabled', 1; GO RECONFIGURE; GO執行簡單的 T-SQL 命令傳回 R 的版本,以確認安裝:
EXECUTE 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 執行環境,其中
pythonbinpath設定為已安裝 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重新啟動
mssql-launchpadd服務。systemctl restart mssql-launchpadd.service設定適用於 Linux 的 SQL Server,以允許使用
sp_configure系統預存程序的外部指令碼。EXECUTE sp_configure 'external scripts enabled', 1; GO RECONFIGURE; GO請執行一個簡單的 T-SQL 指令來驗證安裝,以返回 Python 版本:
EXECUTE 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。EXECUTE 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 執行。
EXECUTE 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
離線安裝
遵循離線安裝指示,以取得安裝套件的步驟。 找到你的下載網站,然後用上面的套件清單下載特定的套件。
Tip
數個套件管理工具都提供協助您判斷套件相依性的命令。 若是 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 執行時區段的指示操作。