在 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 套件

  1. 設定對應至 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
    
  2. 檢閱並接受 SQL Server ML 服務的使用者授權合約 (EULA)。

    sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y
    

    若要完成接受 EULA,必須重新啟動 SQL Server 執行個體。

    sudo systemctl restart mssql-server
    

安裝執行階段和套件

設定 R 支援

安裝 R 執行階段

  1. 下載並安裝所需的 R 版本。 選擇 R 4.2 版或更高版本,可直接從 cran.r-project.org 下載。請依照所需執行階段的指示進行。

  2. 開啟管理員 R 終端機:

    sudo R
    
  3. 執行下列命令,以安裝 CompatibilityAPIRevoScaleR 的相依性:

    # 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")
    
  4. 為 Linux 下載並安裝 CompatibilityAPIRevoScaleR

    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")
    
  5. 從 R 終端機確認 RevoScaleR 安裝。

    library("RevoScaleR")
    

使用 SQL Server 設定 R 執行階段

  1. 使用適用於 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
    
  2. 重新啟動 Launchpadd 服務。

    systemctl restart mssql-launchpadd.service
    
  3. 設定適用於 Linux 的 SQL Server,以允許使用 sp_configure 系統預存程序的外部指令碼。

    EXEC sp_configure 'external scripts enabled', 1;
    GO
    RECONFIGURE
    GO
    
  4. 執行簡單的 T-SQL 命令傳回 R 的版本,以確認安裝:

    EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R';
    GO
    

設定 Python 支援

安裝 Python 執行階段

  1. 下載與安裝 Python。 專門選擇 Python 3.10 版,可直接從 python.org 下載。請依照提供的指示進行。 此外,為執行階段版本安裝共用的 Python 執行階段程式庫。 例如,若要為 Ubuntu 安裝 libpython3.10sudo apt-get install libpython3.10

  2. 為根使用者下載並安裝 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
    
  3. 從 Python 終端機確認 revoscalepy 安裝。 確認可匯入程式庫。

    import revoscalepy
    

使用 SQL Server 設定 Python 執行階段

  1. 使用 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
    
  2. 重新啟動 Launchpadd 服務。

    systemctl restart mssql-launchpadd.service
    
  3. 設定適用於 Linux 的 SQL Server,以允許使用 sp_configure 系統預存程序的外部指令碼。

    EXEC sp_configure 'external scripts enabled', 1;
    GO
    RECONFIGURE
    GO
    
  4. 執行簡單的 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 使用的基本概念。 如需下一個步驟,請參閱下列連結: