search
LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

【AWS】QuickSightの便利機能を検証してみた

この記事は NTTテクノクロス Advent Calendar 2021 22日目の記事です。

こんにちは。NTTテクノクロスの木村です。
本記事では Amazon QuickSight について、ちょっとしたノウハウや検証したことを共有します。

概要

Amazon QuickSightとは、様々なデータの分析及びビジュアライズが容易にできるAWSのBIサービスです。
多様な機能が提供されており、今回は以下3つの機能を使用してみたいと思います。

  • パラメータ(変数):オリジナルの変数を作成し、フィルター条件や計算フィールドに使用できる
  • カスタムアクション:ビジュアルにURL呼び出しやワンクリックフィルタ等のアクションを指定できる
  • カスタムSQL:データに対してクエリを発行できる

構成

構成は以下の通りです。
S3に可視化するデータを格納し、Athenaでテーブル定義して、QuickSightへ連携します。
アドカレ20211222_木村有希_architecture.PNG

可視化するデータ

家族が観葉植物好きな関係で、普段より室内の温度・湿度・光量をセンサで測定しています。
せっかく取得したデータなので、可視化してみたい思います。

date,room_temp,room_hum,room_light
2021-11-11 0:00:04,22.62,51.19,0
2021-11-11 1:00:06,22.35,50.7,0
2021-11-11 2:00:09,22.21,51.12,0
2021-11-11 3:00:04,21.98,48.87,0
2021-11-11 4:00:04,21.79,47.38,0
 :
カラム 内容
date 日付
room_temp 温度
room_hum 湿度
room_light 光量

手順

1. S3にデータを格納

任意のS3バケットに可視化データ(sensor.csv)をアップロードしておきます。

2. Athenaにテーブル作成

Athenaのクエリエディタで以下のクエリを実行し、可視化データ用のデータベース、テーブルを作成します。
今回はデータベース名「qs」、テーブル名「sensor」で作成しました。
「S3 URI」には、手順1で可視化データを格納したプレフィックスを指定します。

CREATE DATABASE qs;
CREATE EXTERNAL TABLE IF NOT EXISTS `qs`.`sensor` (
  `date` timestamp,
  `room_temp` float,
  `room_hum` float,
  `room_light` float
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
WITH SERDEPROPERTIES (
  'serialization.format' = ',',
  'field.delim' = ','
) LOCATION '<S3 URI>'
TBLPROPERTIES ('has_encrypted_data'='false');

3. QuickSightの準備

3.1 権限設定

QuickSightからS3、Athenaに連携するにあたり、アクセス権限を付与します。
「QuickSightの管理」>「セキュリティとアクセス権限」>「QuickSight の AWS のサービスへのアクセス」 からS3とAthenaへの許可を設定し、保存します。
アドカレ20211222_木村有希_qs-manage.PNG

3.2 データセット作成

「データセットの作成」>「新しいデータセット」>「Athena」を選択し、データソース名を入力して「データソースを作成」を押下します。
アドカレ20211222_木村有希_qs-dataset-1.PNG

テーブルの選択で、カタログ、データベース、テーブルを選び、「選択」を押下し、そのまま「Visualize」に進みます。
アドカレ20211222_木村有希_qs-dataset-2.PNG
アドカレ20211222_木村有希_qs-dataset-3.PNG

4. 機能検証

4.1 パラメータ(変数)

まずはパラメータを使ってみます。
サンプルとして、2021/11/11~2021/11/20の温度と湿度の折れ線グラフ、平均値を描画します。
アドカレ20211222_木村有希_qs-visualize-1.PNG

特定の日付のオリジナルなパラメータを作成し、データをフィルタリングしてみます。
「パラメータ」>「+」を選択し、以下の通りパラメータを作成します。
今回は2021/11/15のみを対象として、「20211115」というパラメータを作成しました。

項目 設定値
名前 20211115
データタイプ 日時
時間詳細度
時間詳細度 2021/11/15

アドカレ20211222_木村有希_qs-visualize-2.PNG

「フィルター」>「+」を選択し、先ほど作成したパラメータを指定します。
フィルタリングする対象に「date」を選択し、以下の設定で作成します。

項目 設定値
フィルタタイプ 日付と時刻の範囲
次と等しい
パラメータを使用 チェック
日付パラメータ 20211115

適用すると、2021/11/11~2021/11/20のデータから、パラメータで指定した2021/11/15のデータのみフィルタできました。
アドカレ20211222_木村有希_qs-visualize-3.PNG

4.2 カスタムアクション

次にカスタムアクションです。今回は指定したシートに遷移する「ナビゲーションアクション」を作成します。
まずはアクション時の遷移先とするシート2に、温度と湿度のテーブルを作成します。
アドカレ20211222_木村有希_qs-action-1.PNG

「アクション」で手順4.1で作成したシート1 の折れ線グラフにカスタムアクションを作成します。
シート1を選択し、「アクション」>「カスタムアクションを定義する」から以下の設定で作成します。

項目 設定値
アクション名 テーブルへ遷移
アクティベーション メニューオプション
アクションタイプ ナビゲーションアクション
ターゲットシート シート2

アドカレ20211222_木村有希_qs-action-2.PNG

作成したアクションを動作確認します。
シート1のビジュアル内で右クリックし「テーブルへ遷移」を選択すると、シート2へ遷移できました。
アドカレ20211222_木村有希_qs-action-3.PNG
アドカレ20211222_木村有希_qs-action-4.PNG

4.3 カスタムSQL

次にカスタムSQLです。サンプルとして、温度・光量の散布図と相関係数を描画してみます。

まずはデータセット作成でカスタムSQLを実行し、相関係数を取得します。
手順3.2と同じ手順でデータソースを新規作成し、テーブルの選択で「カスタムSQLを使用」に進みます。
アドカレ20211222_木村有希_qs-sql-1.PNG
「カスタムSQLクエリの入力」でクエリを入力して「クエリの確認」>「Visualize」を選択します。
今回作成したクエリ名は「corr_sql」、入力したクエリは以下の通りです。

select corr(room_temp, room_light) as corr from "qs"."sensor";

アドカレ20211222_木村有希_qs-sql-2.PNG

散布図と相関係数を描画します。
相関係数はデータセットに「corr_sql」を選択し、ビジュアルタイプに「KPI」を選択します。
アドカレ20211222_木村有希_qs-sql-3.PNG

次に散布図を作成します。
デフォルトのデータセットが「corr_sql」なので、「この分析のデータセット」で「データセットの追加」を選択し、手順3.2で作成したデータセット「sensor」を追加します。
アドカレ20211222_木村有希_qs-sql-4.PNG
アドカレ20211222_木村有希_qs-sql-5.PNG

データセットに「sensor」を指定し、ビジュアルタイプに散布図を選択すれば、描画完了です。
温度と光量は相関関係あるかと予想したのですが、期待していたより弱い相関でした。
アドカレ20211222_木村有希_qs-sql-6.PNG

4.4 ダッシュボード化

最後に作成したビジュアルを整形&まとめて、テーマを「Seaside」に変更しダッシュボード化してみました。
アドカレ20211222_木村有希_qs-dash-1.PNG

おわりに

今回はデータが少量のため簡易な分析でしたが、得た知見を今後のデータ可視化作業で応用できればと思います。
また可視化データは手動で持ち込みましたが、AWS IoTを使えばデータ連携も自動化できそうです。
QuickSightは新機能がどんどん追加されているため、これからも継続してウォッチしたいですね。

それでは、 NTTテクノクロス Advent Calendar 2021 23日目も、引き続きお楽しみください。

参考

Amazon QuickSight とは

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0