こんにちは。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 などの情報を持っています
- Custom SQL、RelationTable、S3Source の 3 つ
- Logical table map
- カラムのキャスト(CastColumnTypeOperation)や計算カラム(CreateColumnsOperation)、行のフィルター(FilterOperation)などが定義されています
- Output columns
- 分析などで使用するためのカラムが定義されています
- Physical table map
- 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 で設定したパラメータをシートで使用できるよう宣言しています
- FilterControls
- Visuals
- シートを構成する各グラフが入っています
ビジュアル
1 つのグラフのことを指します。 棒グラフや折れ線グラフ、テーブルなどが使用できます。
- グラフの種類の分だけ定義があり、BarChartVisual、BoxPlotVisual などが宣言できます
- 例として BarChartVisual を見ます
- ChartConfiguration、ColumnHierarchies、Title、Action などがあり、そのグラフの種類に応じた情報を持っています
- ChartConfiguration はグラフの x 軸や y 軸、カラーラベルなどが定義できます
- Action では、グラフのデータ点をクリックすることをトリガーに、色々なことが行えるように設定できます
- 例. データ点をクリックするとパラメータを設定する(SetParametersOperation)、フィルタを行う(FilterOperation)など
終わりに
今回の学習を通じて、QuickSight の基本的な概念や機能について理解を深めることができました。 また、API リファレンスを見ることでデータをどのように保持しているのか、何が必要なのか、どこがどのように関連しているのかを知れたので、この入門の仕方はなかなか良いと感じました。
明日は igtm さんの「LLM を用いた PDF を元にした回答と、該当箇所のハイライト」です。お楽しみに!
参考にした資料
- データセット
- 分析
- シート
- ビジュアル
*1:Gunosy Network Adsは終了したため現在は使用されていません