SPSS CADSのDeployment Portalでパラメーターを指定してデータを抽出する

ModelerストリームをSPSS Collaboration and Deployment Services（略初CADS）のDeployment Portalからパラメーター指定をして実行し、データを抽出します。Modelerを使わずにWebブラウザだけでストリームを実行し、データを抽出することが可能です。

* テスト環境
    * SPSS modeler 18.4
    * SPSS CADS 8.4
    * Windows Server 2019

# Deployment Portalからジョブ実行のアーキテクチャー
Deployment Portalからのジョブ実行は以下のようなアーキテクチャーで動きます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/5fe36c66-1081-c99b-2787-52a8cc80216d.png)

# 解説動画(6分)

<iframe width="560" height="315" src="https://www.youtube.com/embed/I4ihbEMYk68" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

# 使用するCADSジョブとストリームの確認

ここでは、以下の記事でつくった、センサーデータから故障を予測するストリームとそれを実行するCADSジョブを使います。

SPSS CADSでジョブのスケジュール実行を行う - Qiita 

https://qiita.com/kawada2017/items/3a9b651ecb9509f1d254


## パラメーターの追加
このストリームは「前日センサーデータ」を入力して、「故障予測結果」を出力するというストリームになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/9f8486d5-e0a8-328a-1422-b07e9f8908d1.png)



「故障予測結果.csv」ノードでは、「前日センサーデータ」の情報に加えて「＄R-故障」という故障の予測結果と「＄RC-故障」というその予測の確信度が得られますが、今回はこの「工場」をパラメーター化して、必要な工場だけを指定できるようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/f65c5102-95e7-3c12-2167-f1b87eb0955f.png)

メニューの「ツール」_「ストリームのプロパティー」＿「パラメータ」を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/5115470b-4c15-cba0-de8b-17065e1551d9.png)

「工場」という名前のパラメーターを作り、「ストレージ」を「文字列、「値」にデフォルト値として「工場A」を入れて、「OK」で閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/1b9609b9-836f-977d-cbb0-66df3aa5ce4e.png)

「条件抽出」ノードを「前日センサーデータ.csv」と「故障」モデルの間に追加し、「工場 = '$P-工場'」の式を入力します（式ビルダーを使うと簡単に入力できます）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/61b04409-df35-3ea5-7737-7e110ae81862.png)

「故障予測結果.csv」を右クリックして、プレビューします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/825ccfde-1119-6b6b-ebfd-cc2180b6ffc3.png)

パラメーターが聞かれます。ここではデフォルトの「工場A」のままでOKします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/09062ad5-ca8a-3990-7a15-c0bda3be9692.png)

データが「工場A」に絞り込まれました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/8b12b4ed-d2d2-e1a1-d032-a1448bf8706b.png)

## CADSへの保存

これをCADSに保存しなおします。
「ファイル」メニューの「格納」＿「ストリームとして格納」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/938f1a15-83f8-f2b0-efe7-6a4e84f09d3f.png)

保存先を確認したうえで、上書きで「保管」します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/f0384de3-c012-a292-3cde-dc49db4bfa60.png)


# CADSジョブの修正
CADSレポジトリに保存したストリーム「装置故障予測.str」を実行するCADSジョブを「装置故障予測」を開きます。

## ジョブ変数の設定
キャンバスの何もないところをクリックし、編集対象をジョブにします。
「ジョブ変数」タブをクリックし、「追加」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/e46a05ea-a2ba-20f6-7769-d60111c6dd31.png)

変数名として「Factory」、デフォルト値として「工場A」を入力し、OKします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/c5b7330b-181f-299f-a900-3e4324a21975.png)

以下のように入力できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/ff216d7f-355e-b349-1c61-a78b96f33c84.png)



## パラメータの設定
「装置故障予測.str」のステップをクリックして、編集対象にします。
「パラメータ」タブをクリックし、「値」欄で「\\$」を入力するとジョブ変数がでてきますので先ほど作った「\${JobVariable.Factory}」を選びます（それ以外にもデフォルトのジョブ変数がみえます）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/8a4a7748-f487-2099-b2e0-33751728d871.png)



## データファイルの設定
次に出力先をModeler ServerのCドライブから、ネットワーク・フォルダに変更します。これは、ユーザーからアクセスを可能にするためです。

「データファイル」タブをクリックし、「故障予測結果.csv」の「場所」欄で「…」ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/ddf6f9da-852b-0221-ae85-966567a9bd36.png)

ネットワーク・フォルダのパスを指定し、さらに「\\$」を入力して、ジョブ変数の中から「\${Job.UserName}」を選びます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/125365c2-e25a-776f-f661-66d741d093b9.png)

「OK」で閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/538707bd-598f-78f5-45de-6ed519f69ff3.png)

「保存」ボタンで保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/fb97014d-829b-507c-e94e-c742bbb197ea.png)

これでCADSジョブの修正は終わりました。



# Deployment Portalでの実行
Webブラウザを開きDeployment Portalから実行してみます。

「ログイン名」と「パスワード」を入力しログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/b830d9d0-af96-32f6-a940-cf030c7393e5.png)

「コンテンツ・リポジトリー」タブを開き、修正したCADSジョブ「装置故障予測」をクリックします（「装置故障予測.str」ではありません）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/b73fcf92-dc42-191e-9fcd-21cc023c7fe3.png)


ジョブ変数が入力可能になりますので、ここでは「工場B」を入力し、「送信」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/8d1f5ba4-2901-cfee-db06-b4c7234d4068.png)

「ステータス」が「実行中」となりますので、少し待って「更新」ボタンを押し、「成功」になるまで繰り返します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/3ec6b165-43cf-c4f3-2970-595a684ecda9.png)

「成功」しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/7ec763aa-fb7e-fe9b-b1eb-c109e7f42ea0.png)


# 結果の確認

ネット―ワーク・フォルダを開いて、自分の名前のフォルダを開くと確かに「工場B」に絞られた結果が出力されていることがわかりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/d620b49b-c70f-36b0-4e9c-7d620046a478.png)


# 参考
#### IBM SPSS CADSを用いて業務ユーザーに必要なデータを即時提供する（動画デモ）

https://dw1.s81c.com/caas-storage/5Khi7XGf/_videos/IBM%20SPSS%20CADS%E3%82%92%E7%94%A8%E3%81%84%E3%81%A6%E6%A5%AD%E5%8B%99%E3%83%A6%E3%83%BC%E3%82%B5%E3%82%99%E3%83%BC%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%86%E3%82%99%E3%83%BC%E3%82%BF%E3%82%92%E5%8D%B3%E6%99%82%E6%8F%90%E4%BE%9B%E3%81%99%E3%82%8B%E3%80%82.mp4?_ga=2.66128174.1425666680.1635126978-88827153.1631584810