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

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

この記事では、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) はサポートされていません。

ML Services は、Linux ディストリビューションを実行している Docker コンテナーにインストールできます。 Docker コンテナー内では、手順は以下と同じになります。

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

重要

この記事では、SQL Server 2022 (16.x) について説明します。 SQL Server 2019 on Linux の場合は、「Linux に SQL Server 2019 Machine Learning Services (Python と 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 パッケージ インストール コマンドを実行できます。

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

    • Azure Data Studio を使用できます。これは、Linux、Windows、macOS で実行される無料のデータベース ツールです。
  • このインストール プロセス中に SQL Server インスタンスを再起動する必要があります。

パッケージ一覧

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

SQL Server 2022 (16.x) on Linux で使用できるインストール パッケージ:

パッケージ名 適用先 説明
mssql-server-extensibility All 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 用の 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 で構成します。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. sp_configure システム ストアド プロシージャを使用して、外部スクリプトを許可するように Linux 用 SQL Server を構成します。

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

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

インストールの確認

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

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

  • 次の 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 開発者は、次のチュートリアルに従って、SQL Server で Python を使用する方法を学習できます。

R 開発者はいくつかの簡単な例を試して、SQL Server での R の動作方法の基本を確認できます。 次の手順については、以下のリンクを参照してください。