IoTデータをAmazon QuickSightを使って可視化する

記事タイトルとURLをコピーする

CR課の喜多です。今回は前回の続きで、S3に保存したIoTデータをAmazon QuickSightを使って参照してみました。

はじめに

前回、AWS IoT Coreの紹介の際、S3にParquet形式などでデータレイクとして保存、Amazon Athenaを利用してAmazon Quicksightにてデータ分析を行う、というユースケースを紹介させていただきました。
前回はユースケースの紹介のみでしたので、今回は実際にAmazon QuickSightでの表示を行ってみました。

システム構成

前回からの変更点として、Amazon S3とAmazon Athenaの間にAWS Glue Data Catalogを挟んでいます。
AWS Glue Data Catalogで作成したテーブルを利用して、Amazon Athenaのデータセットを作成し、アクセスします。

構築

事前にAWS IoT Coreにモノを作成済の前提でスタートします。

Amazon Data Firehoseの作成

Amazon Data Firehoseから「Firehoseストリームを作成」を選択

ソースはDirect PUT、送信先はAmazon S3を選択、事前に格納用のS3は作成しておいてください

格納用のS3バケットを選択し、バッファを指定。ここでは60秒周期の取り込みとしています

「Firehoseストリームを作成」を選択するとストリームが作成されます

IoTメッセージルールの追加

AWS IoTのメッセージのルーティングから「ルールを作成」を選択

ルール名を入力し「次へ」を選択

SQLステートメントを入力、from以下は登録済のモノのMQTTトピックを入力

ルールアクションにData Firehoseストリームを選択し、先ほど作成したストリームを選択。区切り文字は改行、IAMロールは新しく作成しました

ルールが作成できました。ルール作成後、S3にデータが蓄積されていきます

AWS Glue Data Catalogの作成

AWS GlueのData Catalogから「Crawlers」を選択

「Create crawler」を選択

クローラーの名前を入力

画面真ん中右の「Add a data source」を選択

データが蓄積されているS3バケットを指定

IAMロールを指定、ここでは「Create new IAM role」をクリックし、ロールを新規作成しました

「Add database」を選択しデータベースを新規作成

データベース名を入力して「Create database」を選択

改めて作成したデータベース名を選択、「Next」選択後、最終確認画面で「Create crawler」を選択

クローラーが作成できました。一度「Run crawler」を実施

クローラーの動作もできました

Data CatalogのTablesを選択、先ほどのクローラーで自動でテーブルが作成されています。ここでTable dataをクリック

Table dataをクリックでAmazon AthenaでのTable data取得結果が表示されます。Amazon Athenaで正常に結果取得することができています

Amazon QuickSightダッシュボードの作成

事前にAmazon QuickSightへのサインアップは済ませています。

まずはデータが格納されているS3へのアクセス権を追加します。「QuickSightを管理」から「セキュリティとアクセス許可」を選択し、「管理」を選択

Amazon S3にチェックを入れ、データが格納されているS3バケットにチェックし「完了」を選択

続いて、データセットを追加します。「新しいデータセット」を選択

Athenaを選択し、データソース名に「AWSDataCatalog」を選択、データソースを作成します

先ほど作成したデータベースとデータが入ったS3を選択

SPICEとはAmazon QuickSight のインメモリエンジンです。読み込み速度に影響します。ここではデフォルトのSPICEへのインポートを選択のまま「Visualize」を選択

このままグラフを作成しましょう。折れ線グラフを選択

X軸にtimestamp、値に取得したデータを設定、グラフタイトルも変更しておきます

最後に「公開」を選択

完成です

おわりに

今回作成したダッシュボードは、機器データの折れ線グラフ1つだけ、という味気ないものですが、取り込んだデータを簡単にダッシュボード化できるのがおわかりいただけたかと思います。
本記事が、IoTサービスの導入や学習を検討されている方々のお役に立てば幸いです。