Gunosy Tech Blog

Gunosy Tech Blogは株式会社Gunosyのエンジニアが知見を共有する技術ブログです。

QuickSight に入門してみた

こんにちは。ML チームの 大城(k.oshiro)です。

こちらの記事は Gunosy Advent Calendar 2024 - Adventar の 14 日目の記事です。 13 日目の記事は森田さんの Headful な Selenium を Lambda で動かしたい - Gunosy Tech Blog でした。

この記事は QuickSight について学んだことのアウトプットブログとなります。

私は、これまでの業務上で QuickSight を使用する機会があまりなかったため、ほとんど知識がない状態でした。 しかし、最近は ML チームの業務で QuickSight を使用・編集する場面が何度か生じていました。 そこで QuickSight の理解を深める必要を感じ、その概要やデータセット、分析について API リファレンスを読んで学び、入門することにしました (記載内容は公開時点までのものになります)。

QuickSight とは?

QuickSight は、AWS が提供するビジネスインテリジェンス(BI)サービスです。S3 や Athena などのデータソースから得た情報を一元化し、効果的に可視化することができます。

QuickSight のデータセット

QuickSight では、データソースから得た情報をテーブルに変換して扱います。 データセットには、都度取得するものとインメモリに格納するものがあり、インメモリ計算エンジンの Spice を使用すると、Spice にデータを取り込むことで都度データソースからデータを取得せずともよくなります。

  • データセットには Physical table map と Logical table map 、そして、Output columns が定義されています
    • Physical table map
      • Custom SQL、RelationTable、S3Source の 3 つ
        • 弊社では Athena のクエリ結果を元に Spice を作成しているため、データセットは RelationTable で宣言されています
        • RelationTable は Catalog や Schema、InputColumns などの情報を持っています
    • Logical table map
      • カラムのキャスト(CastColumnTypeOperation)や計算カラム(CreateColumnsOperation)、行のフィルター(FilterOperation)などが定義されています
    • Output columns
      • 分析などで使用するためのカラムが定義されています
  • Spice にデータを取り込むために発行したクエリは Athena から確認することが可能です
    • データ取り込みが失敗した際に、発行されたクエリを確認することでエラー解決の手がかりとなりそうです

QuickSight の分析

QuickSight の「分析」は、特定ユーザーだけがアクセス可能なダッシュボードの編集機能です。

分析画面

分析を公開するとダッシュボードとして表示できるようになります。 分析では、シートとビジュアルの 2 つの構成要素を使用してデータを分析&可視化します。 弊社のシートとしては、 A/B ダッシュボードの中に GunosyAds シートと Gunosy Network Ads シートというように使われていました*1。 ビジュアルとしては、売上データを棒グラフで表示するなどの使い方があります。

  • DatasetIdentifierDeclarations、CalculatedFields、ColumnConfigurations などがあります
  • CalculatedFields(計算フィールド)
    • 分析上で追加するカラムの設定です
    • その分析でのみ使用でき、データセットには取り込まれません
    • データセットの時点で追加できる計算フィールドもあります
      • この場合、そのデータセットを使用するすべての分析で、その計算フィールドを使用することができます
  • FilterGroups
    • 分析画面の Filter から追加でき、どのようなデータを抽出するかを決定します
    • これはシートの FilterControls から参照されます

シート

シートは複数のビジュアル(グラフなど)を 1 つにまとめたものを指します。 これは 1 つの分析に複数配置することができます。

シート画面

  • シートには ContentType、FilterControls、Layouts、Visuals などが定義されています
  • Layouts 系はその名の通りレイアウトに関するものです
  • Controls 系
    • FilterControls
      • Analysis の FilterGroups をシートで使用できるように宣言しています
    • ParameterControls
      • Analysis で設定したパラメータをシートで使用できるよう宣言しています
  • Visuals
    • シートを構成する各グラフが入っています

ビジュアル

1 つのグラフのことを指します。 棒グラフや折れ線グラフ、テーブルなどが使用できます。

ビジュアル画面

  • グラフの種類の分だけ定義があり、BarChartVisual、BoxPlotVisual などが宣言できます
  • 例として BarChartVisual を見ます
    • ChartConfiguration、ColumnHierarchies、Title、Action などがあり、そのグラフの種類に応じた情報を持っています
    • ChartConfiguration はグラフの x 軸や y 軸、カラーラベルなどが定義できます
    • Action では、グラフのデータ点をクリックすることをトリガーに、色々なことが行えるように設定できます
      • 例. データ点をクリックするとパラメータを設定する(SetParametersOperation)、フィルタを行う(FilterOperation)など

終わりに

今回の学習を通じて、QuickSight の基本的な概念や機能について理解を深めることができました。 また、API リファレンスを見ることでデータをどのように保持しているのか、何が必要なのか、どこがどのように関連しているのかを知れたので、この入門の仕方はなかなか良いと感じました。

明日は igtm さんの「LLM を用いた PDF を元にした回答と、該当箇所のハイライト」です。お楽しみに!

参考にした資料

*1:Gunosy Network Adsは終了したため現在は使用されていません