適用対象: SQL Server 2016 (13.x)
SQL Server 2017 (14.x)
SQL Server 2019 (15.x)
この記事では、Windowsに SQL Server Machine Learning Services をインストールする方法について説明します。 Machine Learning Services を使用して、Pythonおよび R スクリプトをデータベース内で実行できます。
重要
これらの手順は、SQL Server 2016 (13.x)、SQL Server 2017 (14.x)、および SQL Server 2019 (15.x) に適用されます。 SQL Server 2022 (16.x) については、 Windows に SQL Server 2022 Machine Learning Services をインストールするを参照してください。
Pythonと R のバージョン リファレンス
次の表に、各SQL Server リリースに含まれるPythonと R ランタイムのバージョンを示します。 次の表を使用して、SQL Server インスタンスで使用できる言語バージョンを確認します。
| SQL Server バージョン | Python バージョン | R バージョン |
|---|---|---|
| SQL Server 2016 (13.x) | N/A (R のみ) | 3.2.2 |
| SQL Server 2017 (14.x) RTM - CU21 | 3.5.2 | 3.3.3 |
| SQL Server 2017 (14.x) CU22 以降 | 3.5.2 および 3.7.2 | 3.3.3 および 3.5.2 |
| SQL Server 2019 (15.x) | 3.7.1 | 3.5.2 |
| SQL Server 2022 (16.x) | 3.10.2 | 4.2.0 |
注意
SQL Server 2022 (16.x) 以降では、R、Python、およびJavaのランタイムは、SQL Server セットアップでインストールされなくなりました。 代わりに、目的のカスタム ランタイムとパッケージをインストールします。 詳細については、「Install SQL Server 2022 Machine Learning Services on Windowsを参照してください。
サポートされているすべてのバージョンの詳細については、SQL Server Machine Learning Services とは何か?を参照してください。
プレインストールのチェックリスト
データベース エンジンのインスタンスが必要です。 Pythonまたは R の機能のみをインストールすることはできませんが、既存のスタンドアロン インスタンスに段階的に追加することはできます。
ビジネス継続性のために、Always On 可用性グループは、Machine Learning サービスでサポートされています。 各ノードに Machine Learning Services をインストールし、パッケージを構成します。
Machine Learning Services のインストールはサポートされていませんSQL Server 2017の常時オン フェールオーバー クラスターインスタンスで。 SQL Server 2019 以降でサポートされています。 インストール時に Machine Learning Services をインストールする必要があり、インストール後に既存のフェールオーバー クラスター インスタンスに機能を追加することはできません。
ドメイン コントローラーに Machine Learning Services をインストールしないでください。 セットアップの Machine Learning サービス部分は失敗します。
Shared Features>Machine Learning Server (Standalone) データベース インスタンスを実行しているコンピューターにはインストールしないでください。 スタンドアロン サーバーにより同じリソースの競合が発生するため、両方のインストールのパフォーマンスが低下することになります。
他のバージョンの Python および R とのサイド バイ サイド インストールはサポートされていますが、お勧めしません。 SQL Server インスタンスは、オープンソースの R ディストリビューションと Anaconda ディストリビューションの独自のコピーを使用するため、サポートされています。 SQL Server外のコンピューターで Python と R を使用するコードを実行すると、問題が発生する可能性があるため、お勧めしません。
- 別のライブラリと異なる実行可能ファイルを使用すると、SQL Serverで実行されているものと一貫性のない結果が作成されます。
- SQL Serverは、外部ライブラリで実行される R スクリプトと Python スクリプトを管理できないため、リソースの競合が発生します。
注意
Machine Learning サービスは既定で SQL Server ビッグ データ クラスター にインストールされます。 ビッグ データ クラスターを使用する場合、この記事の手順を実行する必要はありません。 詳細については、「
重要
セットアップが完了したら、この記事で説明されている構成後の手順を必ず完了してください。 これらの手順には、外部スクリプトを使用するSQL Serverを有効にしたり、ユーザーに代わって R ジョブとPython ジョブを実行するためにSQL Serverに必要なアカウントを追加したりすることが含まれます。 通常、構成を変更するには、インスタンスを再起動するか、Launchpad サービスを再起動する必要があります。
インストール メディアを入手する
SQL Serverのダウンロード場所は、エディションによって異なります。
SQL Server Enterprise、Standard、Express の各エディション。 これらのエディションには、運用環境で使用するためのライセンスが付与されます。 Enterprise および Standard エディションのインストール メディアについては、ソフトウェア販売元に問い合わせてください。 購入に関する情報および Microsoft パートナーのディレクトリについては、 マイクロソフトの購入 Web サイトをご覧ください。
最新の無償版。
Machine Learning Services とのPythonおよび R の統合をサポートするSQL Serverエディションの詳細については、「Editions and supported features of SQL Server 2017を参照してください。
Machine Learning Services とのPythonおよび R の統合をサポートするSQL Serverエディションの詳細については、Editions および SQL Server 2019 のサポートされる機能を参照してください。
セットアップを実行する
ローカルでのインストールの場合、管理者としてセットアップを実行する必要があります。 リモート共有からSQL Serverをインストールする場合は、リモート共有に対する読み取りと実行のアクセス許可を持つドメイン アカウントを使用する必要があります。
SQL Serverのセットアップ ウィザードを起動します。
Installation タブで、スタンドアロン インストールSQL Serverを選択するか、既存のインストールに機能を追加します。
[機能の選択] ページで、次のオプションを選択します。
データベース エンジン Services
SQL Serverで R とPythonを使用するには、データベース エンジンのインスタンスをインストールする必要があります。 既定のインスタンスまたは名前付きインスタンスを使用できます。
Machine Learning Services (In-Database)
このオプションでは、R および Python スクリプトの実行をサポートするデータベース サービスがインストールされます。
データベース エンジン Services
SQL Serverで R またはPythonを使用するには、データベース エンジンのインスタンスをインストールする必要があります。 既定のインスタンスまたは名前付きインスタンスを使用できます。
Machine Learning サービスと言語拡張機能
このオプションでは、R および Python スクリプトの実行をサポートするデータベース サービスがインストールされます。
R
Microsoft R パッケージ、インタープリター、およびオープンソース R を追加するには、このオプションを選択します。
Python
このオプションを選択して、Microsoft Python パッケージ、Python実行可能ファイルを追加し、Anaconda ディストリビューションからライブラリを選択します。 SQL Server リリースに含まれる特定のPythonバージョンについては、Python および R バージョン リファレンスを参照してください。
Javaのインストールと使用の詳細については、「install SQL Server Java Language Extension on Windowsを参照してください。
注意
Machine Learning サーバー (スタンドアロン) オプション共有機能を選択しないでください。 このオプションは別のコンピューターで使用することを意図しています。
[Microsoft R Open のインストールに同意する] ページで、[同意する][次へ] の順に選択します。
使用許諾契約書の対象:
- Microsoft R Open。
- オープンソース R の基本パッケージとツール。
- Microsoft 開発チームの R パッケージと接続プロバイダーが強化されました。
Consent to Install Python ページで、Accept>Next を選択します。 Pythonオープン ソース ライセンス契約では、Anaconda と関連するツールに加えて、Microsoft 開発チームの新しいPython ライブラリについても説明します。
注意
ご使用のコンピューターがインターネットにアクセスできない場合は、この時点でセットアップを一時停止して、個別にインストーラーをダウンロードできます。 詳細については、インターネットへのアクセスなしで機械学習コンポーネントをインストールするに関するページを参照してください。
[インストールの準備完了] ページで、以下が選択されていることを確認した後、[インストール] を選択します。
- データベース エンジン サービス
- Machine Learning サービス (データベース内)
- R、Python、またはその両方
構成ファイルが格納されている パスの下にあるフォルダーの場所をメモしておきます。 セットアップが完了したら、インストールされたコンポーネントを概要ファイルで確認できます。
セットアップが完了し、コンピューターの再起動を求めるメッセージが表示されたら、再起動してください。 セットアップが完了した時点で、インストール ウィザードのメッセージを確認することが重要です。 詳細については、「セットアップ ログ ファイルの表示とSQL Server読み取りを参照してください。
[Microsoft R Open のインストールに同意する] ページで、[同意する][次へ] の順に選択します。 このライセンス契約は、Microsoft R Open (オープンソースの R 基本パッケージとツールのディストリビューションを含む) を対象としています。 Microsoft 開発チームの強化された R パッケージと接続プロバイダーも含まれます。
Consent to Install Python ページで、Accept>Next を選択します。 Pythonオープン ソース ライセンス契約では、Anaconda と関連するツールに加えて、Microsoft 開発チームの新しいPython ライブラリについても説明します。
[インストールの準備完了] ページで、以下が選択されていることを確認した後、[インストール] を選択します。
- データベース エンジン サービス
- Machine Learning サービス (データベース内)
- R、Python、またはその両方
構成ファイルが格納されている パスの下にあるフォルダーの場所をメモしておきます。 セットアップが完了したら、インストールされたコンポーネントを概要ファイルで確認できます。
セットアップが完了し、コンピューターの再起動を求めるメッセージが表示されたら、再起動してください。 セットアップが完了した時点で、インストール ウィザードのメッセージを確認することが重要です。 詳細については、「セットアップ ログ ファイルの表示とSQL Server読み取りを参照してください。
環境変数の設定
R 機能のみを統合する場合、 環境変数を設定して、Intel Math Kernel Library (MKL) 計算からの一貫した出力を保証する必要があります。
コントロール パネルで、システムとセキュリティ>システム>システムの詳細設定>環境変数を選択します。
新しいユーザー変数またはシステム変数を作成します。
- 変数名を に設定します。
- 変数値を に設定します。
この手順では、サーバーを再起動する必要があります。 スクリプトの実行を有効にしようとしている場合、すべての構成作業が完了するまで再起動を遅らせることができます。
スクリプトの実行を有効にする
SQL Server Management Studio (SSMS) を使用して、SQL Server Machine Learning Services をインストールしたインスタンスに接続します。
[新しいクエリ] を選択してクエリ ウィンドウを開き、次のコマンドを実行します。
EXEC sp_configureプロパティ の値は、この時点では であることが必要です。 この機能は既定でオフになっています。 R または Python スクリプトを実行できるように有効にするには、次のステートメントを実行します。
EXEC sp_configure 'external scripts enabled', 1 RECONFIGURE WITH OVERRIDER 言語の機能を既に有効にしている場合は、Pythonのために 2 回目
RECONFIGUREを実行する必要はありません。 基になる拡張機能プラットフォームでは、両方の言語がサポートされています。
サービスを再起動します。
インストールが完了したら、データベース エンジンを再起動します。 サービスを再起動すると、関連する SQL Server Launchpad サービスも自動的に再起動されます。
次のいずれかの方法を使用して、サービスを再起動できます。
- SSMS の オブジェクト エクスプローラー でインスタンスを右クリックし、Restart コマンドを選択します。
- コントロール パネル の Services Microsoft 管理コンソール (MMC) 項目
- SQL Server 構成マネージャー
インストールの確認
次の手順に従って、外部スクリプトの起動に使用されるすべてのコンポーネントが実行されていることを確認します。
SQL Server Management Studioで、新しいクエリ ウィンドウを開き、次のコマンドを実行します。
EXECUTE sp_configure 'external scripts enabled'が に設定されます。
Services コントロール パネル項目またはSQL Server 構成マネージャーを開き、SQL Server Launchpad サービスが実行されていることを確認します。 R またはPythonがインストールされているすべてのデータベース エンジン インスタンスに対して 1 つのサービスが必要です。 サービスの詳細については、「SQL Server Machine Learning Services のExtensibility アーキテクチャ」を参照>。
スタート パッドが実行されている場合は、単純なPythonおよび R スクリプトを実行して、外部スクリプト ランタイムがSQL Serverと通信できることを確認できます。
SQL Server Management Studioで新しい Query ウィンドウを開き、次のようなスクリプトを実行します。
R の場合:
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)); GOPythonの場合:
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
最初に外部スクリプト ランタイムを読み込む際には、スクリプトの実行に少し時間がかかります。 結果は次のようになります。
こんにちは 1
注意
Python スクリプトで使用されている列または見出しは自動的には返されません。 出力に列名を追加するには、戻り値のデータ セットに対してスキーマを指定する必要があります。 これを行うには、ストアド プロシージャの パラメーターを使用して、列に名前を付け、SQL データ型を指定します。
たとえば、次の行を追加して、任意の列名 () を生成できます。
更新プログラムの適用
既存のインストール
既存のSQL Server インスタンスに Machine Learning Services を追加し、以前に累積的な更新プログラム (CU) を適用している場合は、データベース エンジンのバージョンと Machine Learning Services 機能が異なる可能性があります。 と のバージョンが異なるため、この違いにより予期しない動作やエラーが発生する可能性があります。
Machine Learning サービスをデータベース エンジンと同じバージョンにするには、次の手順に従います。
データベース エンジンの累積的な更新プログラムを確認します。 次の T-SQL ステートメントを実行します。
SELECT @@VERSIONSQL Server 2019 CU 8 からの出力例を次に示します。
Microsoft SQL Server 2019 (RTM-CU8-GDR) (KB4583459) - 15.0.4083.2 (X64) Nov 2 2020 18:35:09 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Enterprise 10.0 (X64) (Build 19042: ) (Hypervisor)詳細については、「SQL Serverとそのコンポーネントのバージョン、エディション、および更新レベルを決定するを参照してください。
必要に応じて、データベース エンジンにインストールした累積的な更新プログラムをダウンロードします。
累積的な更新プログラムのインストールを実行し、指示に従って、Machine Learning サービス用に再度インストールします。 Machine Learning サービスがインストールされている既存のインスタンスを選択します。 アップグレードの状態として、[機能の選択] ページに [インストールが不完全です] と表示されます。
[次へ] を選択し、インストールを続行します。
新しいインストール
SQL Server データベース エンジンの新規インストールで Machine Learning Services をインストールする場合は、データベース エンジンと machine learning コンポーネントの両方に最新の累積的な更新プログラムを適用することをお勧めします。
インターネットに接続されたデバイスでは、累積的な更新プログラムは通常、Windows Updateを通じて適用されます。 ただし、制御された更新には次の手順を使用することもできます。 データベース エンジンの更新プログラムを適用すると、セットアップによって、同じインスタンスにインストールしたすべてのPythonまたは R 機能の累積的な更新プログラムがプルされます。
切断されたサーバーには追加の手順が必要です。 詳細については、インターネット アクセスなしでコンピューターにインストールする 累積的な更新プログラムを適用するを参照してください。
SQL Server 初期リリースが既にインストールされているベースライン インスタンスから始めます。
Microsoft SQL Serverリストに移動>。
最新の累積的な更新プログラムを選択します。 実行可能ファイルがダウンロードされ、自動的に抽出されます。
セットアップを実行し、使用許諾条件に同意します。
[機能の選択] ページで、累積的な更新プログラムが適用される機能を確認します。 機械学習機能を含む、現在のインスタンスにインストールされているすべての機能が表示されます。 セットアップにより、すべての機能を更新するために必要な CAB ファイルがダウンロードされます。
インストールされている機能の概要を示すスクリーンショット。
ウィザードの手順を続行します。 R および Python ディストリビューションのライセンス条項に同意します。
追加構成
外部スクリプト検証手順が成功した場合は、サーバーに T-SQL ステートメントを送信できる SQL Server Management Studio、Visual Studio Code、またはその他のクライアントから R または Python コマンドを実行できます。
コマンドを実行したときにエラーが発生した場合、サービスまたはデータベースに追加の構成を行うことが必要な場合があります。 インスタンス レベルでは、追加の構成に次のものが含まれます。
- SQL Server Machine Learning Services のファイアウォールを構成する
- 追加のネットワーク プロトコルの有効化
- リモート接続の有効化
- SQLRUserGroup のログインを作成する
- 外部スクリプトがディスク領域を消費するタスクを実行するのを防止する、ディスク クォータの管理
Windows SQL Server 2019 では、分離メカニズムが変更されました。 このメカニズムは、SQLRUserGroup、ファイアウォール規則、ファイルのアクセス許可、および暗黙の認証に影響します。 詳細については、「Machine Learning サービスにおける Isolation の変更」を参照してください。
データベースで構成の更新が必要になる場合があります。 詳細については、「SQL Server Machine Learning Services にユーザーに権限を付与する」を参照してください。
注意
追加の構成が必要かどうかは、セキュリティ スキーマ、SQL Serverをインストールした場所、およびユーザーがデータベースに接続して外部スクリプトを実行する方法によって異なります。
推奨される最適化
すべてが機能したら、機械学習をサポートするようにサーバーを最適化したり、事前トレーニング済みの機械学習モデルをインストールしたりすることもできます。
ワーカー アカウントを追加する
多くのユーザーが同時にスクリプトを実行する場合は、Launchpad サービスに割り当てられるワーカー アカウントの数を増やすことができます。 詳細については、「 SQL Server Machine Learning Services での外部スクリプトの同時実行のスケーリングを参照してください。
スクリプトの実行用にサーバーを最適化する
SQL Serverセットアップの既定の設定は、他のさまざまなサービスやアプリケーションのサーバーのバランスを最適化することを目的としています。
既定の設定では、特にメモリを集中的に使用する操作では、機械学習のリソースが制限または調整されることがあります。
機械学習ジョブの優先順位とリソースが適切に設定されるようにするには、SQL Server Resource Governorを使用して外部リソース プールを構成することをお勧めします。 また、SQL Server データベース エンジンに割り当てられるメモリの量を変更したり、SQL Server Launchpad サービスで実行されるアカウントの数を増やしたりすることもできます。
外部リソースを管理するためのリソース プールを構成するには、CREATE EXTERNAL RESOURCE POOL に関するページを参照してください。
データベース用に予約されているメモリの量を変更するには、「サーバー メモリの構成オプション」を参照してください。
スタート パッドSQL Server開始できる R アカウントの数を変更するには、「 SQL Server Machine Learning Services での外部スクリプトの同時実行のスケーリングを参照してください。
Standard Edition を使用していて、Resource Governorがない場合は、動的管理ビュー、拡張イベントのSQL Server、Windowsイベント監視を使用して、サーバー リソースの管理に役立ちます。
追加のPythonおよび R パッケージをインストールする
SQL Server用に作成するPythonおよび R ソリューションは、次を呼び出すことができます。
- 基本関数。
- SQL Serverと共にインストールされた専用パッケージの関数。
- SQL Serverインストールされるオープン ソース Pythonおよび R のバージョンと互換性のあるサード パーティ製パッケージ。
SQL Serverから使用するパッケージは、インスタンスが使用する既定のライブラリにインストールする必要があります。 コンピューターに Python または R を個別にインストールしている場合、またはユーザー ライブラリにパッケージをインストールした場合、T-SQL からこれらのパッケージを使用することはできません。
追加のパッケージをインストールして管理するには、ユーザー グループを設定してデータベース レベルでパッケージを共有するか、ユーザーが独自のパッケージをインストールできるようにデータベース ロールを構成します。 詳細については、「 新しい R パッケージのインストール」を参照してください。
関連コンテンツ
- SQL Server Machine Learning Services とは
Windows - Python チュートリアル: SQL 機械学習を使用して線形回帰モデルをデプロイする
- Python チュートリアル: SQL 機械学習を使用した k-means クラスタリングを使用した顧客の分類
- クイック スタート: SQL 機械学習を使用して単純な R スクリプトを実行する
- R チュートリアル: 二項分類を使用して NYC タクシー料金を予測する