SAS Enterprise GuideのカスタムタスクでPythonコード実行

0

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の開発方法を紹介します。

Share

About Author


エンタープライズ・アナリティクス・プラットフォーム・グループ

企業のミッションクリティカル基盤、国家スーパーコンピュータなど大規模な分析プラットフォームの研究開発に長年従事し、シリコンバレーで数年間データベースのコア設計・開発の経験もある。現在カスタマーアドバイザリーとして、企業向けに新しいテクノロジー、SASアナリティクス・ソリューションの提案により、顧客にデジタルトランスフォーメーション(DX)の課題解決、価値創出を中心に活動している。大規模分析基盤アーキテクチャ、オープンソースの活用、ディープラーニングについての豊富な知見、経験を持つ。

Leave A Reply

Back to Top