👾

Amazon QuickSight 可視化BASIC編 をちょっとだけやってみた!

2024/01/06に公開

はじめに

システム運用アンチパターンを読んでシステムに対する調査などを他のチームでもある程度自由にできるようにする必要があると感じていたのですが、システムに組み込むにはコストが高いなと思っていました。
そこで今回は BI ツールである Amazon QuickSight に入門してノーコードでのツール作成の可能性を考えてみたいと思います。

https://aws.amazon.com/jp/blogs/news/amazon-quicksight-handson-202006/

以下ハンズオンの目次になります。

  • 初期セットアップ
  • 用語とコンセプト
  • 初めてのダッシュボードを作成する
    • データのダウンロード、接続とデータの準備
      • 接続とデータ準備(ファイルアップロード)
      • 接続とデータ準備(S3)<Optional>
    • 分析の作成とダッシュボードの公開
      • ビジュアル、計算フィールドの作成
      • インタラクティビティとレイアウト設定
  • 高度な分析ダッシュボードを作成する
    • データセットの複製と準備
    • 高度な分析ダッシュボードの作成と公開
      • ビジュアル、計算フィールドの作成
      • パラメータを使用した計算、アクション、コントロール
      • 異常検知、ナラティブ、テキスト
      • LAC機能を使用したビジュアル作成
      • タイトル・記述・戻るボタンを追加し、ダッシュボードを公開
  • コードでダッシュボードを作成する
    • ラボの事前準備
      • Cloud9 の準備
      • IAM ロールの準備
      • Cloud9 の権限の変更
      • AWS CLI のバージョン確認
      • AWS CLI のバージョンアップ
    • コードでダッシュボード作成ラボ
      • 事前準備
      • 分析定義ファイルを取得する
      • ダッシュボードの手木ファイルを取得する
      • 既存の分析から新しい分析を作成するための準備
      • 既存の分析から新しい分析を作成する
      • 既存のダッシュボードから新しいダッシュボードを作成するための準備
      • 既存のダッシュボードから新しいダッシュボードを作成する
      • (参考)既存の分析から新しいダッシュボードを作成するための準備
      • (参考)既存の分析から新しいダッシュボードを作成する
    • 作成したダッシュボードを別環境の移行する
      • テンプレートを使用して移行する
      • 作成したダッシュボードをその関連アセットを別アカウント環境に移行する
      • 作成したダッシュボードを同一アカウントの別環境に移行する
      • <Optional>「初めてのダッシュボード」をデプロイする
  • Paginated レポートを作成する
    • ダッシュボード(PDF)のEメール配信
    • ページ分割されたレポートのサブスクリプション追加
    • 初めての Pagenated レポートを作成する
    • 作成した Paginated レポートを強化する
  • データソースに接続してダッシュボードを作成する
    • 大規模データを Athena 経由で可視化する
      • Athena からサンプルデータをクエリする
      • Athena からパーティショニングされたサンプルデータをクエリする
      • QuickSight から Athena に接続する
      • QuickSight を利用して可視化する
    • 大規模データを Redshift Serverless 経由で可視化する
    • データセットパラメータを使用してクエリーを最適化する
      • カスタムクエリーのデータセット作成
      • 分析パラメータのマッピングとコントロール作成
      • 特定ビジュアル用データセットの作成と追加
      • CloudWatch 上でダッシュボードのロード時間を確認
  • クリーンアップ
    • QuickSight のクリーンアップ
    • (Optional)Cloud9を使用した場合のクリーンアップ

目次を書き出してみるとかなりのボリュームなので1つをやって感触をつかんでみたいとおもいます。

  • 初めてのダッシュボードを作成する

事前準備

初期セットアップ

  • 初めて利用するので「Sign up for QuickSight」をクリック

  • edition 選択画面はそのまま Continue

  • Get Paginated Report add-on は 「No, Maybe Later」 を選択

  • QuickSight アカウントの設定を行う画面(指示通りに入力)

  • サインアップ処理が正常終了した画面

  • 「Go to Amazon QuickSight」をクリックすると QuickSight のコンソール画面が表示されました

用語とコンセプト

6つのアセット

カテゴリ 説明
データソース QuickSightデータソースは、データソース接続におけるメタデータになります。接続情報は、データソースにより異なり、ローカルのテキストファイルやExcelの場合はファイルのロケーション、Amazon S3の場合はマニフェスト、Amazon RedshiftやAmazon RDSの場合はサーバやデータベース名、クレデンシャルが必要です。
データセット データソースから作成されるメタデータで、計算式も含まれます。可視化の基盤となります。
分析 可視化の編集が可能で、Authorロールのユーザが利用できます。フィールド、ビジュアルタイプ、シートなどのコンポーネントで構成され、QuickSight内で異なるビジュアルを作成できます。
テーマ 複数の分析やダッシュボードに適用できる設定コレクション。ビルトインで提供されており、編集して作成することも可能です。作成したテーマを他のユーザと共有し、使用やコピー保存が可能です。
ダッシュボード 分析のリードオンリーモードで、分析が公開可能な状態になると、Authorはそれをダッシュボードとしてエクスポートできます。ビジネスユーザによる意思決定に利用されます。
QuickSight Q トピック 自然言語クエリで問い合わせができるデータセットのコレクションで、ビジュアルで応答します。Authorは、既存のデータセットやダッシュボードからトピックを作成できます。

3つのロール

ロール 説明
管理者(Admin) 管理上のタスクとBI開発の関わるタスクを担当。1 QuickSightアカウントに1人または複数の管理者を設定可能。主なタスクには、サブスクリプション管理、ユーザーやグループの管理、ストレージ容量の管理、他のAWSサービスへのアクセス管理やSSOなどが含まれる。
作成者(Author) アナリストやBIエンジニアが利用するロール。データセットの作成、分析の作成、分析やダッシュボードの共有、ダッシュボードへの公開などが主なタスク。
閲覧者(Reader) レポートやダッシュボードを参照するビジネスユーザが利用するロール。内部や外部のユーザが対象。QuickSightコンソールや埋め込みアプリケーションを通じてダッシュボードにアクセスし、Emailアラートの受信、問い合わせ、インタラクティブなデータ参照、ブックマークの作成やアラート設定が可能。

初めてのダッシュボードを作成する

Amazon QuickSight はクラウドで稼働する BI サービス。

  • 特徴
    • サーバー管理不要&自動スケールによる拡張性
    • セルフサービスBI
    • AWSサービスとの接続性
    • 組み込みアナリティクス
    • 機械学習
    • セッション単位の従量課金

データのダウンロード、接続とデータ準備

QuickSight には SPICE というデータベースが内蔵されているみたいです。

SPICE
QuickSightにはSPICEというインメモリ型の高速データベースが内蔵されています。
このSPICEの領域にデータを取り込んでおくことで、高速なBI応答が可能になります。
もちろん、SPICEを使わず、Amazon AthenaやAmazon Redshiftに直接クエリ(SQL)を発行して利用することも可能です。

SPICE 領域に取り込む2つの方法

  • CSV ファイルをアップロードして取り込む方法
  • S3 に配置した CSV ファイルを直接取り込む方法

接続とデータ準備(ファイルアップロード)

ハンズオンの指示に従ってデータを登録していくだけ。

csvファイル内のデータが更新されたらダッシュボードで使用するデータセットを更新する必要があるらしい。
データセットの編集画面でファイルの更新を行うらしい。

指示通りやった場合の最終画面はこちら。

今回のハンズオンでは CSV をデータセットにしているけど多分実際に自分が使う場合はデータベースとつなくことになると思うので「データセットを作成」の「新規データソース」のところで MySQL とかを選択することになるんだと思う。

接続とデータ準備(S3) <Optional>

Optional なので一旦飛ばして進める。

分析の作成とダッシュボードの公開

ここからは SPICE に取り込んだデータを可視化していく。

ビジュアル、計算フィールドの作成

指示に従って以下の10のビジュアルを作成していく。
1)売上データの推移を月単位で表示
2)時系列推移の売上データを一意に表現する
3)時系列グラフから推奨インサイトで表現
4)産業別に売上データを比較表示
5)売上データをプロダクト別に比較表示
6)フィルターを適用
7)全オーダー数に対しディスカウントが適用された数を表現
8)時系列(月単位)でディスカウントの平均%を集計表示
9)ディスカウント平均をプロダクト別に表示
10)プロダクト別に売上とディスカウントのデータサマリー表示

作っていく中で 予測 という機能があってびっくりした。

ML(機械学習)機能 ー 予測
予測はQuickSightのML(機械学習)機能の1つで、与えられたデータから予測値を出力します。
この予測に使うモデルは、時系列に変化するデータに適した学習済のもので、ユーザ側では調整できません。
しかし、QuickSightにはAmazon SageMakerとの連携機能が用意されており、これを利用すると、ユーザ
独自に学習させたモデルを使った分析が可能です
(本ハンズオンの当章ではSageMakerとの連携は扱いません)

7)全オーダー数にたいsh知恵ディスカウントが適用された数を表現
8)時系列(月単位)でディスカウントの平均%を集計表示
→ 7、8は計算フィールドの保存中にエラーが発生しました。もう 1 度作成してください。 と表示されて保存できなかったためビジュアルが作れなかった。。

最終的にできたダッシュボードはこちら。

計算フィールドでエラーがでたので2つグラフを追加できませんでしたが、すんなりダッシュボードを作成することができました。
UIにクセがあるのでその辺りに慣れれば色々できるんだろうなと思いました。

インタラクティビティとレイアウト設定

次の5つを指示にそってやっていきます。
1)時系列(月単位)によるフィルタリング
2)プロダクトによるフィルタリング
3)レイアウトの変更
4)カスタムテーマの作成と適用
5)ダッシュボードの公開

1)時系列(月単位)によるフィルタリング これは「時系列(月単位)の垂直積み上げ100%棒グラフ」ができなかったので試せませんでした。

最終的にこんなダッシュボードになりました。テーマの変更では指示と違うものを設定してみました。

まとめ

今回は Amazon QuickSight にちょっとだけ入門してみました。
かなり高機能なことがわかりました!
高機能なので設定の仕方も複雑だな〜と感じました。
次は実際のデータベースに接続して社内向けのツールとして提供できないか検討していきたいと思います。
また、まだまだハンズオンがあるので引き続き進めていこうと思います。

Discussion