適用対象: 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 |
すべて | Python と R を実行するために使用される拡張機能のフレームワーク。 |
mssql-server-extensibility パッケージのインストール
Linux ディストリビューションに対応する SQL Server on Linux のインストールとアップグレードを行うためのリポジトリを構成します。 パッケージ
mssql-server-extensibilityと関連付けられた依存libssl-devを使用して、SQL Server 拡張機能をインストールします。Ubuntu
sudo apt-get install mssql-server-extensibility libssl-devRHEL
yum install mssql-server-extensibilitySQL Server ML サービスのエンド ユーザー使用許諾契約書 (EULA) を確認し、同意します。
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml YEULA の同意を完了するには、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/RLaunchpaddサービスを再開します。systemctl restart mssql-launchpadd.servicesp_configureシステム ストアド プロシージャを使用して、外部スクリプトを許可するように Linux 用 SQL Server を構成します。EXECUTE sp_configure 'external scripts enabled', 1; GO RECONFIGURE; GO単純な T-SQL コマンドを実行してインストールを確認し、R のバージョンを取得します。
EXECUTE 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-packagesPython ターミナルから
revoscalepyインストールを確認します。 ライブラリをインポートできることを確認します。import revoscalepy
SQL Server を使用して Python ランタイムを構成する
インストールされている 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-packagesLaunchpaddサービスを再開します。systemctl restart mssql-launchpadd.servicesp_configureシステム ストアド プロシージャを使用して、外部スクリプトを許可するように Linux 用 SQL Server を構成します。EXECUTE sp_configure 'external scripts enabled', 1; GO RECONFIGURE; GO単純な 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
オフライン インストール
パッケージをインストールする手順については、オフライン インストールの手順に従います。 ダウンロード サイトを検索し、以下のパッケージ一覧を使用して特定のパッケージをダウンロードします。
ヒント
いくつかのパッケージ管理ツールには、パッケージの依存関係を判断するのに役立つコマンドが用意されています。 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 ランタイムのインストール」セクションの手順に従います。