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 パッケージのインストール
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
SQL Server ML サービスのエンド ユーザー使用許諾契約書 (EULA) を確認し、同意します。
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y
EULA の同意を完了するには、SQL Server インスタンスを再起動する必要があります。
sudo systemctl restart mssql-server
ランタイムとパッケージをインストールする
R セットアップのサポート
R ランタイムのインストール
目的のバージョンの R をダウンロードしてインストールします。 R 4.2 以降のバージョンを選択してください (cran.r-project.org から直接ダウンロードできます)。目的のランタイムの指示に従います。
管理者 R ターミナルを開きます。
sudo R
次のコマンドを実行して、
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")
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")
R ターミナルから
RevoScaleR
インストールを確認します。library("RevoScaleR")
SQL Server を使用して R ランタイムを構成する
インストールされた 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
Launchpadd
サービスを再開します。systemctl restart mssql-launchpadd.service
sp_configure
システム ストアド プロシージャを使用して、外部スクリプトを許可するように Linux 用 SQL Server を構成します。EXEC sp_configure 'external scripts enabled', 1; GO RECONFIGURE GO
単純な T-SQL コマンドを実行してインストールを確認し、R のバージョンを取得します。
EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R'; GO
Python サポートを設定する
Python ランタイムをインストールする
Python をダウンロードしてインストールします。 Python 3.10 バージョンを選択してください (python.org から直接ダウンロードできます)。表示される指示に従います。 また、ランタイム バージョンの共有 Python ランタイム ライブラリをインストールします。 たとえば、Ubuntu の
libpython3.10
をインストールするにはsudo apt-get install libpython3.10
です。ルート ユーザーの
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
Python ターミナルから
revoscalepy
インストールを確認します。 ライブラリをインポートできることを確認します。import revoscalepy
SQL Server を使用して Python ランタイムを構成する
インストールされている 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
Launchpadd
サービスを再開します。systemctl restart mssql-launchpadd.service
sp_configure
システム ストアド プロシージャを使用して、外部スクリプトを許可するように Linux 用 SQL Server を構成します。EXEC sp_configure 'external scripts enabled', 1; GO RECONFIGURE GO
単純な 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 を使用する方法を学習できます。
- Python のチュートリアル:SQL Server Machine Learning Services での線形回帰を使用したスキー レンタルの予測
- Python のチュートリアル:SQL Server Machine Learning Services と K-Means クラスタリングを使用して顧客を分類する
R 開発者はいくつかの簡単な例を試して、SQL Server での R の動作方法の基本を確認できます。 次の手順については、以下のリンクを参照してください。