本シリーズの記事について
オープンソースとの統合性はSAS Viyaの一つの重要な製品理念です。SAS言語やGUIだけではなく、R言語やPythonなどのオープンソース言語でも、SAS ViyaのAI&アナリティクス機能を活用することが可能になっています。このシリーズの記事は、R言語からSAS Viyaの機能を活用して、データ準備からモデルの実装までの一連のアナリティクス・ライフサイクル開発をサンプルコードの形で紹介していきます。
CASサーバーとSWATパッケージとは
コードの内容を紹介する前に、まずCASサーバーとSWATパッケージに関して、簡単に紹介します。CASはSAS Cloud Analytic Serviceの略称です。SAS Viyaプラットフォームの分析エンジンで、様々な種類のデータソースからデータを読み込み、メモリーにロードし、マルチスレッドかつ分散並列でハイパフォーマンスな分析処理を実行します。現在のCASサーバーは3.4.0以降のバージョンのPythonと3.1.0以降のバージョンのRをサポートしています。
オープンソース言語のクライアントからCASサーバーのインタフェースを使用するために、SASからSWAT(SAS Scripting Wrapper for Analytics Transfer)というパッケージをGithubに公開し、提供しています。RとPythonにそれぞれ対応しているバージョンはありますが、本記事のサンプルコードではR用の SWATをメインで使用します。SWATパッケージを通してCASサーバーと通信し、インタフェースを直接利用することができます。データサイエンティストはSWATパッケージを使用し、RやPythonからSAS Viyaの豊富なAI&アナリティクス機能を活用し、様々なデータ分析処理を行ったり、機械学習や深層学習のモデルを作成したりすることができます。
環境の準備
R言語用SWATパッケージを利用するために必要なRの環境情報は以下の通りです。
・64-bit版のLinux或いは64-bit版のWindows
・バージョン3.1.0以降の64-bit版のR
・Rパッケージ「dplyr」、「httr」と「jsonlite」がインストールされていること
筆者が使用している環境は64-bit版のWindows 10と64-bit版のR 3.5.3となり、IDEはRstudioです。
パッケージのインストール
SWATをインストールするために、標準的なRインストール用関数install.package()を使用します。SWATはGithub上のリリースリストからダウンロードできます。
ダウンロードした後、下記のようなコマンドでSWATをインストールします。
R CMD INSTALL R-swat-X.X.X-platform.tar.gz |
X.X.Xはバージョン番号であり、platformは使用するプラットフォームと指しています。
或いはRの中から下記のコマンドのようにURLで直接インストールするのもできます。
install.packages('https://github.com/sassoftware/R-swat/releases/download/vX.X.X/R-swat-X.X.X-platform.tar.gz', repos=NULL, type='file') |
この部分の詳細はR-swatのGitHubのリンクを参考にしてください。
SAS Viyaと一回目の通信をやってみよう
全ての準備作業が完了したら、問題がないことを確認するために、Rから下記のコードを実行してみます。
library("swat") conn <- CAS(server, port, username, password, protocol = "http") cas.builtins.serverStatus(conn) cas.session.endSession(conn) |
CAS()はCASサーバーに接続し、セッションを作るための関数です。関数に渡す引数にあるserverはSAS Viya(CASサーバー)のIPアドレス或いはホスト名であり、portはCASサーバーに使用されているポート(デフォルトは5570か8777)です。usernameとpasswordはSAS Viyaにログインする時に使うidとパスワードです。
実行後、下記のようなメッセージが表示されれば、CASサーバーとの接続に成功したことが分かります。これでSAS Viya上でのデータ分析やモデリングが開始できます。
NOTE: Connecting to CAS and generating CAS action functions for loaded action sets... NOTE: To generate the functions with signatures (for tab completion), set options(cas.gen.function.sig=TRUE) |
cas.builtins.serverStatus()はCASサーバーと接続したセッションの情報を確認する関数です。実行すると、OSのバージョンやライセンスの期限などの情報が表示されます。
cas.session.endSession()はCASとの接続を終了させる関数です。実行すると、接続中のセッションは切られます。
以上は、SAS ViyaのCASサーバーとSWATパッケージの紹介と接続方法の説明の全部です。次回の記事では、サンプルコードを使って、CASサーバーとのデータ通信と簡単なデータ準備について紹介します。