在 Linux 上安裝 SQL Server 2019 機器學習服務 (Python 和 R)
適用於:SQL Server 2019 (15.x) - Linux
本文會引導您在 Linux 上安裝 SQL Server 機器學習服務。 您可使用機器學習服務來在資料庫中執行 Python 和 R 指令碼。
您可在 Red Hat Enterprise Linux (RHEL)、SUSE Linux Enterprise Server (SLES) 和 Ubuntu 上安裝機器學習服務。 如需詳細資訊,請參閱 Linux 上的 SQL Server 安裝指引中的<支援的平台>一節。
重要
這些指示僅適用於 Server 2019 (15.x)。 SQL Server 2022 (16.x) 的安裝步驟與此不同,請參閱在 Linux 上安裝 SQL Server 2022 機器學習服務 (Python 和 R) 。
預先安裝檢查清單
在 Linux 上安裝 SQL Server 並驗證安裝。
查看 Python 和 R 延伸模組的 SQL Server Linux 存放庫。 如果您已經為資料庫引擎安裝設定來源存放庫,您可以使用相同的存放庫登錄來執行 mssql-mlservices 套件安裝命令。
(僅限 R) Microsoft R Open (MRO) 為 SQL Server 中的 R 功能提供基底 R 散發,且是使用 RevoScaleR、MicrosoftML 和其他隨機器學習服務所安裝 R 套件的必要條件。
- 所需的版本為 MRO 3.5.2。
- 如下所示註冊
packages.microsoft.com
存放庫,以安裝 MRO 散發:microsoft-r-open-mro
和microsoft-r-open-mkl
。 - 請參閱以下的安裝章節,以了解如何安裝 MRO。
您應該有執行 T-SQL 命令的工具。
- 您可使用 Azure Data Studio,這是在 Linux、Windows 和 macOS 上執行的免費資料庫工具。
套件清單
在連線到網際網路的裝置上,系統會使用每個作業系統的套件安裝程式,獨立地下載及安裝套件。 下表描述只適用於 R 和 Python 的所有可用套件,您可以指定提供完整功能安裝或最基本功能安裝的套件。
可用的安裝套件:
套件名稱 | 適用於 | 描述 |
---|---|---|
mssql-server-extensibility | 全部 | 用來執行 Python 和 R 的擴充性架構。 |
microsoft-openmpi | Python、R | 針對 Linux 上用於平行處理,Rev* 程式庫所使用的訊息傳遞介面。 |
mssql-mlservices-python | Python | Anaconda 和 Python 的開放原始碼散發。 |
mssql-mlservices-mlm-py | Python | 完整安裝。 提供 revoscalepy、microsoftml、適用於影像特徵化和文字情感分析的預先定型的模型。 |
mssql-mlservices-packages-py | Python | 「最小安裝」 。 提供 revoscalepy 和 microsoftml。 排除預先定型的模型。 |
microsoft-r-open* | R | R 的開放原始碼散發,由三個套件組成。 |
mssql-mlservices-mlm-r | R | 完整安裝。 提供:RevoScaleR,MicrosoftML、sqlRUtils、olapR、適用於影像特徵化和文字情感分析的預先定型模型。 |
mssql-mlservices-packages-r | R | 「最小安裝」 。 提供 RevoScaleR、sqlRUtils、MicrosoftML、olapR。 排除預先定型的模型。 |
在 RHEL 上安裝
請遵循下列步驟,在 Red Hat Enterprise Linux (RHEL) 上安裝 SQL Server 機器學習服務。
在 RHEL 上安裝 MRO
下列命令會登錄提供 MRO 的存放庫。 登錄後,安裝其他 R 套件 (例如,mssql-mlservices-mml-r) 的命令會自動包含在 MRO 中作為套件相依性。
# Import the Microsoft repository key
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
# Set the location of the package repo at the "prod" directory
# The following command is for version 8.x
# To get the version for 6.x or 7.x, replace 8 with 6 or 7, respectively.
rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm
# Update packages on your system (optional)
yum update
Python 和 R 的安裝選項:
- 根據需求安裝語言支援 (單一或多個語言)。
- 完整安裝提供所有可用功能,包括預先訓練的機器學習模型。
- 「最小安裝」 則會排除模型,但仍具備所有功能。
提示
可能的話,請在安裝之前執行 yum clean all
,以重新整理系統上的套件。
完整安裝
包含:
- 開放原始碼的 Python
- 開放原始碼的 R
- Extensibility Framework
- Microsoft-openmpi
- 延伸模組 (Python、R)
- 機器學習程式庫
- 適用於 Python 和 R 的預先定型模型
# Install as root or sudo
# Add everything (all R, Python)
# Be sure to include -9.4.7* in mlsservices package names
sudo yum install mssql-mlservices-mlm-py-9.4.7*
sudo yum install mssql-mlservices-mlm-r-9.4.7*
最小安裝
包含:
- 開放原始碼的 Python
- 開放原始碼的 R
- Extensibility Framework
- Microsoft-openmpi
- 核心 Revo* 程式庫
- 機器學習程式庫
# Install as root or sudo
# Minimum install of R, Python extensions
# Be sure to include -9.4.6* in mlsservices package names
sudo yum install mssql-mlservices-packages-py-9.4.7*
sudo yum install mssql-mlservices-packages-r-9.4.7*
在 Ubuntu 上安裝
請遵循下列步驟,在 Ubuntu 上安裝 SQL Server 機器學習服務。
在 Ubuntu 上安裝 MRO
下列命令會登錄提供 MRO 的存放庫。 登錄後,安裝其他 R 套件 (例如,mssql-mlservices-mml-r) 的命令會自動包含在 MRO 中作為套件相依性。
# Install as root
sudo su
# Optionally, if your system does not have the https apt transport option
apt-get install apt-transport-https
# If you are on Ubuntu 20.04, install the following package (MRO 3.5 has a dependency on libtinfo.so.5 in Ubuntu 20.04)
apt-get install libncurses5
# Set the location of the package repo the "prod" directory containing the distribution.
# This example specifies 20.04. Replace with 16.04 or 14.04 if you want those versions.
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
# Register the repo
dpkg -i packages-microsoft-prod.deb
# Update packages on your system (required), including MRO installation
sudo apt-get update
Python 和 R 的安裝選項:
- 根據需求安裝語言支援 (單一或多個語言)。
- 「完整安裝」 提供所有可用功能,包括預先定型的機器學習模型。
- 「最小安裝」 則會排除模型,但仍具備所有功能。
提示
可能的話,請在安裝之前執行 apt-get update
,以重新整理系統上的套件。
完整安裝
包含:
- 開放原始碼的 Python
- 開放原始碼的 R
- Extensibility Framework
- Microsoft-openmpi
- Python 擴充功能
- R 擴充功能
- 機器學習程式庫
- 適用於 Python 和 R 的預先定型模型
# Install as root or sudo
# Add everything (all R, Python)
# There is no asterisk in this full install
sudo apt-get install mssql-mlservices-mlm-py
sudo apt-get install mssql-mlservices-mlm-r
最小安裝
包含:
- 開放原始碼的 Python
- 開放原始碼的 R
- Extensibility Framework
- Microsoft-openmpi
- 核心 Revo* 程式庫
- 機器學習程式庫
# Install as root or sudo
# Minimum install of R, Python
# No asterisk
sudo apt-get install mssql-mlservices-packages-py
sudo apt-get install mssql-mlservices-packages-r
在 SLES 上安裝
請遵循下列步驟,在 SUSE Linux Enterprise Server (SLES) 上安裝 SQL Server 機器學習服務。
在 SLES 上安裝 MRO
下列命令會登錄提供 MRO 的存放庫。 登錄後,安裝其他 R 套件 (例如,mssql-mlservices-mml-r) 的命令會自動包含在 MRO 中作為套件相依性。
# Install as root
sudo su
# Set the location of the package repo at the "prod" directory containing the distribution
# This example is for SLES12
zypper ar -f https://packages.microsoft.com/sles/12/prod packages-microsoft-com
# Update packages on your system (optional)
zypper update
Python 和 R 的安裝選項:
- 根據需求安裝語言支援 (單一或多個語言)。
- 「完整安裝」 提供所有可用功能,包括預先定型的機器學習模型。
- 「最小安裝」 則會排除模型,但仍具備所有功能。
完整安裝
包含:
- 開放原始碼的 Python
- 開放原始碼的 R
- Extensibility Framework
- Microsoft-openmpi
- Python 和 R 的延伸模組
- 機器學習程式庫
- 適用於 Python 和 R 的預先定型模型
# Install as root or sudo
# Add everything (all R, Python)
sudo zypper install mssql-mlservices-mlm-py
sudo zypper install mssql-mlservices-mlm-r
最小安裝
包含:
- 開放原始碼的 Python
- 開放原始碼的 R
- Extensibility Framework
- Microsoft-openmpi
- 核心 Revo* 程式庫
- 機器學習程式庫
# Install as root or sudo
# Minimum install of R, Python extensions
sudo zypper install mssql-mlservices-packages-py
sudo zypper install mssql-mlservices-packages-r
安裝後設定 (必要)
其他設定主要是透過 mssql-conf 工具來設定。
套件安裝完成之後,請執行 mssql-conf setup 並遵循提示設定 SA 密碼,然後選擇版本。 只有尚未在 Linux 上設定 SQL Server 時,才需要執行此步驟。
sudo /opt/mssql/bin/mssql-conf setup
接受開放原始碼 Python 和 R 延伸模組的授權合約。 使用下列命令:
# Run as SUDO or root # Use set + EULA sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y
在執行
mssql-conf setup
時,安裝程式會偵測 mssql mlservices 套件,並提示是否接受 EULA (如果先前沒有接受的話)。 如需 EULA 參數的詳細資訊,請參閱使用 mssql-conf 工具設定 SQL Server。啟用輸出網路存取。 預設會停用輸出網路存取。 若要啟用輸出要求,請使用 mssql-conf 工具來設定 "outboundnetworkaccess" 布林值屬性。 如需詳細資訊,請參閱使用 mssql-conf 在 Linux 上設定 SQL Server。
# Run as SUDO or root # Enable outbound requests over the network sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
若只需要 R 功能整合,請設定 MKL_CBWR 環境變數,以確保輸出與來自 Intel 數學核心程式庫 (MKL) 計算的一致。
在使用者主目錄中編輯或建立名為
.bash_profile
的檔案,並將export MKL_CBWR="AUTO"
這一行新增至檔案。在 bash 命令提示字元中輸入
source .bash_profile
來執行此檔案。
重新啟動 SQL Server Launchpad 服務和資料庫引擎執行個體,以從 INI 檔案讀取更新後的值。 修改擴充性相關設定時,會顯示通知訊息。
systemctl restart mssql-launchpadd systemctl restart mssql-server.service
使用 Azure Data Studio 或 SQL Server Management Studio (僅限 Windows) 等執行 Transact-SQL 的另一種工具,來啟用外部指令碼執行。
EXEC sp_configure 'external scripts enabled', 1 RECONFIGURE WITH OVERRIDE
重新啟動 Launchpad 服務。
確認安裝
您可以在 /opt/mssql/mlservices/libraries/RServer
找到 R 程式庫 (MicrosoftML、RevoScaleR 和其他)。
您可以在 /opt/mssql/mlservices/libraries/PythonServer
找到 Python 程式庫 (microsoftml 和 revoscalepy)。
驗證安裝:
使用查詢工具執行 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
自動安裝
使用資料庫引擎的自動安裝 \(部分機器翻譯\),新增 mssql-mlservices 和 EULA 的套件。
針對開放原始碼 R 和 Python 散發,使用其中一種 mlservices 限定的 EULA 參數:
sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml
完整的 EULA 可在使用 mssql-conf 工具設定 Linux 上的 SQL Server 中找到。
離線安裝
遵循離線安裝指示,以取得安裝套件的步驟。 尋找您的下載網站,然後使用以下套件清單下載特定套件。
提示
數個套件管理工具都提供協助您判斷套件相依性的命令。 若是 yum,請使用 sudo yum deplist [package]
。 若是 Ubuntu,請使用 sudo apt-get install --reinstall --download-only [package name]
,後面接著 dpkg -I [package name].deb
。
下載網站
從 https://packages.microsoft.com/ 下載套件。 所有適用於 Python 和 R 的 mlservices 套件都與資料庫引擎套件共存。 mlservices 套件的基底版本是 9.4.6。 您應該記得,microsoft-r-open 套件在其他存放庫中。
RHEL/8 路徑
Package | 下載位置 |
---|---|
mssql/mlservices 套件 | https://packages.microsoft.com/rhel/8/mssql-server-2019/ |
microsoft-r-open 套件 | https://packages.microsoft.com/rhel/8/prod/ |
Ubuntu/20.04 路徑
Package | 下載位置 |
---|---|
mssql/mlservices 套件 | https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019/pool/main/m/ |
microsoft-r-open 套件 | https://packages.microsoft.com/ubuntu/20.04/prod/pool/main/m/ |
SLES/12 路徑
Package | 下載位置 |
---|---|
mssql/mlservices 套件 | https://packages.microsoft.com/sles/12/mssql-server-2019/ |
microsoft-r-open 套件 | https://packages.microsoft.com/sles/12/prod/ |
選取所要使用的延伸模組,並下載特定語言的必要套件。 檔案名稱會在尾碼中包含平台資訊。
套件清單
取決於您想要使用的擴充功能,下載適用於特定語言的必要套件。 確切的檔案名稱會在尾碼中包含平台資訊,但下面的檔案名稱應該足以讓您判斷要取得的檔案。
# Core packages
mssql-server-15.0.1000
mssql-server-extensibility-15.0.1000
# R
microsoft-openmpi-3.0.0
microsoft-r-open-mkl-3.5.2
microsoft-r-open-mro-3.5.2
mssql-mlservices-packages-r-9.4.7.64
mssql-mlservices-mlm-r-9.4.7.64
# Python
microsoft-openmpi-3.0.0
mssql-mlservices-python-9.4.7.64
mssql-mlservices-packages-py-9.4.7.64
mssql-mlservices-mlm-py-9.4.7.64
相關內容
Python 開發人員可以遵循下列教學課程,以了解如何搭配使用 Python 與 SQL Server:
R 開發人員可以從一些簡單的範例開始,並了解 R 如何搭配 SQL Server 使用的基本概念。 如需下一個步驟,請參閱下列連結: