SQL Server 用の R カスタム ランタイムをインストールする
適用対象: SQL Server 2019 (15.x)
SQL Server で外部 R スクリプトを実行するための R カスタム ランタイムをインストールする方法について説明します。
- Windows
- Ubuntu Linux
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server (SLES) バージョン 12
カスタム ランタイムは、機械学習スクリプトを実行することができ、SQL Server 言語拡張機能を使用します。
SQL Server Machine Learning Services と共にインストールされる既定のランタイム バージョンではなく、独自のバージョンの R ランタイムを SQL Server と共に使用します。
SQL Server 2022 (16.x) 以降、R、Python、Java のランタイムは SQL セットアップでインストールされなくなりました。 代わりに、ご自分のお好きな R のカスタム ランタイムとパッケージをインストールしてください。 詳細については、Windows への SQL Server 2022 Machine Learning Services (Python と R) のインストールに関する説明、または「Linux に SQL Server Machine Learning Services (Python と R) をインストールする」を参照してください。
前提条件
R カスタム ランタイムをインストールする前に、次のものをインストールします。
- 既存の SQL Server インスタンスを使用する場合は、SQL Server 2019 の累積的な更新プログラム (CU) 3 以降をインストールします。
言語拡張をインストールする
Note
SQL Server 2019 に Machine Learning Services がインストールされている場合は、言語拡張機能が既にインストールされているため、この手順は省略できます。
以下の手順のようにして、SQL Server 言語拡張機能をインストールします。これは、R カスタム ランタイムに使用されます。
SQL Server 2019 のセットアップ ウィザードを開始します。
[インストール] タブで、 [SQL Server の新規スタンドアロン インストールを実行するか、既存のインストールに機能を追加します] を選択します。
[機能の選択] ページで、次のオプションを選択します。
データベース エンジン サービス
SQL Server で言語拡張を使用するには、データベース エンジンのインスタンスをインストールする必要があります。 新規または既存のインスタンスのいずれかを使用できます。
Machine Learning Services および言語の拡張
[Machine Learning Services および言語の拡張] を選択します。 後でカスタム R ランタイムをインストールするので、R は選択しないでください。
[インストールの準備完了] ページで、以下が選択されていることを確認した後、 [インストール] を選択します。
- データベース エンジン サービス
- Machine Learning Services および言語の拡張
セットアップが完了した後、確認のメッセージが表示されたらコンピューターを再起動します。
重要
言語拡張機能を使用して SQL Server 2019 の新規インスタンスをインストールする場合は、次の手順に進む前に、累積的な更新プログラム (CU) 3 以降をインストールしてください。
R のインストール
カスタム ランタイムとして使用する R のバージョンをダウンロードしてインストールします。 R バージョン 3.3 以降がサポートされています。
R バージョン 3.3 以降をダウンロードします。
R のセットアップを実行します。
R がインストールされたパスを記録しておきます。 たとえば、この記事では
C:\Program Files\R\R-4.0.3
です。
システム環境変数を更新する
以下の手順のようにして、PATH システム環境変数を変更します。
Windows の検索ボックスで「システム環境変数の編集」を検索して開きます。
[詳細設定] の [環境変数] を選択します。
PATH システム環境変数を変更します。
PATH を選択して、 [編集] をクリックします。
[新規] を選択して、R インストール パスの
\bin\x64
フォルダーへのパスを追加します。 たとえば、「C:\Program Files\R\R-4.0.3\bin\x64
」のように入力します。
Rcpp パッケージをインストールする
以下の手順のようにして、Rcpp パッケージをインストールします。
"管理者特権" でのコマンド プロンプトを開始します (管理者として実行)。
コマンド プロンプトから R を起動します。 R インストール パスのフォルダーで
\bin\R.exe
を実行します。 たとえば、「C:\Program Files\R\R-4.0.3\bin\R.exe
」のように入力します。"C:\Program Files\R\R-4.0.3\bin\R.exe"
次のスクリプトを実行して、R インストール パスの
\library
フォルダーに Rcpp パッケージをインストールします。 たとえば、「C:\Program Files\R\R-4.0.3\library
」のように入力します。install.packages("Rcpp", lib="C:\\Program Files\\R\\R-4.0.3\\library");
R フォルダーへのアクセス権を付与する
Note
R を既定の場所である C:\Program Files\R\R-version
(C:\Program Files\R\R-4.0.3
など) にインストールした場合は、この手順を省略できます。
新しい "管理者特権" でのコマンド プロンプトから次の icacls コマンドを実行して、読み取りと実行のアクセス権を、SQL Server Launchpad サービスのユーザー名と SID S-1-15-2-1 (ALL APPLICATION PACKAGES) に付与します。 Launchpad サービスのユーザー名は、NT Service\MSSQLLAUNCHPAD$INSTANCENAME
という形式です。INSTANCENAME
は、SQL Server のインスタンス名です。
そのコマンドでは、指定したディレクトリ パスの下にあるすべてのファイルとフォルダーへのアクセス権が再帰的に許可されます。
SQL Server Launchpad サービスのユーザー名に、R インストール パスへのアクセス許可を付与します。 たとえば、「
C:\Program Files\R\R-4.0.3
」のように入力します。icacls "C:\Program Files\R\R-4.0.3" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
名前付きインスタンスの場合、SQL01 というインスタンスに対するコマンドは
icacls "C:\Program Files\R\R-4.0.3" /grant "NT Service\MSSQLLAUNCHPAD$SQL01":(OI)(CI)RX /T
になります。SID S-1-15-2-1 に、R インストール パスへのアクセス許可を付与します。 たとえば、「
C:\Program Files\R\R-4.0.3
」のように入力します。icacls "C:\Program Files\R\R-4.0.3" /grant *S-1-15-2-1:(OI)(CI)RX /T
上記のコマンドを実行すると、コンピューター SID S-1-15-2-1 にアクセス許可が付与されます。これは、英語版の Windows における ALL APPLICATION PACKAGES と同等です。 または、英語版の Windows で
icacls "C:\Program Files\R\R-4.0.3" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T
を使用することもできます。
SQL Server Launchpad を再起動する
SQL Server Launchpad サービスを再起動するには、次の手順に従います。
[SQL Server 構成マネージャー] を開きます。
[SQL Server サービス] で [SQL Server Launchpad (MSSQLSERVER)] を右クリックして、[再起動] を選択します。 名前付きインスタンスを使用している場合は、 (MSSQLSERVER) の代わりにインスタンス名が表示されます。
言語拡張機能を登録する
次の手順のようにして、R カスタム ランタイムに使用される R 言語拡張機能をダウンロードして登録します。
SQL Server 言語拡張機能の GitHub リポジトリから R-lang-extension-windows-release.zip ファイルをダウンロードします。
開発環境やテスト環境では、代わりにデバッグ バージョン (R-lang-extension-windows-debug.zip) を使用できます。 デバッグ バージョンでは、エラーを調査するための詳細なログ情報が提供されます。これは運用環境では推奨されません。
Azure Data Studio を使用してお使いの SQL Server インスタンスに接続し、次の T-SQL コマンドを実行して、CREATE EXTERNAL LANGUAGE で R 言語拡張機能を登録します。
このステートメントのパスを変更して、ダウンロードした言語拡張機能の zip ファイルの場所 (R-lang-extension-windows-release.zip) と R インストールの場所 (
C:\\Program Files\\R\\R-4.0.3
) を反映します。CREATE EXTERNAL LANGUAGE [myR] FROM (CONTENT = N'C:\path\to\R-lang-extension-windows-release.zip', FILE_NAME = 'libRExtension.dll', ENVIRONMENT_VARIABLES = N'{"R_HOME": "C:\\Program Files\\R\\R-4.0.3"}'); GO
R 言語拡張機能を使用するデータベースごとに、このステートメントを実行します。
Note
R は予約語であり、新しい外部言語の名前として使用することはできません。 別の名前を使用してください。 たとえば、上記のステートメントでは myR が使用されています。
前提条件
R カスタム ランタイムをインストールする前に、次のものをインストールします。
Linux 用 SQL Server 2019 をインストールします。 SQL Server は、Red Hat Enterprise Linux (RHEL)、SUSE Linux Enterprise Server (SLES) バージョン 12、および Ubuntu にインストールできます。 詳細については、SQL Server on Linux のインストール ガイダンスを参照してください。
SQL Server 2019 の累積的な更新プログラム (CU) 3 以降にアップグレードします。 次の手順に従います。
累積的な更新プログラムのリポジトリを構成します。 詳細については、「SQL Server on Linux のインストールとアップグレードを行うためのリポジトリを構成する」を参照してください。
mssql-server パッケージを、最新の累積更新プログラムに更新します。 詳細については、「SQL Server on Linux のインストール ガイド」の「SQL Server の更新またはアップグレード」を参照してください。
言語拡張をインストールする
Note
SQL Server 2019 に Machine Learning Services がインストールされている場合は、言語拡張機能用の mssql-server-extensibility パッケージが既にインストールされているため、この手順は省略できます。
次のコマンドを実行して、R カスタム ランタイムに使用される Ubuntu Linux に SQL Server 言語拡張機能をインストールします。
可能であれば、次のコマンドを実行して、インストールの前にシステム上のパッケージを更新しておきます。
# Install as root or sudo sudo apt-get update
次のコマンドを使用して mssql-server-extensibility をインストールします。
# Install as root or sudo sudo apt-get install mssql-server-extensibility
R のインストール
Machine Learning Services がインストールされている場合は、R が既に
/opt/microsoft/ropen/3.5.2/lib64/R
にインストールされています。 このパスを R_HOME として引き続き使用する場合は、この手順を省略できます。R の別のランタイムを使用する場合は、新しいバージョンのインストールを続ける前に、まず
microsoft-r-open-mro
を削除する必要があります。sudo apt remove microsoft-r-open-mro-3.5.2
Ubuntu 用の R (3.3 以降) をインストールします。 既定では、R は /usr/lib/R にインストールされます。 このパスは R_HOME です。 R を別の場所にインストールする場合は、R_HOME としてそのパスを記録しておきます。
Ubuntu 用の指示の例を次に示します。 お使いの R のバージョンに応じて、次のリポジトリの URL を変更します。
export DEBIAN_FRONTEND=noninteractive sudo apt-get update sudo apt-get --no-install-recommends -y install curl zip unzip apt-transport-https libstdc++6 # Add R CRAN repository. This repository works for R 4.0.x. # sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran40/' sudo apt-get update # Install R runtime. # sudo apt-get -y install r-base-core
R のカスタム インストール
Note
既定の場所 /usr/lib/R に R がインストールされている場合は、このセクションをスキップし、「Rcpp パッケージをインストールする」セクションに進んでかまいません。
環境変数を更新する
最初に、mssql-launchpadd サービスを編集して、R_HOME 環境変数を /etc/systemd/system/mssql-launchpadd.service.d/override.conf
ファイルに追加します
systemctl を使用してファイルを開きます
sudo systemctl edit mssql-launchpadd
開かれた
/etc/systemd/system/mssql-launchpadd.service.d/override.conf
ファイルに、次のテキストを挿入します。 R_HOME の値を、カスタム R のインストール パスに設定します。[Service] Environment="R_HOME=<path to R>"
保存して閉じます。
次に、libR.so
を読み込めることを確認します。
/etc/ld.so.conf.d にカスタム custom-r.conf ファイルを作成します。
sudo vi /etc/ld.so.conf.d/custom-r.conf
開かれたファイルで、カスタム R のインストールから libR.so へのパスを追加します。
<path to the R lib>
新しいファイルを保存し、エディターを閉じます。
ldconfig
を実行し、次のコマンドを実行することで libR.so を読み込めることを確認し、すべての依存ライブラリが見つかることを確認します。sudo ldconfig ldd <path to the R lib>/libR.so
カスタム R インストール フォルダーへのアクセスを許可する
/var/opt/mssql/mssql.conf
ファイルの extensibility セクションにある datadirectories
オプションを、カスタム R のインストールに設定します。
sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to R>
mssql-launchpadd サービスを再起動する
次のコマンドを実行して、mssql-launchpadd を再起動します。
sudo systemctl restart mssql-launchpadd
Rcpp パッケージをインストールする
以下の手順のようにして、Rcpp パッケージをインストールします。
シェルから R を起動します。
sudo ${R_HOME}/bin/R
次のスクリプトを実行して、${R_HOME}\library フォルダーに Rcpp パッケージをインストールします。
install.packages("Rcpp", lib = "${R_HOME}/library");
言語拡張機能を登録する
次の手順のようにして、R カスタム ランタイムに使用される R 言語拡張機能をダウンロードして登録します。
SQL Server 言語拡張機能の GitHub リポジトリから R-lang-extension-linux-release.zip ファイルをダウンロードします。
開発環境やテスト環境では、代わりにデバッグ バージョン (R-lang-extension-linux-debug.zip) を使用できます。 デバッグ バージョンでは、エラーを調査するための詳細なログ情報が提供されます。これは運用環境では推奨されません。
Azure Data Studio を使用してお使いの SQL Server インスタンスに接続し、次の T-SQL コマンドを実行して、CREATE EXTERNAL LANGUAGE で R 言語拡張機能を登録します。
このステートメントのパスを変更して、ダウンロードした言語拡張機能の zip ファイル (R-lang-extension-linux-release.zip) の場所を反映します。
CREATE EXTERNAL LANGUAGE [myR] FROM (CONTENT = N'/path/to/R-lang-extension-linux-release.zip', FILE_NAME = 'libRExtension.so.1.1'); GO
R 言語拡張機能を使用するデータベースごとに、このステートメントを実行します。
Note
R は予約語であり、新しい外部言語の名前として使用することはできません。 別の名前を使用してください。 たとえば、上記のステートメントでは myR が使用されています。
前提条件
R カスタム ランタイムをインストールする前に、次のものをインストールします。
Linux 用 SQL Server 2019 をインストールします。 SQL Server は、Red Hat Enterprise Linux (RHEL)、SUSE Linux Enterprise Server (SLES) バージョン 12、および Ubuntu にインストールできます。 詳細については、SQL Server on Linux のインストール ガイダンスを参照してください。
SQL Server 2019 の累積的な更新プログラム (CU) 3 以降にアップグレードします。 次の手順に従います。
累積的な更新プログラムのリポジトリを構成します。 詳細については、「SQL Server on Linux のインストールとアップグレードを行うためのリポジトリを構成する」を参照してください。
mssql-server パッケージを、最新の累積更新プログラムに更新します。 詳細については、「SQL Server on Linux のインストール ガイド」の「SQL Server の更新またはアップグレード」を参照してください。
- RExtension には、GLIBCXX_3.4.20 が必要です。 Red Hat Enterprise Linux (RHEL) に libstdc++.so.6 のバージョンをインストールすることで、これが提供されることを確認してください。
言語拡張をインストールする
Note
SQL Server 2019 に Machine Learning Services がインストールされている場合は、言語拡張機能用の mssql-server-extensibility パッケージが既にインストールされているため、この手順は省略できます。
次のコマンドを実行して、R カスタム ランタイムに使用される Red Hat Enterprise Linux (RHEL) に SQL Server 言語拡張機能をインストールします。
# Install as root or sudo
sudo yum install mssql-server-extensibility
R のインストール
Machine Learning Services がインストールされている場合は、R が既に
/opt/microsoft/ropen/3.5.2/lib64/R
にインストールされています。 このパスを R_HOME として引き続き使用する場合は、この手順を省略できます。R の別のランタイムを使用する場合は、新しいバージョンのインストールを続ける前に、まず
microsoft-r-open-mro
を削除する必要があります。sudo yum erase microsoft-r-open-mro-3.5.2
Red Hat Enterprise Linux (RHEL) 用の R (3.3 以降) をインストールします。 既定では、R は /usr/lib64/R にインストールされます。 このパスは R_HOME です。 R を別の場所にインストールする場合は、R_HOME としてそのパスを記録しておきます。
sudo yum install -y R
R のカスタム インストール
Note
既定の場所 /usr/lib/R に R がインストールされている場合は、このセクションをスキップし、「Rcpp パッケージをインストールする」セクションに進んでかまいません。
環境変数を更新する
最初に、mssql-launchpadd サービスを編集して、R_HOME 環境変数を /etc/systemd/system/mssql-launchpadd.service.d/override.conf
ファイルに追加します
systemctl を使用してファイルを開きます
sudo systemctl edit mssql-launchpadd
開かれた
/etc/systemd/system/mssql-launchpadd.service.d/override.conf
ファイルに、次のテキストを挿入します。 R_HOME の値を、カスタム R のインストール パスに設定します。[Service] Environment="R_HOME=<path to R>"
保存して閉じます。
次に、libR.so
を読み込めることを確認します。
/etc/ld.so.conf.d にカスタム custom-r.conf ファイルを作成します。
sudo vi /etc/ld.so.conf.d/custom-r.conf
開かれたファイルで、カスタム R のインストールから libR.so へのパスを追加します。
<path to the R lib>
新しいファイルを保存し、エディターを閉じます。
ldconfig
を実行し、次のコマンドを実行することで libR.so を読み込めることを確認し、すべての依存ライブラリが見つかることを確認します。sudo ldconfig ldd <path to the R lib>/libR.so
カスタム R インストール フォルダーへのアクセスを許可する
/var/opt/mssql/mssql.conf
ファイルの extensibility セクションにある datadirectories
オプションを、カスタム R のインストールに設定します。
sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to R>
mssql-launchpadd サービスを再起動する
次のコマンドを実行して、mssql-launchpadd を再起動します。
sudo systemctl restart mssql-launchpadd
Rcpp パッケージをインストールする
以下の手順のようにして、Rcpp パッケージをインストールします。
シェルから R を起動します。
sudo ${R_HOME}/bin/R
次のスクリプトを実行して、${R_HOME}\library フォルダーに Rcpp パッケージをインストールします。
install.packages("Rcpp", lib = "${R_HOME}/library");
言語拡張機能を登録する
次の手順のようにして、R カスタム ランタイムに使用される R 言語拡張機能をダウンロードして登録します。
SQL Server 言語拡張機能の GitHub リポジトリから R-lang-extension-linux-release.zip ファイルをダウンロードします。
開発環境やテスト環境では、代わりにデバッグ バージョン (R-lang-extension-linux-debug.zip) を使用できます。 デバッグ バージョンでは、エラーを調査するための詳細なログ情報が提供されます。これは運用環境では推奨されません。
Azure Data Studio を使用してお使いの SQL Server インスタンスに接続し、次の T-SQL コマンドを実行して、CREATE EXTERNAL LANGUAGE で R 言語拡張機能を登録します。
このステートメントのパスを変更して、ダウンロードした言語拡張機能の zip ファイル (R-lang-extension-linux-release.zip) の場所を反映します。
CREATE EXTERNAL LANGUAGE [myR] FROM (CONTENT = N'/path/to/R-lang-extension-linux-release.zip', FILE_NAME = 'libRExtension.so.1.1'); GO
R 言語拡張機能を使用するデータベースごとに、このステートメントを実行します。
Note
R は予約語であり、新しい外部言語の名前として使用することはできません。 別の名前を使用してください。 たとえば、上記のステートメントでは myR が使用されています。
前提条件
R カスタム ランタイムをインストールする前に、次のものをインストールします。
Linux 用 SQL Server 2019 をインストールします。 SQL Server は、Red Hat Enterprise Linux (RHEL)、SUSE Linux Enterprise Server (SLES) バージョン 12、および Ubuntu にインストールできます。 詳細については、SQL Server on Linux のインストール ガイダンスを参照してください。
SQL Server 2019 の累積的な更新プログラム (CU) 3 以降にアップグレードします。 次の手順に従います。
累積的な更新プログラムのリポジトリを構成します。 詳細については、「SQL Server on Linux のインストールとアップグレードを行うためのリポジトリを構成する」を参照してください。
mssql-server パッケージを、最新の累積更新プログラムに更新します。 詳細については、「SQL Server on Linux のインストール ガイド」の「SQL Server の更新またはアップグレード」を参照してください。
言語拡張をインストールする
Note
SQL Server 2019 に Machine Learning Services がインストールされている場合は、言語拡張機能用の mssql-server-extensibility パッケージが既にインストールされているため、この手順は省略できます。
次のコマンドを実行して、R カスタム ランタイムに使用される SUSE Linux Enterprise Server (SLES) に SQL Server 言語拡張機能をインストールします。
# Install as root or sudo
sudo zypper install mssql-server-extensibility
R のインストール
Machine Learning Services がインストールされている場合は、R が既に
/opt/microsoft/ropen/3.5.2/lib64/R
にインストールされています。 このパスを R_HOME として引き続き使用する場合は、この手順を省略できます。R の別のランタイムを使用する場合は、新しいバージョンのインストールを続ける前に、まず
microsoft-r-open-mro
を削除する必要があります。sudo zypper remove microsoft-r-open-mro-3.4.4
SUSE Linux Enterprise Server (SLES) 用に R (3.3 以降) をインストールします。 既定では、R は /usr/lib64/R にインストールされます。 このパスは R_HOME です。 R を別の場所にインストールする場合は、R_HOME としてそのパスを記録しておきます。
次の手順に従って R をインストールしてください。
sudo zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/R:/patched/openSUSE_12.3/ R-patched sudo zypper --gpg-auto-import-keys ref sudo zypper install R-core-libs R-core R-core-doc R-patched
このパッケージが不要な場合は、R-tcltk-3.6.1 の警告を無視してもかまいません。
gcc-c++ をインストールする
SUSE Linux Enterprise Server (SLES) に gcc-c++ をインストールします。 これは、後でインストールする Rcpp に使用されます。
sudo zypper install gcc-c++
R のカスタム インストール
Note
既定の場所 /usr/lib/R に R がインストールされている場合は、このセクションをスキップし、「Rcpp パッケージをインストールする」セクションに進んでかまいません。
環境変数を更新する
最初に、mssql-launchpadd サービスを編集して、R_HOME 環境変数を /etc/systemd/system/mssql-launchpadd.service.d/override.conf
ファイルに追加します
systemctl を使用してファイルを開きます
sudo systemctl edit mssql-launchpadd
開かれた
/etc/systemd/system/mssql-launchpadd.service.d/override.conf
ファイルに、次のテキストを挿入します。 R_HOME の値を、カスタム R のインストール パスに設定します。[Service] Environment="R_HOME=<path to R>"
保存して閉じます。
次に、libR.so
を読み込めることを確認します。
/etc/ld.so.conf.d にカスタム custom-r.conf ファイルを作成します。
sudo vi /etc/ld.so.conf.d/custom-r.conf
開かれたファイルで、カスタム R のインストールから libR.so へのパスを追加します。
<path to the R lib>
新しいファイルを保存し、エディターを閉じます。
ldconfig
を実行し、次のコマンドを実行することで libR.so を読み込めることを確認し、すべての依存ライブラリが見つかることを確認します。sudo ldconfig ldd <path to the R lib>/libR.so
カスタム R インストール フォルダーへのアクセスを許可する
/var/opt/mssql/mssql.conf
ファイルの extensibility セクションにある datadirectories
オプションを、カスタム R のインストールに設定します。
sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to R>
mssql-launchpadd サービスを再起動する
次のコマンドを実行して、mssql-launchpadd を再起動します。
sudo systemctl restart mssql-launchpadd
Rcpp パッケージをインストールする
以下の手順のようにして、Rcpp パッケージをインストールします。
シェルから R を起動します。
sudo ${R_HOME}/bin/R
次のスクリプトを実行して、${R_HOME}\library フォルダーに Rcpp パッケージをインストールします。
install.packages("Rcpp", lib = "${R_HOME}/library");
言語拡張機能を登録する
次の手順のようにして、R カスタム ランタイムに使用される R 言語拡張機能をダウンロードして登録します。
SQL Server 言語拡張機能の GitHub リポジトリから R-lang-extension-linux-release.zip ファイルをダウンロードします。
開発環境やテスト環境では、代わりにデバッグ バージョン (R-lang-extension-linux-debug.zip) を使用できます。 デバッグ バージョンでは、エラーを調査するための詳細なログ情報が提供されます。これは運用環境では推奨されません。
Azure Data Studio を使用してお使いの SQL Server インスタンスに接続し、次の T-SQL コマンドを実行して、CREATE EXTERNAL LANGUAGE で R 言語拡張機能を登録します。
このステートメントのパスを変更して、ダウンロードした言語拡張機能の zip ファイル (R-lang-extension-linux-release.zip) の場所を反映します。
CREATE EXTERNAL LANGUAGE [myR] FROM (CONTENT = N'/path/to/R-lang-extension-linux-release.zip', FILE_NAME = 'libRExtension.so.1.1'); GO
R 言語拡張機能を使用するデータベースごとに、このステートメントを実行します。
Note
R は予約語であり、新しい外部言語の名前として使用することはできません。 別の名前を使用してください。 たとえば、上記のステートメントでは myR が使用されています。
外部スクリプトを有効にする
R 外部スクリプトは、ストアド プロシージャ sp_execute_external_script を使用して実行できます。
外部スクリプトを有効にするには、Azure Data Studio を使用して次のステートメントを実行します。
sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;
インストールの確認
R カスタム ランタイムのインストールと機能を確認するには、次の SQL スクリプトを使用します。 下のサンプル スクリプトでは、myR
が言語名として使用されています。既定の言語名 R
はカスタム ランタイムとしては指定できないためです。
EXEC sp_execute_external_script
@language =N'myR',
@script=N'
print(R.home());
print(file.path(R.home("bin"), "R"));
print(R.version);
print("Hello RExtension!");'
既知の問題
SQL Server Machine Learning Services の一部として提供されている R ランタイムを使用している場合は、言語拡張を登録するときに R_HOME
を C:\Program Files\Microsoft SQL Server\MSSQL15.<INSTANCE_NAME>\R_SERVICES
に設定することにより、sp_execute_external スクリプトで外部カスタム R スクリプトを実行すると、次のエラーが発生する可能性があります。
"エラー: メモリが不足しています (上限に達しましたか?) "
この問題を解決するには、次の手順を実行します。
- 固定サイズのオブジェクトの数 (
cons cells
) を示す環境変数R_NSIZE
を、適切な値 (200000
など) に設定します。 - スタート パッド サービスを再起動し、スクリプトの実行を再試行します。
既知の問題
libstdc++.so.6 が正しいバージョンではない場合、次のエラーが表示されます。
Exthost: Load extension failed /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/mssql_satellite/externallanguagessandboxpath/libRExtension.so.1.1) (Exthost: 拡張機能の読み込みに失敗しました /lib64/libstdc++.so.6: (/home/mssql_satellite/externallanguagessandboxpath/libRExtension.so.1.1 で必要な) バージョン 'GLIBCXX_3.4.20' が見つかりませんでした)