SQL Server R Services を初めて使う人のための Tips 集 (環境構築・パッケージ管理編)
Microsoft Japan Data Platform Tech Sales Team
倉重 秀昭 / Hideaki Kurashige
こちらの記事でもご紹介させていただいている通り、SQL Server 2016 では 新たに SQL Server R Services という R の実行基盤が加わりました。
この SQL Server R Services について、マイクロソフト米国本社の Customer Advisory Team ( 通称 CAT ) が 、彼らの Blog 上で SQL Server R Services を利用するにあたっての Tips をまとめています。今回はその中から特に役に立つと思われる項目を取り上げ、付加情報も加えて詳しく解説していきたいと思います。
(1) SQL Server R Services が正しくインストールされている事を確認する方法
SQL Server R Services を実際に業務で使う場合、環境構築担当者と実際にRを使って分析するデータ分析担当が別々というケースがよくあります。
このように環境構築担当と分析担当が異なる場合、ごくまれに環境構築の担当者はインストールが上手くいったと認識しているにもかかわらず、実際には環境構築が上手くいっておらず、分析担当の方が R を使おうとすると上手く動かないという事があります。
この様な事を防ぐために、環境構築の担当者は、以下の T-SQL を実行する事で SQL Server R Services が正しくインストールされているかを確認する事ができます。
■ SQL Server R Services のインストール正常性を確認するための T-SQL
|
SQL Server R Services が正しくインストールされていれば、結果として1が帰ってきます。
返り値がそれ以外の場合には、正しくインストールされていないという事になります。その場合は、トラブルシュートが必要になりますが、トラブルシュートには以下のページが参考になります。
Known Issues for SQL Server R Services
(2) インストール済みのパッケージを確認する方法
R を使って分析や開発を行う場合、CRAN 等で公開されているパッケージを利用する事が多いと思いますが
以下のスクリプトを実行する事で、既にインストールされている パッケージを確認する事が可能です。
【方法1】SQL Server Data Tools から T-SQL を使って確認する方法
|
【方法2】R Studio などの IDE から R を使って確認する方法
|
SQL Server R Services をインストールした直後の状態では、以下のパッケージがインストールされています。
base | foreign | mgcv | RevoRsrConnector | stats4 |
boot | graphics | nlme | RevoScaleR | survival |
class | grDevices | nnet | RevoTreeView | tcltk |
cluster | grid | parallel | RevoUtils | tools |
codetools | iterators | pkgXMLBuilder | RevoUtilsMath | translations |
KernSmooth | RevoIOQ | rpart | utils | |
datasets | lattice | revoIpe | RUnit | XML |
doParallel | MASS | RevoMods | spatial | utils |
doRSR | Matrix | RevoPemaR | splines | |
foreach | methods | RevoRpeConnector | stats |
各パッケージの詳細は以下のページから確認することが可能です。
※リンク先ページは、Microsoft R Application Network(MRAN)という弊社の公式ページで、Microsoft R に関する様々な情報を掲載したポータルサイトです。
https://mran.microsoft.com/rro/installed/
(3) インターネット接続の無い環境でパッケージをインストールする方法
SQL Server R Services を用いて実業務で分析等を行う場合、セキュリティーの観点から サーバーをインターネットに接続させない事も多いと思います。
インターネットに接続していない環境でパッケージを追加する場合は、インターネットに接続された別のマシンからパッケージのバイナリファイルをダウンロードし、SQL Server がインストールされたマシンにコピーしてインストールを行います。
ただ、あるパッケージをインストールしようとすると、そのパッケージが依存する別のパッケージのインストールも必要になる事がほとんどだと思います。手作業で依存するパッケージを調べ、そのパッケージを一つ一つダウンロードしてインストールする事も可能ですが、非常に手間がかかってしまいます。この様な場合には miniCRAN パッケージを利用すると、効率よくパッケージをインストールすることが可能になります( miniCRAN は、パッケージ間の依存関係を取得・可視化したり、ローカル上にパッケージのリポジトリを作成するための機能を提供しているパッケージです)。
次に miniCRAN を使い、インターネット接続の無い環境での追加パッケージのインストール方法について、簡単に紹介してみたいと思います。
miniCRAN を用いた、オフライン環境へのパッケージ追加方法は大まかに以下のような流れになります。
手順1 インターネットに接続可能な R 実行環境と IDE がインストールされた端末から、以下の R コマンドを実行して、インストール対象のパッケージと依存するパッケージをダウンロードして端末上にパッケージのリポジトリを作成します。
|
(※1) 以下の様なエラーメッセージが表示された場合には、install.packages(“stringi”) を実行してstringi パッケージを追加でインストールします。
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) :‘stringi’ という名前のパッケージはありません |
(※2) パッケージファイルを一括ダウンロードする方法として、download.packages 関数を使う方法もありますが、この場合はリポジトリは作成されずに単純にパッケージファイルがダウンロードされるだけです。そのため SQL Server R Services にパッケージをインストールする際には、依存するパッケージを一つ一つ指定してインストールする必要があります。一方 makeRepo を使用するとパッケージリポジトリが作成されますので、パッケージをインストールする際に、install.package 関数の引数に dependencies=TRUE と記載するだけで、関連するパッケージも自動的にインストールされるようになります。
手順2 手順1で作成したリポジトリをディレクトリ(今回の例では C:\miniCRAN ディレクトリ)ごと、 DVD-R・USB メモリ等の媒体を使って、SQL Server R Services サーバにコピーします。
手順3 SQL Server R Services サーバーで R の IDE を起動して、以下のRスクリプトを実行して パッケージをインストールします。
|
今回は、SQLServer R Services を初めて使う人のための Tips 集として、環境構築やパッケージ管理に関する事項について紹介いたしました。
次回はデータの可視化についての Tips をご紹介する予定です。