Linux に SQL Server 2022 Machine Learning Services (Python と R) をインストールする

適用対象: Linux 上の SQL Server 2022 (16.x)

この記事では、Linux に SQL Server Machine Learning Services をインストールする方法について説明します。 Machine Learning Services を使用して、データベース内で Python と R のスクリプトを実行できます。

Machine Learning Services は Ubuntu と Red Hat Enterprise Linux (RHEL) にインストールできます。 SUSE Linux Enterprise Server (SLES) はサポートされていません。

Linuxディストリビューションを動かすDockerコンテナにMachine Learning Servicesをインストールすることができます。 Dockerコンテナ内でも手順は以下の通りです。

詳細については、「SQL Server on Linux のインストール ガイド」の「サポートされているプラットフォーム」を参照してください。

Important

この記事では、SQL Server 2022 (16.x) について説明します。 Linux版SQL Server 2019については、「Linux版SQL Server 2019 Machine Learning Services (Python and R)をインストールする」をご覧ください。 Windows 上の SQL Server については、「Windows に SQL Server 2022 Machine Learning Services (Python と R) をインストールする」を参照してください。

インストール前のチェックリスト

  • SQL Server on Linux をインストールし、インストールを確認します。

  • SQL Server Linux リポジトリで、Python と R の拡張機能を確認します。 データベース エンジンのインストールのためにソース リポジトリを既に構成している場合は、同じリポジトリ登録を使用して mssql-server-extensibility パッケージ インストール コマンドを実行できます。

  • Transact-SQL (T-SQL) コマンドを実行するためのツールを用意しておく必要があります。

  • このインストール プロセス中に SQL Server インスタンスを再起動する必要があります。

パッケージ一覧

インターネットに接続されたデバイス上で、各オペレーティング システム用のパッケージ インストーラーを使用して、パッケージがデータベース エンジンとは別個にダウンロードされてインストールされます。

Linux版SQL Server 2022(16.x)用に利用可能なインストールパッケージは以下の通りです:

パッケージ名 適用先 Description
mssql-server-extensibility All Python と R を実行するために使用される拡張機能のフレームワーク。

mssql-server-extensibility パッケージのインストール

  1. Linux ディストリビューションに対応する SQL Server on 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 Machine Learningサービスのエンドユーザーライセンス契約(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. インストール済みのRランタイムをLinux用のSQL Serverで設定してください。 以下のコマンドはデフォルトの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. sp_configure システム ストアド プロシージャを使用して、外部スクリプトを許可するように Linux 用 SQL Server を構成します。

    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. インストール済みPythonランタイムをSQL Serverで設定し、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. sp_configure システム ストアド プロシージャを使用して、外部スクリプトを許可するように Linux 用 SQL Server を構成します。

    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 言語拡張をインストールする」を参照してください。

インストールを検証する

インストールを検証するには、次のいずれかのメソッドを使用します。

  • クエリ プールを使用して Python または R を呼び出すシステム ストアド プロシージャが実行される T-SQL スクリプトを実行します。

  • 次の 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のインストール」の手順に従ってください。