こんにちは。Kouです。
最近IoTの投稿が増えてきましたが、ご覧頂いていますでしょうか。今回の記事は、異常検知というIoTでよくあるトピックに着目したいと思います。異常検知と言えば、機械学習の手法により、複雑なデータの前処理とか、予測モデルの学習などのイメージが多いではないでしょうか。実は、Alibaba Cloud IoTプラットフォームのLink Analyticsクラウドサービスを活用すると、今までの煩雑な作業が楽になれます。
さて、今回はAlibaba CloudのIoTプラットフォームにて、異常検知の便利な機能を皆さんに紹介させて頂きたいと思います。
Link Analyticsとは
Link Analyticsとも呼ばれるIoTデータ分析は、Alibaba CloudがIoT開発者に提供するデバイスインテリジェンス分析サービスです。また、デバイスデータ管理、ETL、分析、可視化などの沢山の機能を網羅しています。
今回の記事では、PM2.5空気品質計測器を実例として、PM2.5の測定のストリーミングデータで実施したいと思います。
事前準備
まず、IoTプラットフォームのコンソールから、空気品質計測器のプロダクトと関連するデバイスを作成します。プロダクトとデバイスの名前はそれぞれLADemoとDevice001にします。
次は、検知された異常データをデータベースに保存する為、既存のRDSもしなければ、RDS(MySQL)を作成します。作成できたら、下図のように、「データ管理」から「外部データソース」を新規追加します。こちらにLA_RDSという名前のデータソースを追加しました。
異常検知
「ストリームデータ分析」から「タスク」を新規作成します。 タスクのタイプからコンポーネントオーケストレーションを選択するようにすると、下図のコンポーネント可視化ツースが起動されます。
まず、importコンポーネントに、プロダクトとデバイスを選定します。そして、input parameterのところに、測定したいデータのPM2.5濃度を選択します。
次は、データフィルタリング コンポーネントで、PM2.5濃度に対して、フィルタリングしたいデータ範囲を設定します。データ範囲は、デバイスの実際の観測範囲によりますが、こちらには、一応0以上、500までの範囲を指定しました。
さらに、異常検知コンポーネントで、実際の検知ルールを設定します。つまり、どういた条件で異常値として検知されるかを設定します。後ほどのテストをシンプルにする為に、こちらには3 つの連続したデータがしきい値 300を超えた場合は異常値として検知するように設定しました。
最後、exportコンポーネントで、検知されたデータの保存先(外部RDS)を指定します。こちらには、先ほど作成したLA_RDSを指定し、事前に作成したテーブル「abnomal」を選択しました。
動作確認
下図のように、バーチャルデバイスを起動して、動作確認を行いましょう。具体的には,「Debug Virtural Device」から「PM25Value」に毎回それぞれ350、360、370を入力してプッシュします。
そして、MySQL Workbenchを起動して、下図のSQL構文で実行すると、上記の異常データが出てくることがわかりました。
最後
いかがでしたでしょうか
上述のように、IoT Link Analytics内臓のコンポネートを活用することだけで、ソースコードを書かずに、ストリーミングデータ分析を一通りに実施することができました。Alibaba Cloud IoTをお試してみる方は、ぜひ体験してみてください。