R言語でSAS ViyaのAI機能活用 第一回「CASサーバーとSWATパッケージ」

0

本シリーズの記事について

オープンソースとの統合性は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サーバーとのデータ通信と簡単なデータ準備について紹介します。

Share

About Author


SAS Viya Business Promotion & OSS Innovation推進室 Analytical Consultant

半導体業界でデータ分析による異常予兆検知システムを開発した経験を持つ。現在、業務課題解決ためにAIプラットフォーム上にオープンソースなどを活用したアナリティカルソリューションの構築や提案を担当している。さらに、アナリティクスハッカソンなどのイベントの企画に従事している。

Leave A Reply

Back to Top