在 Linux 上安裝 SQL Server 2022 機器學習服務 (Python 和 R)

適用於: 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 執行個體。

套件清單

在已連線至網際網路的裝置上,套件會使用各作業系統的套件安裝程式下載並安裝,而不依賴資料庫引擎。

以下安裝套件適用於 Linux 上的 SQL Server 2022(16.x):

封裝名稱 適用於 Description
mssql-server-extensibility 全部 用來執行 Python 和 R 的擴充性架構。

安裝 mssql-server-extensibility 套件

  1. 設定符合 Linux 發行版的存放庫,以安裝及升級 Linux 上的 SQL Server 使用套件 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 機器學習服務的最終使用者授權協議(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. 執行下列命令,以安裝 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")
    
  4. 為 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")
    
  5. 在 R 終端機中驗證 RevoScaleR 是否已安裝。

    library("RevoScaleR")
    

使用 SQL Server 設定 R 執行階段

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

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

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

    EXECUTE 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.10:sudo 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 執行環境,其中 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
    
  2. 重新啟動 mssql-launchpadd 服務。

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

    EXECUTE sp_configure 'external scripts enabled', 1;
    GO
    
    RECONFIGURE;
    GO
    
  4. 請執行一個簡單的 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 執行時區段的指示操作。