Amazon Web Services ブログ

AWS IoT SiteWise を使用して産業機器データの状況を把握し、インサイトを作り出す (Part 2)

この記事は Jan Borch によって書かれた Create insights by contextualizing industrial equipment data using AWS IoT SiteWise (Part 2) を翻訳したものです。

はじめに

このブログシリーズの Part 1 AWS IoT SiteWise を使用して産業機器データの状況を把握し、インサイトを作り出す (Part 1)では、AWS IoT SiteWise でのアセットモデリングとリアルタイム分析に焦点を当てました。AWS IoT SiteWise Monitor にダッシュボードを作成して、炉の加熱サイクルの概要をリアルタイムに把握しました。しかし、Furnace1 の異常な加熱サイクルの根本原因を見つけるには、より詳細な分析が必要であると結論付けました。Part 2 では、お客様が AWS IoT SiteWise コールド階層ストレージ機能を使用して、未加工のデータ、集計されたデータ、およびメタデータを AWS IoT Analytics にエクスポートしてさらに分析する方法を示します。

AWS IoT SiteWise コールド階層ストレージと AWS IoT Analytics エクスポートの有効化

AWS IoT SiteWise コールド階層ストレージ機能により、下流の AWS 分析サービスで履歴データを簡単に利用できます。さらに、履歴データを Amazon S3 にエクスポートすることで、AWS IoT SiteWise のストレージコストも削減されます。お客様は、データ保持期間を設定することにより、データがS3にエクスポートされる前に、時系列データに最適化された AWS IoT SiteWise にデータを保持する期間を自由に定義できます。

AWS IoT SiteWise コールド階層ストレージを有効化する

AWS IoT SiteWise S3 エクスポートを有効にするには、 AWS IoT SiteWise コンソールを開き、ナビゲーションペインで設定 (Settings)ストレージ (Storage)編集 (Edit)を選択し、コールド階層ストレージを有効化 (Enable cold tier storage) を選択します。

同じ AWS リージョン内の既存の S3 バケットの場所 (S3 bucket location) を入力し、

有効な AWS IoT Analytics データストア (Enabled AWS IoT Analytics data store) をオンにし、データストア名 (Data store name) として iotsitewise と入力して保存 (Save) を選択します。

このウォークスルーでは、AWS IoT Analytics を使用してデータをクエリし、Amazon QuickSight で視覚化します。
AWS IoT SiteWise S3 エクスポート機能は、モデルが変更されると、アセットモデルから asset_metadata S3 プレフィックスにアセットプロパティに関する情報をエクスポートします。S3 エクスポートのステータスが有効になると、S3 バケットにはアセットごとの Line delimited JSON ファイルが出力されます。未加工データは 6 時間ごとにエクスポートされ、raw S3 プレフィックスに保存されます。エクスポート形式と場所の詳細については、「Cold 階層に保存されたデータのファイルパスとスキーマ」を参照してください。

未加工データ分析のための AWS IoT Analytics データセットを作成する

これで、AWS IoT SiteWise でエクスポートされたデータを AWS IoT Analytics で分析できるようになります。AWS IoT Analytics コンソールを開き、ナビゲーションメニューでデータセット (Datasets) を選択し、データセットを作成 (Create dataset)SQL を作成 (Create SQL) の順に選択します。これにより、データセットの作成手順を説明するウィザードが開きます。最初の画面でデータセットに名前を付け、AWS IoT SiteWise コールド階層エクスポートウィザードで作成した iotsitewise データストアを選択します。

次へ (Next) を選択して SQL クエリの作成 (Auther SQL query) ダイアログを開き、以下のサンプルクエリをコピーして貼り付けます。

このクエリでは、高度な Athena SQL 機能をいくつか使用し、AWS IoT Analytics データセットクエリを使用してさまざまな AWS IoT Analytics データストアのデータを結合する方法も示しました。この分析では、すべてのアセットの今月の Last Holding Cycle Time メトリクスを照会します。これを実現するために、クエリは特定の月でフィルタリングされた未加工データストアから開始されます。さらに asset_metadata データストアを結合して、アセット名などのプロパティメタデータを取得します。最後に、 asset_metadata を再び結合しますが、今回は asset ID でグループ化を行います。この最後の JOIN ステートメントは、対応する AWS IoT SiteWise アセットの静的属性をすべて取得し、結果行に追加します。このデータは、最後のステップでディメンションデータとして使用するため、分析のためには非常に重要です。


SELECT 
    from_unixtime(data.timeinseconds + (data.offsetinnanos / 1000000000)) ts, 
    metadata.assetname,  metadata.assetpropertyname, metadata.assetpropertydatatype, 
    data.doublevalue,  
    latesValue['Location'] as Location , latesValue['Manufacturer'] as Manufacturer, 
    latesValue['YearOfConstruction'] as YearOfConstruction, latesValue['Setpoint'] as Setpoint
FROM iotsitewise.raw  as data
-- Join the meta data table 
INNER JOIN iotsitewise.asset_metadata as metadata
ON data.seriesid = metadata.timeseriesid
-- Join sub query that retrieves all asset attributes and latest values    
LEFT JOIN (
  SELECT assetid, map_agg(assetpropertyname, latestvalue) latesValue from (
    SELECT assetid,  assetpropertyid, assetpropertyname,
            coalesce (
            max_by(data.stringvalue, data.timeinseconds),
            max_by(cast(data.integervalue as VARCHAR), data.timeinseconds),
            max_by(cast(data.doublevalue as  VARCHAR), data.timeinseconds)
            ) latestvalue
    FROM iotsitewise.raw data  
    INNER JOIN iotsitewise.asset_metadata metadata
    ON data.seriesid = metadata.timeseriesid
    GROUP BY assetid, assetpropertyid, assetpropertyname) 
  GROUP BY assetid) as dim
ON metadata.assetid = dim.assetid
WHERE data.startyear = year(current_date)
AND data.startmonth = month(current_date)
AND metadata.assetpropertyname = 'Last Holding Cycle Time'

クエリをテストするには、テストクエリ (Test query) を選択します。 クエリに構文エラーが含まれていない場合は、結果のプレビュー (Result preview) セクションにデータのプレビューが表示されます。

ステップ 3 ~ 6 の残りをデフォルト値のままにして、次へ (Next) を選択し、最後の確認ステップ 7 でデータセットを作成 (Create dataset) を選択します。

すべてが正しく設定されているかを検証するには、新しく作成したデータセットに移動します。

今すぐ実行 (Run now) を選択して、コンテンツ (Content) タブに成功 (Succeeded) と表示されて結果が使用可能となるまで待ちます。結果のリンクを選択すると、コンソールにクエリ結果のプレビューが表示されます。

結果には、Last Holding Cycle Time メトリクスが時間別に表示されます。このクエリでは、アセット名やモデル名、アセット属性値などの AWS IoT SiteWise モデル情報も各行に追加されました。このようなフラット化されたデータ行により、BI ツールでのデータの分析が容易になります。次のステップでは、Amazon QuickSight を使用して IoT Analytics データセットを分析します。

Amazon QuickSight で結果を分析する

最後のステップとして、Amazon QuickSight でデータを分析します。Amazon QuickSight には、AWS IoT Analytics 用の組み込みコネクタが付属しているため、データを簡単に視覚化できます。
Amazon QuickSight コンソールを開いて新しい分析 (New Analytics) を選択し、データセットの選択を求められたら、新しいデータセット (New Dataset) を選択して新規データソースと接続します。AWS IoT Analytics を選択し、前のステップで作成した holdingcycletimereport という AWS IoT Analytics データセットを選択します。データソースを作成するには、データソースの作成 (Create Data Source) を選択します。

視覚化する (Visualize) を選択し、Amazon QuickSight ビジュアルタイプを使用してデータセットを表示します。

この特定のユースケースでは、製造元と製造年が保持時間にどのように影響するかを理解する必要があります。Amazon QuickSight ヒートマップは、このデータを視覚化するのに適した選択肢です。

作成したビューを見ると、1999 年に Furnace Corp によって製造された炉はサイクルタイムが最も長く (88 秒以上)、優先的に設備更新する必要があることが明確にわかります。

まとめ

これで、AWS IoT SiteWise と AWS IoT Analytics を使用して産業機器データの状況を把握する方法に関する 2 部構成のブログシリーズを終わります。私たちは、未加工の時系列データを AWS IoT SiteWise に取り込むことから始めました。次に、AWS IoT SiteWise アセットモデルを使用して、時系列データを生成した産業機器に関するコンテキストを追加しました。最後に、AWS IoT Analytics でデータセットクエリを使用して、時系列データポイントとコンテキストデータを Amazon QuickSight などの BI ツールで簡単に利用できる、フラット化された形式に結合する方法を示しました。

著者について

Jan Borch は、アマゾン ウェブ サービス (AWS) の IoT プリンシパルスペシャリストソリューションアーキテクトであり、過去 10 年間、お客様が AWS で業界最高のクラウドソリューションを設計および構築するのを支援してきました。過去 5 年間、彼はクラウドと IoT の交点に焦点を当て、AWS IoT Prototyping チームを率いて革新的なコネクテッド IoT ソリューションをヨーロッパ、中東、アフリカの AWS のお客様と共同開発しました。最近では、戦略的な IoT ワークロードを AWS 上で稼働するお客様に焦点を移しました。

この記事はソリューションアーキテクトの岡本晋太朗が翻訳しました。