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

適用対象: SQL Server 2019 (15.x) - Linux

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

Machine Learning Services は、Red Hat Enterprise Linux (RHEL)、SUSE Linux Enterprise Server (SLES)、および Ubuntu にインストールできます。 詳細については、「SQL Server on Linux のインストール ガイド」の「サポートされているプラットフォーム」を参照してください。

重要

これらの手順は、SQL Server 2019 (15.x) に固有です。 インストール手順が異なる SQL Server 2022 (16.x) については、「Linux に SQL Server 2022 Machine Learning Services (Python と R) をインストールする」を参照してください。

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

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

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

  • (R のみ) Microsoft R Open (MRO) は、SQL Server の R 機能用の基本 R ディストリビューションを提供します。また、RevoScaleR、MicrosoftML、および Machine Learning Services と共にインストールされるその他の 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 All 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 のオープンソース ディストリビューション。3 つのパッケージで構成されています。
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 Machine Learning Services をインストールするには、次の手順に従います。

RHEL に MRO をインストールする

次のコマンドは、MRO を提供するリポジトリを登録します。 登録後、他の R パッケージをインストールするためのコマンド (mssql-mlservices-mml など) には、パッケージの依存関係として 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 のインストール オプション:

  • 要件に基づいて言語サポートをインストールします (1 つまたは複数の言語)。
  • "フル インストール" では、トレーニング済みの機械学習モデルを含む、使用可能なすべての機能が提供されます。
  • "最小インストール" では、モデルは除外されますが、すべての機能が含まれます。

ヒント

可能であれば、yum clean all を実行して、インストールの前にシステム上のパッケージを更新しておきます。

完全インストール

含まれるもの:

  • オープンソースの Python
  • オープンソースの R
  • 機能拡張フレームワーク
  • 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
  • 機能拡張フレームワーク
  • 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 Machine Learning Services をインストールするには、次の手順に従います。

Ubuntu に MRO をインストールする

次のコマンドは、MRO を提供するリポジトリを登録します。 登録後、他の R パッケージをインストールするためのコマンド (mssql-mlservices-mml など) には、パッケージの依存関係として 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 のインストール オプション:

  • 要件に基づいて言語サポートをインストールします (1 つまたは複数の言語)。
  • "フル インストール" では、トレーニング済みの機械学習モデルを含む、使用可能なすべての機能が提供されます。
  • "最小インストール" では、モデルは除外されますが、すべての機能が含まれます。

ヒント

可能であれば、apt-get update を実行して、インストールの前にシステム上のパッケージを更新しておきます。

完全インストール

含まれるもの:

  • オープンソースの Python
  • オープンソースの R
  • 機能拡張フレームワーク
  • 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
  • 機能拡張フレームワーク
  • 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 Machine Learning Services をインストールするには、次の手順に従います。

SLES に MRO をインストールする

次のコマンドは、MRO を提供するリポジトリを登録します。 登録後、他の R パッケージをインストールするためのコマンド (mssql-mlservices-mml など) には、パッケージの依存関係として 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 のインストール オプション:

  • 要件に基づいて言語サポートをインストールします (1 つまたは複数の言語)。
  • "フル インストール" では、トレーニング済みの機械学習モデルを含む、使用可能なすべての機能が提供されます。
  • "最小インストール" では、モデルは除外されますが、すべての機能が含まれます。

完全インストール

含まれるもの:

  • オープンソースの Python
  • オープンソースの R
  • 機能拡張フレームワーク
  • 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
  • 機能拡張フレームワーク
  • 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 ツールを利用します。

  1. パッケージのインストールが完了したら、mssql-conf setup を実行し、プロンプトに従って SA パスワードを設定して、エディションを選択します。 SQL Server on Linux をまだ構成していない場合にのみ、このステップを実行します。

    sudo /opt/mssql/bin/mssql-conf setup
    
  2. オープンソースの 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 の構成に関するページを参照してください。

  3. 送信ネットワーク アクセスを有効にします。 既定では、送信ネットワーク アクセスは無効になっています。 送信要求を有効にするには、mssql-conf ツールを使用して "outboundnetworkaccess" ブール型プロパティを設定します。 詳しくは、「mssql-conf ツールを利用して SQL Server on Linux を構成する」をご覧ください。

    # Run as SUDO or root
    # Enable outbound requests over the network
    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. R 機能の統合のみの場合、MKL_CBWR 環境変数を設定して、Intel Math Kernel Library (MKL) 計算からの一貫した出力を保証します。

    • ユーザーのホーム ディレクトリでファイル .bash_profile を編集または作成し、行 export MKL_CBWR="AUTO" をファイルに追加します。

    • bash コマンド プロンプトで「source .bash_profile」と入力して、このファイルを実行します。

  5. SQL Server Launchpad サービスとデータベース エンジン インスタンスを再起動して、INI ファイルから更新後の値を読み込みます。 拡張機能関連の設定が変更されると、通知メッセージが表示されます。

    systemctl restart mssql-launchpadd
    
    systemctl restart mssql-server.service
    
  6. Azure Data Studio または Transact-SQL を実行する SQL Server Management Studio (Windows のみ) などの別のツールを使用して、外部スクリプトの実行を有効にします。

    EXEC sp_configure 'external scripts enabled', 1 
    RECONFIGURE WITH OVERRIDE 
    
  7. スタート パッド サービスをもう一度再起動します。

インストールの確認

R ライブラリ (MicrosoftML、RevoScaleR など) については、/opt/mssql/mlservices/libraries/RServer を参照してください。

Python ライブラリ (microsoftml および revoscalepy) については、/opt/mssql/mlservices/libraries/PythonServer を参照してください。

インストールを検証するには:

  • クエリ プールを使用して 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 
    

自動実行インストール

データベース エンジンの無人インストールを使用して、mssql-mlservices と EULA を追加します。

オープンソースの R および Python ディストリビューションに対し、mlservices 固有の EULA パラメーターのいずれかを使用します。

sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml

完全な EULA のドキュメントについては、「mssql-conf ツールを使用して SQL Server on Linux を構成する」をご覧ください。

オフライン インストール

パッケージをインストールする手順については、オフライン インストールの手順に従います。 ダウンロード サイトを検索し、以下のパッケージ一覧を使用して特定のパッケージをダウンロードします。

ヒント

いくつかのパッケージ管理ツールには、パッケージの依存関係を判断するのに役立つコマンドが用意されています。 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 開発者は、次のチュートリアルに従って、SQL Server で Python を使用する方法を学習できます。

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