SAS Enterprise Guide(EG)で簡単にPythonなどオープンソース・コードを実行できる方法を紹介します。
1.オープンソースコード実行用タスク(OST)の概要
2.事前設定
3.EGでの使用方法
4.AMOでの使用方法
1.オープンソースコード実行用タスク(OST)の概要
SAS Enterprise Guide(EG)は直感的なユーザインタフェース上で、マウスの簡単操作で、透過的にデータにアクセスし、様々な分析用タスクを活用し、データの準備から加工・変換、集計・分析、レポート作成に至る一連の作業をグラフィカルなフロー図として描き、実行することができるツールです。
一方、多くの組織ではPython, Rなど様々なオープンソースのスキルを持つデータサイエンティストが混在することが多く、こうしたオープンソース(OS)とのコラボレーションも必要になってきています。従来、EGとPythonなどOSと連携する際には、データでのやりとりが必要でした。例えば、EGで作成したデータをエクスポートし、OSユーザに渡して処理してもらうか、その逆か、になります。
都度このようにデータをやりとりするには手間と時間がかかりますし、データやPythonコードなどの管理も課題となります。こうした課題を解決する手段の一つとして、カスタムタスクを活用することができます。
カスタムタスク:EGには、数多くのタスク(データ準備用タスク、分析用タスク、など)が実装されています。このタスクは顧客ニーズに応じてカスタムで作成し、活用することができるようになっています。SASのサポートサイトからカスタムタスクを作成するためのテンプレートをダウンロードし、使用することができるようになっています。カスタムタスクの作成方法の詳細に関しては、次回のブログでご紹介します。
オープンソースコード実行用タスク(OST):OSTはOpenSourceTaskの略で、EGカスタムタスクのテンプレートに基づいて開発されています。OSTを使用することで、EG上で簡単にPythonコードを実行することができ、GUIベースの簡単マウス操作でPythonコードを再利用し、EG上で、標準実装のタスクとOSTを活用し、連携してアナリティクス作業を完結することができます。これによって、様々異なる分析スキル(GUIユーザー、SAS言語ユーザー、OS言語ユーザー)を連携し、有効活用することが可能となります。また、この分析処理は自動化することも可能です。
次にPythonコード実行用のOSTの使用方法を紹介します。EGのバージョンは8.2を使用したものです。
2.事前設定
・Python環境の確認
まずSAS9サーバ側にPython環境がインストールされていることを確認してください。Pythonの環境がない場合は、PythonまたAnacondaなどPythonのruntimeをインストールする必要があります。
・SAS9サーバーの設定
SAS9のSMC(SAS Management Console)を起動し、以下の画面を開きます。
「Environment Management」>「Server Manager」> 「SASApp」>「SASApp Logical Workspace Server」>「SASApp - Workspace」を右クリックし、「Properties」をクリックし
以下の設定でXCMDの実行を許可します。
「Options」タブ >「Advanced Options」>「Launch Properties」で「Allow XCMD」をチェックし、「OK」をクリックします。
設定を有効するにはシステムのObject Spawnerのサービスを再起動する必要があります。
・OSTパッケージの取り込み
OSTパッケージをダウンロードし、展開したCustomフォルダをEG(またAMO)のインストール先(以下画面ショットのロケーション)にコピーします。そのほか、臨時ファイル保存と作業用フォルダC:/Customを作成し、準備作業が完了です。
これで、OSTが使用できる状態になります。
3.EG上の使用方法
まず EGを起動し、処理対象データを選択します。今回はSASHELPライブラリ内にある「CLASS」を選びます。データを選択した状態で、タスクリストのSAS Custom Task配下のOpenSourceTaskをダブルクリックします。
OST画面が表示されます。「データ詳細」と「Python コード」の二つのタブがあります。
・「データ詳細」タブでは変数の名前、タイプ、長さなどの情報を確認できます。
・「Python コード」タブには以下のような設定があります。
「出力テーブル」では、出力テーブルの名前を指定できます。今回は“TEST”にします。「PATHONパス指定」ではPython PATHを指定することができます。今回は空欄にします「使用方法」では、Python初期変数と使用例を紹介します。入力データと出力データがdataframe形式でそれぞれ「dm_inputdf」と「dm_scoreddf」として定義され、変数としてそのまま使用可能です。画面右側では「PYTHONコード」欄でコードを編集することができます。
一つの例として、以下の正規化処理用のPythonコードを入力し、[OK]をクリックします。
import numpy as np data=dm_inputdf max_min_scaler = lambda x : (x-np.min(x))/(np.max(x)-np.min(x)) data[['Height_N']] = data[['Height']].apply(max_min_scaler) dm_scoreddf=data |
すると、Pythonコードが実行され、結果が表示され、確認することができます。
最後に、プロセスフローに戻ると、結果がOSTの後に出力されていることがわかります。
以上がOSTの基本的な使い方です。
同様にSAS Add-in for Microsoft Office (AMO)上でもEGで作成したOSTを活用することができます。以下にそのAMOはMS Office 製品(ExcelやWordなど)上で、直感的なユーザインタフェースで、SASの分析タスクを実行し、その結果ををExcelシートに出力することができるツールです。以下に、AMO(Excel上)でのOST使用方法を紹介します。
4.AMO上の使用方法
まずExcelを起動します。処理対象のデータとしては、ExcelのテーブルやSAS9サーバ上のデータを選択できますが、Excelシート上にあるデータを選択し、メニューバーのSASボターンをクリックし、タスクを選択します。
そして、入力データとしてExcelデータを指定します。
タスクのSAS Custom Task配下のOpenSourceTaskをクリックすると、EGのOSTと同じ画面が表示されます。EGと同じ操作方法でOSTを使用することができます。
「OK」クリックするとPythonコードが実行され、その結果がExcelシートに表示されます。
以上のように、EG/AMOで、OSTを使用することでPythonコードベースの処理とのシームレスな連携が可能になり、異なるスキル横断的なコラボレーションが促進され、分析作業の効率化が図られます。次回はOSTの開発方法を紹介します。