SQL Server 2016 R Services のインストール

適用対象: SQL Server 2016 (13.x)

Windows に SQL Server 2016 R Services をインストールする方法について説明します。 R Services を使用すると、データベース内で R スクリプトを実行できます。

SQL Server 2017 以降で、R は Python と共に Machine Learning Services に含まれています。 R が必要な場合、SQL Server 2017 以降をお持ちの場合は、SQL Server Machine Learning Services のインストールに関するページを参照して、この機能を追加してください。

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

  • データベース エンジンのインスタンスが必要です。 R だけをインストールすることはできませんが、既存のインスタンスに段階的に追加することはできます。

  • ビジネス継続性のために、R Services は Always On 可用性グループをサポートしています。 各ノードに R Services をインストールし、パッケージを構成する必要があります。

  • SQL Server Always On フェールオーバー クラスター インスタンス (FCI) に R Services をインストールしないでください。 R プロセスの分離に使用されるセキュリティ メカニズムは、SQL Server Always On フェールオーバー クラスター インスタンス (FCI) 環境と互換性がありません。

  • R Services はドメイン コントローラーにはインストールしないでください。 セットアップの R Services の部分が失敗します。

  • 共有機能>R Server (スタンドアロン) を、データベース内インスタンスを実行しているのと同じコンピューターにインストールしないでください。

  • R の他のバージョンとのサイドバイサイド インストールはサポートされていますが、推奨されません。 SQL Server インスタンスがオープンソース R ディストリビューションの独自のコピーを使用するため、サポートされています。 しかし、SQL Server の外部の SQL Server コンピューターで R を使用するコードを実行すると、さまざまな問題が発生する可能性があります。

    • 別のライブラリと異なる実行可能ファイルを使用し、SQL Server で実行する場合とは異なる結果が得られます。
    • 外部ライブラリで実行されている R スクリプトを SQL Server で管理できないため、リソースの競合が発生します。

Important

セットアップが完了したら、この記事で説明されている追加の構成後の手順を必ず完了してください。 これらの手順には、SQL Server で外部スクリプトを使用できるようにすることや、ユーザーに代わって SQL Server が R ジョブを実行するために必要なアカウントを追加することが含まれます。 通常、構成を変更するには、インスタンスを再起動するか、Launchpad サービスを再起動する必要があります。

インストール メディアを入手する

SQL Serverのダウンロード場所は、エディションによって異なります。

  • SQL Server Enterprise、Standard、Express の各エディション。 これらのエディションには、運用環境で使用するためのライセンスが付与されます。 Enterprise および Standard エディションのインストール メディアについては、ソフトウェア販売元に問い合わせてください。 購入に関する情報および Microsoft パートナーのディレクトリについては、 マイクロソフトの購入 Web サイトをご覧ください。

  • 最新の無償版

インストールのパッチ要件

SQL Server の前提条件としてインストールされる特定のバージョンの Microsoft VC++ 2013 ランタイム バイナリに問題が見つかりました。 VC ランタイム バイナリに対するこの更新プログラムがインストールされていない場合、SQL Server で特定のシナリオで安定性の問題が発生する可能性があります。 SQL Server をインストールする前に、「SQL Server リリース ノート」にある手順に従って、ご使用のコンピューターに VC ランタイム バイナリのパッチが必要かどうかを確認してください。

セットアップを実行する

ローカル インストールの場合は、セットアップを管理者として実行する必要があります。 SQL Server をリモート共有からインストールする場合は、そのリモート共有に対する読み取り権限と実行権限を持つドメイン アカウントを使用する必要があります。

  1. SQL Server 2016 のセットアップ ウィザードを開始します。

  2. [インストール] タブで、 [SQL Server の新規スタンドアロン インストールを実行するか、既存のインストールに機能を追加します] を選択します。

    R Services のインストール (In-Database) のスクリーンショット。

  3. [機能の選択] ページで、次のオプションを選択します。

    • [データベース エンジン サービス] を選択します。 機械学習を使用する各インスタンスには、データベース エンジンが必要です。
    • [R Services (データベース内)] を選択します。 R のデータベース内での使用のサポートがインストールされます。

    R Services 機能の選択のスクリーンショット。

    Important

    R Server と R Services を同時にインストールしないでください。

  4. [ Microsoft R Open のインストールに同意する ] ページで、[同意する] を選択 します

    このライセンス契約は、Microsoft R Open をダウンロードするために必要です。これには、オープンソース R 基本パッケージとツール、Microsoft 開発チームから提供された R パッケージおよび接続プロバイダーのディストリビューションが含まれています。

  5. 使用許諾契約書に同意すると、インストーラーの準備中に少し一時停止します。 ボタンが使用可能になったら、[ 次へ ] を選択します。

  6. [インストールの準備完了] ページで、次の項目が選択されていることを確認した後、 [インストール] を選択します。

    • データベース エンジン サービス
    • R Services (データベース内)
  7. セットアップが完了し、コンピューターの再起動を求めるメッセージが表示されたら、再起動してください。 セットアップが完了したら、インストール ウィザードからメッセージを読み取る必要があります。 詳細については、「SQL Server セットアップ ログ ファイルの表示と読み取り」を参照してください。

環境変数の設定

R 機能の統合のみの場合、MKL_CBWR 環境変数を設定して、Intel Math Kernel Library (MKL) 計算からの一貫した出力を保証する必要があります。

  1. コントロール パネルで、システムとセキュリティ>システム>詳細設定>環境変数を選択します。

  2. 新しいユーザー変数またはシステム変数を作成します。

    • 変数名を MKL_CBWR に設定する
    • 変数値を AUTO に設定する

この手順では、サーバーを再起動する必要があります。 すべての構成作業が完了するまで再起動を遅らせることができます。

スクリプトの実行を有効にする

  1. SQL Server Management Studio (SSMS) を開きます。

  2. R Services をインストールしたインスタンスに接続し、[ 新しいクエリ ] を選択してクエリ ウィンドウを開き、次のコマンドを実行します。

    sp_configure
    

    プロパティの値 ( external scripts enabled) は、この時点で 0 する必要があります。 これは、機能が既定で無効になっているためです。 この機能は、R スクリプトを実行する前に、管理者が明示的に有効にする必要があります。

  3. 外部スクリプト機能を有効にするには、次のステートメントを実行します。

    EXECUTE sp_configure 'external scripts enabled', 1;
    RECONFIGURE WITH OVERRIDE;
    

サービスを再起動します。

インストールが完了したら、次のスクリプトの実行を有効にする前に、データベース エンジンを再起動します。

サービスを再起動すると、関連する SQL Server Launchpad サービスも自動的に再起動されます。

サービスの再起動は、SSMS でインスタンスの [再起動] コマンドを右クリックするか、SQL Server 構成マネージャーを使って行うことができます。

インストールを検証する

次の手順に従って、外部スクリプトの起動に使用されるすべてのコンポーネントが実行されていることを確認します。

  1. SQL Server Management Studio で、新しい [クエリ] ウィンドウを開き、次のコマンドを実行します。

    EXECUTE sp_configure 'external scripts enabled';
    

    この時点で、run_value が 1 に設定されている必要があります。

  2. SQL Server 構成マネージャーを開き、SQL Server Launchpad サービスが実行されていることを確認します。 R がインストールされているすべてのデータベース エンジンのインスタンスに対して 1 つのサービスがある必要があります。 サービスの詳細については、「SQL Server Machine Learning Services の機能拡張アーキテクチャ」を参照してください。

  3. Launchpad が実行されている場合は、外部スクリプト ランタイムが SQL Server と通信できることを確認するため、単純な R を実行できる必要があります。

    SQL Server Management Studio で新しい クエリ ウィンドウを開き、次のスクリプトを実行します。

    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
    

    スクリプトの実行には、最初に外部スクリプト ランタイムが読み込まれるときに少し時間がかかります。 結果は次のようになります。

    hello
    1

更新プログラムの適用

最新の Service Pack と累積的な更新プログラムをデータベース エンジンと機械学習コンポーネントの両方に適用することが推奨されます。

インターネットに接続されているデバイスでは、通常、累積的な更新プログラムは Windows Update によって適用されますが、管理された更新には、次の手順を使用することもできます。 データベース エンジンに更新プログラムを適用すると、同じインスタンスにインストールした R ライブラリの累積更新プログラムがセットアップによってプルされます。

接続されていないサーバーでは、追加の手順が必要です。 詳細については、インターネット アクセスなしでコンピューターにインストールする > 累積的な更新プログラムを適用するを参照してください。

  1. 既にインストールされているベースライン インスタンスを使用して開始します: SQL Server 2016 初回リリース、SQL Server 2016 SP 1、または SQL Server 2016 SP 2。

  2. 累積的な更新プログラムの一覧に移動します: Microsoft SQL Server の最新の更新プログラム

  3. 最新のサービスパック(ベースライン インスタンスとしてまだインストールされていない場合)と累積更新プログラムを選択します。 実行可能ファイルがダウンロードされ、自動的に抽出されます。

  4. セットアップを実行します。 ライセンス条項に同意し、[機能の選択] ページで、累積的な更新プログラムが適用される機能を確認します。 R Services を含む、現在のインスタンスにインストールされているすべての機能が表示されます。 セットアップにより、すべての機能を更新するために必要な CAB ファイルがダウンロードされます。

  5. ウィザードを続行し、R ディストリビューションのライセンス条項に同意します。

SQL Server 2016 SP2 の累積的な更新プログラム (CU) 14 以降には、より新しいバージョンの R ランタイムが含まれています。 詳細については、「 R または Python 言語の既定のランタイム バージョンを変更する」を参照してください。

追加の設定

外部スクリプト検証手順が成功した場合は、SQL Server Management Studio または T-SQL ステートメントをサーバーに送信できる他のクライアントから R コマンドを実行できます。

コマンドの実行中にエラーが発生した場合は、このセクションの追加の構成手順を確認してください。 場合によっては、サービスまたはデータベースに対して追加の適切な構成を行う必要があります。

インスタンス レベルでは、追加の構成には次のものが含まれます。

データベースでは、次の構成の更新が必要になる場合があります。

リストされたすべての変更が必要となるとは限りません。すべて不必要な場合もあります。 必要となるかどうかは、SQL Server をインストールしたセキュリティ スキーマと、ユーザーをどのようにデータベースに接続して外部スクリプトを実行させるかによって異なります。 インストールガイダンスの詳細については、「 SQL Server Machine Learning Services のインストール」を参照してください。

推奨される最適化

R で機械学習をサポートするようにサーバーを最適化したり、事前トレーニング済みのモデルをインストールしたりすることもできます。

ワーカー アカウントを追加する

R を多く使うと思われる場合、または多くのユーザーが同時にスクリプトを実行する場合は、スタート パッド サービスに割り当てられるワーカー アカウントの数を増やすことができます。 詳細については、「SQL Server Machine Learning Services での外部スクリプトの同時実行のスケーリング」を参照してください。

外部スクリプトの実行用にサーバーを最適化する

SQL Server のセットアップの既定の設定は、データベース エンジンによってサポートされているさまざまなサービスに対してサーバーのバランスを最適化することを目的としています。サービスには、抽出、変換、および読み込み (ETL) プロセス、レポート、監査、SQL Server データを使うアプリケーションなどが含まれます。 そのため、既定の設定では、場合によっては機械学習用のリソースが制限または調整されることがあります (特に、メモリを大量に使用する操作の場合)。

機械学習ジョブの優先順位とリソースが適切に設定されるようにするには、SQL Server Resource Governorを使用して外部リソース プールを構成することをお勧めします。 また、SQL Server データベース エンジンに割り当てられるメモリの量を変更したり、SQL Server Launchpad サービスで実行するアカウントの数を増やしたりすることもできます。

Standard Edition を使用していて、リソース ガバナーがない場合は、動的管理ビュー (DMV) と拡張イベント、および Windows イベントの監視を使用して、R で使用されるサーバー リソースを管理できます。

追加の R パッケージをインストールする

SQL Server 用に作成する R ソリューションでは、基本 R 関数、SQL Server と共にインストールされた専用パッケージの関数、SQL Server によってインストールされたオープンソースの R のバージョンと互換性のあるサードパーティ製の R パッケージを呼び出すことができます。

SQL Server で使用するパッケージは、インスタンスによって使用される既定のライブラリにインストールする必要があります。 コンピューター上に R の別のインストールがある場合、またはパッケージをユーザー ライブラリにインストールした場合は、これらのパッケージを T-SQL から使用できません。

R パッケージのインストールと管理のプロセスは、SQL Server 2016 と SQL Server 2017 で異なります。 SQL Server 2016 では、データベース管理者は、ユーザーが必要とする R パッケージをインストールする必要があります。 SQL Server 2017 では、ユーザー グループを設定してデータベース レベルでパッケージを共有するか、ユーザーが独自のパッケージをインストールできるようにデータベース ロールを構成します。 詳細については、「R ツールを使用してパッケージをインストールする」をご覧ください。