SPSS Modelerで作ったストリームをSPSS Collaboration and Deployment Services(略初CADS)でスケジュール実行をしてみます。
- テスト環境
- SPSS modeler 18.4
- SPSS CADS 8.4
- Windows Server 2019
CADSジョブのスケジュール実行のアーキテクチャー
CADSのジョブのスケジュール実行は以下のようなアーキテクチャーで動きます。
- CADSのスケジューラがCADSJOBを起動する。
- CADSJOB内のストリームをCADSのレポジトリから取得して、Modeler Serverで実行する
- ストリームがModeler Serverで動き、Modeler Server上の入力ファイルを読み、処理結果を出力ファイルに出力する
以下の点に注意が必要です。
- ジョブ実行をするためにはModeler Serverが必須です
- 入出力データはModeler Serverから参照できる場所にある必要があります
- ストリームはCADSレポジトリにあらかじめ登録が必要です
解説動画(8分)
ストリーム解説
ここでは「過去センサー故障データ」をつかって、センサーデータから故障を予測するストリームを作りました。
このモデルに「前日センサーデータ」を入力して、「故障予測結果」を出力するというストリームになっています。
「過去センサー故障データ」には各装置の過去のセンサーデータと故障したかどうかのフラグ「故障」が含まれています。
「前日センサーデータ」には各装置の前日分のセンサーデータが含まれています。「故障」フラグは含まれていません。
「故障予測結果」には、「前日センサーデータ」の情報に加えて「$R-故障」という故障の予測結果と「$RC-故障」というその予測の確信度が含まれています。前日のセンサーのデータからこの予測結果が得られました。
このストリームで、「前日センサーデータ」によって「故障予測結果」を得ることができます。これをスコアリングといいます。ですので、このスコアリングを毎日行えば、毎日故障の可能性のある装置を把握できますので、故障前にエンジニアが点検したり、部品交換をして、計画外停止を最小限に抑えることができます。
ストリームのCADSレポジトリへの保存
ストリームをスケジュール実行するためには、まず、CADSレポジトリにこのストリームを保存します。
「ファイル」メニューの「格納」_「ストリームとして格納」を選びます。
リポジトリ―サーバーへの接続を行います。CASDレポジトリのURLを入力します。
CADSレポジトリ内の保存先のフォルダを選びファイル名を指定して「保管」します。
CADSジョブの作成
CADSレポジトリに保存したストリームをスケジュール実行するには、CADSジョブを作成する必要があります。
CADSの管理クライアントであるDeployment ManagerでCADSレポジトリに接続し、先ほど保存したストリームを確認します。
新規にCADSジョブを作成します。
ジョブを保存するフォルダで右クリックして、「新規」_「ジョブ」を選びます。
ジョブ作成のエディターが開きます。このキャンパスに「装置故障.str」をドラッグアンドドロップします。
「装置故障.str」のジョブステップを設定します。
「全般」タブ設定
「全般」タブでModelerServerとコンテンツリポジトリ―サーバー(CADSレポジトリ)を選択し、またそれぞれの「ログイン」には各サーバーに接続するためのユーザーとパスワードを登録した「資格情報」を選択します。
また、「オプションの実行」の「枝の実行」で実行したいターミナルノードを選びます。ここでは「故障予測結果.csv」だけを実行したいので、「故障予測結果.csv」を選びます。
ストリーム内の「故障予測結果.csv」だけを実行するという意味になります。
データファイルの確認
「データファイル」タブに移動して、パスとファイル名を確認します。ストリームから自動的に抽出されますが、CADSでの実行時には違うパスを使う場合にはここで指定します。なおストリームはModeler Serverで実行されるので、このパスはCADSサーバーではなく、Modeler Server上のパスになります。この例だと「C:data\IOT\装置CADS」の「前日センサーデータ.csv」を読み取って、「故障予想結果.csv」に出力することになります。
ジョブステップ通知設定
ジョブステップの失敗通知で、ストリームが失敗した場合にメールを送る設定をします。
「通知」タブに移動して、「ジョブステップの失敗通知の受信者」の「更新」ボタンをクリックします。
ジョブ実行
スケジュール実行を設定する前に、ジョブが正しく動作するかを確認してみます。
正常実行
ジョブ実行前に入力ファイル「前日センサーデータ.csv」が配置されているか確認します。
「ジョブ履歴を表示」します。
「ジョブ履歴」のビューが開きます。ステータスが「成功」になっていればOKです。
「故障予想結果.csv」が「C:data\IOT\装置CADS」に出力されています。
異常実行
入力ファイルのファイル名を変えて、わざとエラーを起こしてみます。
ジョブを実行します。ジョブを選択した状態でツールバーがから実行することもできます。
以下のようなメールが届きます。URLを開きます。
ブラウザが開き、Deployment Portalのログインページに飛びますので、ユーザーとパスワードを入力し、ログインします。
Deployement Managerでも同じようにエラーのログを確認できます。
「ジョブ履歴」ビューに「失敗」ログが記録されます。「装置故障.str_step」のログを右クリックして、ログを開きます。
CADSジョブのスケジュール作成
ジョブを選び、右クリックで「新しいスケジュール」_「時間ベース」を選びます。
ジョブを実行するユーザーを「参照」で選びます。
開始時刻を設定し、反復パターンに「日単位」を選び、「終了」します。ここでは毎日「16:00」に実行するというスケジュール設定をしました。
ジョブを選び、右クリックで「スケジュールの表示」を選びます。
毎日16:00までに「前日センサーデータ.csv」を「C:data\IOT\装置CADS」においておけば、「故障予想結果.csv」が出力される設定ができました。
スケジュールが実行されると「前回の実行」「前回の実行ステータス」が更新されます。
詳細な履歴は「ジョブ履歴」のビューで確認します。
参考
ブログで学ぶSPSS_Modeler #10- 異常検知の自動化!CADSの設定を動画でご紹介 | IBM ソリューション ブログ