T-SQL (CREATE EXTERNAL LIBRARY) を使用して SQL Server に R パッケージをインストールする

適用対象: SQL Server 2017 (14.x) のみ

この記事では、機械学習が有効になっている SQL Server のインスタンスに、新しい Python パッケージをインストールする方法について説明します。 複数のアプローチから選択できます。 R に慣れていないサーバー管理者については、T-SQL を使用することをお勧めします。

CREATE EXTERNAL LIBRARY ステートメントを使用すると、R または Python コードを直接実行せずに、パッケージまたはパッケージ セットを、インスタンスまたは特定のデータベースに追加できます。 ただし、この方法を使用するには、パッケージの準備と追加のデータベース権限が必要です。

  • すべてのパッケージが、インターネットからオンデマンドでダウンロードするのではなく、ローカルの zip 形式ファイルとして使用できる必要があります。

  • すべての依存関係が名前とバージョンで特定され、ZIP ファイルに含まれている必要があります。 ダウンストリーム パッケージの依存関係を含め、必要なパッケージが使用できない場合、ステートメントは失敗します。

  • 自分が db_owner であるか、データベース ロールに CREATE EXTERNAL LIBRARY 権限がある必要があります。 詳細については、「CREATE EXTERNAL LIBRARY」を参照してください。

アーカイブ形式でパッケージをダウンロードする

1 つのパッケージをインストールする場合は、そのパッケージを zip 形式でダウンロードします。

パッケージの依存関係により、複数のパッケージをインストールする方が一般的です。 パッケージに他のパッケージが必要な場合は、インストール中にすべてのパッケージが相互にアクセスできることを確認する必要があります。 miniCRAN を使用してローカル リポジトリを作成し、パッケージの完全なコレクションをアセンブルすること、また igraph を使用して、パッケージの依存関係を分析することをお勧めします。 間違ったバージョンのパッケージをインストールしたり、パッケージの依存関係を省略したりすると、CREATE EXTERNAL LIBRARY ステートメントが失敗することがあります。

ファイルをローカル フォルダーにコピーする

すべてのパッケージを含む zip 形式のファイルを、サーバー上のローカル フォルダーにコピーします。 サーバー上のファイル システムへのアクセス権がない場合は、バイナリ形式を使用して、完全なパッケージを変数として渡すこともできます。 詳細については、「CREATE EXTERNAL LIBRARY」を参照してください。

ステートメントを実行してパッケージをアップロードする

管理特権を持つアカウントを使用して、クエリ ウィンドウを開きます。

T-SQL ステートメント CREATE EXTERNAL LIBRARY を実行して、zip 形式のパッケージ コレクションをデータベースにアップロードします。

たとえば、次のステートメントは、randomForest パッケージを含む miniCRAN リポジトリとその依存関係を、パッケージ ソースとして指定します。

CREATE EXTERNAL LIBRARY [randomForest]
FROM (CONTENT = 'C:\Temp\Rpackages\randomForest_4.6-12.zip')
WITH (LANGUAGE = 'R');

任意の名前を使用することはできません。外部ライブラリ名には、パッケージの読み込み時または呼び出し時に使用する名前を指定する必要があります。

パッケージのインストールを確認する

ライブラリが正常に作成されている場合、ストアド プロシージャ内でパッケージを呼び出すと、SQL Server でパッケージを実行できます。

EXEC sp_execute_external_script
@language =N'R',
@script=N'library(randomForest)'

関連項目