10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

NTTテクノクロスAdvent Calendar 2021

Day 22

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

Last updated at Posted at 2021-12-21

この記事は 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 とは

10
0
0

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
  3. You can use dark theme
What you can do with signing up
10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?