はじめに
タイトル通りの内容で、気になったことやまとめを書いていきます。
用語とコンセプト
QuickSightは、6つのアセットで構成されており、それぞれのアセットは役割をもっています。QuickSightロールにアサインされたユーザは、QuickSight上のアセットと関わることで、ダッシュボードを作成、活用することができます。
- データソース
QuickSightデータソースは、データソース接続におけるメタデータになります。データソースへの接続情報は、対象となるデータソースにより異なり、ローカルにあるテキストファイルやExcelの場合、そのファイルのロケーションとなり、アップロードすることで、データソースは作成されます。Amazon S3の場合は、バケットやファイルを特定するマニフェストが必要となります。Amazon RedshiftやAmazon RDSの場合は、データをホストしているサーバやデータベース名、さらにデータベースインスタンスに接続するクレデンシャルが必要になります。サポートするデータソースについては、以下を参照してください。
https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/supported-data-sources.html
- データセット
上記データソースから作成されるメタデータで、その中には計算式も含まれます。可視化をしていく基盤となります。
- 分析
可視化の編集ができ、作成者(Author)というロールをもったユーザが利用できます。分析は、画面上いくつかのコンポーネント(フィールド、ビジュアルタイプ、シート・・)で構成されており、QuickSight内で自由に異なるビジュアルを作成することができます。(ビジュアルとは、データセットをグラフィカルに表現する集合体で、ビジュアルタイプは表やグラフのタイプのことで、ピボットテーブルや、地図、折れ線グラフ、棒グラフ、パイチャートなどが含まれます)
- テーマ
複数の分析やダッシュボードに適用できる設定コレクションのことで、ビルトインでいくつか提供されていますし、自身で編集して作成することもできます。作成したテーマをその他のユーザに共有し、共有されたテーマを自身の分析やダッシュボードで利用したり、別名で保存してコピーを保持することもできます。
- ダッシュボード
分析のリードオンリーモードのことで、分析が作成され公開できる状態になると、作成者(Author)はそれをダッシュボードとしてエクスポートすることができます。ダッシュボードは、典型的にはビジネスユーザによってビジネス決定するのに利用されます。
- QuickSight Q トピック
自然言語クエリーで問い合わせをすることができる1つ、もしくは複数のデータセットのコレクションのことで、ビジュアルにてその問い合わせに応答します。作成者(Author)は、既存のデータセットやダッシュボードからトピックを作成することができます。
- シート
作成するビジュアルやインサイトを管理する手法で、シートを分けることで全てを1つのページに全てのコンテンツを入れる必要がなくなります。一般的には、最初のシートにサマリー情報やメトリックスを作成し、そこからドリルダウンすることで別のシートにある詳細情報を参照できるようにします。また、データや作成したダッシュボードの説明が長くなる場合は、1つのシートに説明文だけを保存しておく方法もあります。シートは、簡単に複製することができるので、作成したビジュアルを利用して別のビジュアルを作成することもできます。
- パラメータ
アクションまたはオブジェクトにより使用される値を転送できる名前付きの変数です。このパラメータを使用することにより、ダッシュボードの閲覧者がリストから選択した値がパラメータにセットされ、フィルタや計算、URLアクションなどでそのパラメータを利用することができます。パラメータを使用するには、分析で参照設定する必要があります。以下の設定で参照可能です。
QuickSightは3つのロールを提供します。
- 管理者(Admin)
管理上のタスクと、BI開発の関わるタスクをすることができます。1QuickSightアカウントにつき、1つ、もしくは複数の管理者を作成することができます。主な管理タスクは、サブスクリプション管理、ユーザやグループ、ストレージ容量の管理、その他のAWSサービスへのアクセス管理やSSOなどが含まれます。
- 作成者(Author)
アナリストやBIエンジニアによって利用されるロールで、データセットの作成、分析の作成、分析やダッシュボードの共有、ダッシュボードへの公開などが主なタスクになります。
- 閲覧者(Reader)
レポートやダッシュボードを参照するビジネスユーザによって利用されるロールで、内部や外部のユーザが対象となります。主なタスクは、QuickSightコンソールを介して、または埋め込みアプリケーションを通してダッシュボードにアクセスしたり、Emailアラートを受け取ることができます。ダッシュボード上では、問い合わせをしたり、インタラクティブにデータを参照でき、独自にブックマークを作成したりアラート設定をすることもできます。
Amazon QuickSightとは
特徴は以下の通りになります。
- クラウドで稼働するBIツール
- サーバー管理不要&自動スケールによる拡張性
- セルフサービスBI
- AWSサービスとの接続性
- 組み込みアナリティクス
- 機械学習
- セッション単位の従量課金
接続とデータ準備
SPICE領域に取り込む際以下の2つの方法をここでは紹介します。
-
ダウンロードしたZIPファイル内のCSVファイルをアップロードして取り込む方法
-
S3に配置しているCSVファイルを直接取り込む方法の2種類を紹介します。
どちらを使用しても、可視化をすることは可能です。ただし、以下の場合においては、可視化作業自体をコードで実現する手順を紹介しているため、S3によるデータ準備作業をしていただく必要があります。
- 「コードでダッシュボードを作成する」内の作成したダッシュボードを別環境に移行するハンズオン
- 「初めてのダッシュボードを作成する」の可視化作業をスキップして、その他の章のハンズオンをする
ダウンロードしたZIPファイル内のCSVファイルをアップロードして取り込む方法
接続とデータ準備(S3)
ビジュアル、計算フィールドの作成
-
右ペインにプロパティが表示されていない場合は、ビジュアルの右上のビジュアルのフォーマットアイコンをクリックしてください
時系列推移の売上データを一意に表現する
- KPIを作成してみる
時系列グラフから推奨インサイトで表現
- 作成した売上の時系列グラフからインサイト(説明文) を作成してみましょう。QuickSightでは現在作成されているビジュアルから推奨インサイトを自動生成し一覧表示しています。その中から、成長率に関するインサイトを追加することで、計算されたデータを図ではなく人間の言葉や箇条書きで表現することができます。
産業別に売上データを比較表示
総売上は成長していることがわかります。次に、この売上データを産業別にみてみます。水平棒グラフを使用します。
-
左ペインのビジュアルの下にある +追加 を押すと 新しいビジュアルがシートに追加されます。
-
その新しいビジュアルが選択された状態で、ビジュアルタイプとして水平棒グラフを選択してください。
-
フィールド定義では、Y軸に産業、値に売上をドラッグ&ドロップします。
-
右ペインにあるプロパティのビジュアル下にあるディスプレイ設定を選択し、タイトルを編集の右にあるペンシルアイコンを選択し、産業別売上合計と入力し保存。
-
Y軸を選択し、データズームの右のアイコンをクリックし、無効化します。
-
X軸を選択し、ラベルの右のアイコンをクリックし、無効化します
-
データラベルの右にあるアイコンを選択し有効化し、位置で バーの内側 を選択し、データラベルのオーバーラップを許可右のアイコンをクリックし有効化します。
-
右ペインにプロパティが表示されていない場合は、ビジュアルの右上のビジュアルのフォーマットアイコンをクリックしてください
-
シート上のグラフのY軸ラベル表示が省略されている場合は、Y軸にマウスを合わせると、軸の位置を調整できるようになるので、ラベルが全て表示されるように調整します。
-
各産業に属する顧客別の売上も参照できるようにしてみます。このグラフにドリルダウン(階層)機能を追加することで簡単に実現することができます。 水平棒グラフが選択された状態で、フィールド定義のY軸に、フィールドリストから顧客名をドラッグし、産業の下に移動すると、下図のようにドリルダウンレイヤーの追加と表示されるのでドロップしてください。
売上データをプロダクト別に比較表示(ワードクラウドを使う)
次は、プロダクト別の売上状況を示すグラフを作成してみましょう。視認性を重視してWord Cloudを使用してみます。
- 左ペインのビジュアルの下にある +追加 を押すと 新しいビジュアルがシートに追加されます。
- ビジュアルタイプとしてWord Cloudを選択してください。
- フィールド定義で、グループ化の条件にプロダクト、サイズに売上をドラッグ&ドロップします。
- 右ペインにあるプロパティのビジュアル下にあるディスプレイ設定を選択し、タイトルを編集のペンシルアイコンを選択し、プロダクト(売上)と入力し保存します
右ペインにプロパティが表示されていない場合は、ビジュアルの右上のビジュアルのフォーマットアイコンをクリックしてください
フィルターを適用
ここまで5つのビジュアルを通して、売上データを様々な断面から表現してきました。最後に、これら全てのビジュアルに、地域フィールドのフィルターを適用し、地域単位でも参照できるようにしましょう。
- ビジュアルを選択した状態で、メニュー下のアイコンからフィルターを選択し、フィルター設定ペインで +追加をクリックし、地域を選択します。
- フィルターペインに地域のフィルターが作成されるので、... をクリックし、編集を選択します。上の 適用先 で 該当するすべてのビジュアル を選択し、適用ボタンを押します。
- 再度 ... をクリックし、シートに追加を選択します。
- フィルターがシートに追加されたら、右ペインのフォーマットコントロールより、タイトルにて地域のみに編集します。
右ペインにフォーマットコントロールが表示されていない場合は、ビジュアルの右上のペンシルアイコンをクリックしてください
全オーダー数に対しディスカウントが適用された数を表現
ここからは、ディスカウントのデータをみていきましょう。ディスカウントはプロダクトに対して適用されていることを前提とし、全オーダー数に対してディスカウントが適用された割合をゲージグラフで表現します。 まず、ディスカウントが適用されている(=ディスカウントの値が0より大きい)レコード数を算出する必要があるので、計算フィールド(Calculated Field) を追加します。
- 画面左データペインの上部にある +計算フィールド ボタンをクリックすると計算フィールドの編集画面が表示されます。計算フィールド名にディスカウント数と入力し、その下の計算式で、countif関数を入力します。右ペインより関数を選択し、countif関数をダブルクリックすることで入力することができます。関数の構文は、右ペイン下に表示され、サンプル構文もドキュメントリンクをクリックすることで参照できるようになっています。
- 今回は、オーダー数のカウントで、ディスカウントの値が0より大きいというIF条件つきなので、以下のような引数設定になります(各フィールドは、右ペインのフィールドを選択し、該当フィールドをダブルクリックすることで入力可能です)
- 画面右の保存ボタンを押し、作成した計算フィールドがフィールドリストに表示されていることを確認します。
- 左ペインのビジュアルの下にある +追加 を押すと 新しいビジュアルがシートに追加されます。
- ビジュアルタイプとしてゲージグラフを選択してください。
- フィールド定義で、値に上記で作成した計算フィールド ディスカウント数、ターゲット値にオーダーIDをドラッグ&ドロップします。ターゲット値のオーダーIDの集計方法がデフォルトでカウントになっていることを確認ください
- 右ペインにあるプロパティのビジュアル下にあるディスプレイ設定を選択し、タイトルを編集を選択し、ディスカウント数(全オーダーに対する) と入力し保存します。
右ペインにプロパティが表示されていない場合は、ビジュアルの右上のビジュアルのフォーマットアイコンをクリックしてください
時系列(月単位)でディスカウントの平均%を集計表示
次に、時系列(月単位)にてディスカウントが売上に対して示す平均の割合をみてみましょう。100%積み上げ棒グラフで表現します。ディスカウントを除いた%データが必要になるので、上記7) と同様に計算フィールドでそのフィールドを作成します。(今回は、集計計算ではなく単純な計算式になるので、データセットで計算フィールドを作成するのが理想ですが、分析で作成することにします)
-
画面左データペインの上部にある +計算フィールド ボタンをクリックすると計算フィールドの編集画面が表示されるので、計算フィールド名に 売上% と入力し、その下の計算式には、以下の計算式を入力します。 1-{ディスカウント}
-
画面右の保存ボタンを押し、作成した計算フィールドがフィールドリストに表示されていることを確認します。
-
左ペインのビジュアルの下にある +追加 を押すと 新しいビジュアルがシートに追加されます。
-
ビジュアルタイプとして垂直積み上げ100パーセント棒グラフを選択してください。
-
フィールド定義で、X軸にオーダー日付を、値に上記で作成した計算フィールド 売上% をドラッグ&ドロップし、さらにディスカウントをその下に追加でドラッグ&ドロップします。
-
フィールド定義のX軸にあるオーダー日付の **...**をクリックして、集計=>月 を選択します。
-
再度オーダー日付の **...**をクリックして、形式=>その他のフォーマットオプションを選択します。左ペインで、日付を選択、yy-09−20を選択します。
-
フィールドウェルの値にある 売上% の ... をクリックして、集計:合計=>平均 を選択します。同様に、ディスカウントフィールドも 集計 を 平均 に変更します。さらに、売上% の ... をクリックして、表示方法でパーセントを選択します。
-
右ペインにあるプロパティのビジュアル下にあるディスプレイ設定を選択し、タイトルを編集を選択し、ディスカウントの平均割合(月単位) と入力し保存します。さらに、X軸で、タイトル、ソート、データズームのアイコンをクリックし無効化します。最後に、凡例を選択し、位置で下を選択します。
ディスカウント平均をプロダクト別に表示
今度はプロダクト別にディスカウントの平均もみてみましょう。売上の場合と同様にWord Cloudを作成します。作成されたWord Cloudを再利用できます。
- 売上のWord Cloudの右上にある ... を選択し、ビジュアルの複製を選択します。
- フィールドリストからディスカウントフィールドをドラッグし、サイズにある売上フィールドの上にマウスを移動し、置換が表示されたらドロップします。
- フィールド定義のサイズにあるディスカウントの **...**をクリックして、集計:合計=>平均を選択します。
- 右ペインにあるプロパティのビジュアル下にあるディスプレイ設定を選択し、タイトルを編集を選択し、プロダクト(ディスカウント) と入力し保存します。
右ペインにプロパティが表示されていない場合は、ビジュアルの右上のビジュアルのフォーマットアイコンをクリックしてください
プロダクト別に売上とディスカウントのデータサマリー表示
最後に、プロダクト単位で売上とディスカウントのRawデータを四半期単位で参照できるピボットテーブルを作成します。
- 左ペインのビジュアルの下にある +追加 を押すと 新しいビジュアルがシートに追加されます。
- ビジュアルタイプとしてピボットテーブルを選択してください。
- フィールド英義で、行にプロダクト、列にオーダー日付、値に売上とディスカウントをドラッグ&ドロップします。
- フィールド定義のX軸にあるオーダー日付の **...**をクリックして、集計=>四半期 を選択し、形式=>その他のフォーマットオプションを選択します。左ペインで、日付でを選択、yy-09−20を選択します。
- フィールド定義の値にあるディスカウントの **...**をクリックして、集計:合計=>平均を選択します。
- 右ペインにあるプロパティのビジュアル下にあるディスプレイ設定を選択し、タイトルを編集を選択し、プロダクト別売上合計とディスカウント平均(四半期単位) と入力し保存します。さらに、ヘッダーをクリックし、列の下にあるColumn field namesを無効化、セルをクリックし、背景で奇数行をクリックし、色を設定します。
右ペインにプロパティが表示されていない場合は、ビジュアルの右上のビジュアルのフォーマットアイコンをクリックしてください - ビジュアルの右上より ... を選択し、条件付き書式設定をクリックします。
- 列の選択では対象とするディスカウントを選択し、次にアイコンを追加するを選択します。
- アイコンセットで3色のセットを選択し、
条件1に次以下を選択、値に0.1を設定
条件2の開始値に0.35、終了値に0.5
条件3で次以上を選択し、値に0.5を設定し、適用ボタンを押します。
データセットの複製
- QuickSightコンソール画面より、画面左にあるデータセットをクリックします。前章で作成したデータセットが一覧に表示されるので、そのデータセットの右端にある ... をクリックし、複製 を選択します。
- データセットの複製 ダイアログで、複製するデータセット名を入力し、複製ボタンを押します。
- データセットが複製されたら、そのデータセットの右端にある ... をクリックし、編集 を選択します。
地理空間階層の作成
データセット編集画面で、地理フィールドの型を変更し階層を作成します。
- 画面下にあるプレビュー画面より、都道府県フィールドの下にある型が文字列になっていることを確認し、その文字列をクリックし、都道府県を選択します。
- 次に、市フィールドの下にある型が同様に文字列になっているので、クリックし、市町村区を選択します。
- 最後に、郵便番号フィールドが整数になっているので、クリックし、郵便番号を選択します。
- 左のフィールド一覧から、都道府県の右にある ... をクリックし、階層に追加を選択し、新しい地理空間階層を作成が選択された状態で、追加をクリックします。
- この階層は1つの国用ですが選択された状態で、その下のドロップダウンより日本を選択し、階層の作成を押します。
- 同様に、左のフィールド一覧から、郵便番号の右にある ... をクリックし、階層に追加を選択し、新しい地理空間階層を作成が選択された状態で、日本を選択し追加をクリックします。
- さらに、左のフィールド一覧から、市の右にある ... をクリックし、階層に追加を選択し、既存の地理空間階層に追加を選択し、その下のドロップダウンで郵便番号を選択し、追加をクリックします。
以下のようなダッシュボードを作成していく
今回作成するダッシュボードは、オーダー履歴から売上と利益データに着眼し、利益率の増減が影響している要因を様々な断面から探っていけるようなダッシュボード、さらに、作成した指標からプロダクト戦略分析が可能なダッシュボードを作成していきます。
以下リンク先を参考にする
https://catalog.us-east-1.prod.workshops.aws/workshops/aa601d0b-84c9-4f77-b9a7-5954d8574cd5/ja-JP/3-build-advanced-dashboard/create-analysis-and-publish-dashboard/visuals-and-calculations
売上、利益、利益率を時系列で表現する
積み上げ棒コンボグラフにて、売上、利益、利益率を時系列単位で表示します。上記で作成したテーブルをそのまま利用します。
-
上記で作成したテーブルを選択し、フィールド定義の値から 利益率(行) の ... をクリックして、削除をクリックします。また、左データペインのフィールド一覧の 利益率(行) の 右にある ... を選択し、計算フィールドを削除するを選択し、フィールド一覧からも削除します。
-
テーブルのビジュアルが選択された状態で、ビジュアルタイプ変更下のテーブルをクリックし、一覧より、積み上げ棒コンボグラフを選択します。
-
フィールド定義で、棒グラグの値にある利益率(集計)をドラッグし、折れ線グラフの値でドロップします。
-
右ペインにあるプロパティのビジュアル下にあるディスプレイ設定を選択し、
右ペインにプロパティが表示されていない場合は、ビジュアルの右上のビジュアルのフォーマットアイコンをクリックしてください -
タイトルを編集のペンシルアイコンを選択し、利益率・売上・利益の時系列推移と入力し、保存
-
X軸を選択し タイトルとソートとデータズームの右にあるアイコンをクリックし無効化
-
凡例を選択し、凡例タイトルを無効化し、位置で上を選択します
利益率の状況を都道府県で集計し、地図で表現する
今度は、さらに詳細にみていくため、利益率を都道府県レベルで集計し、それを 地図(FilledMap) でみてみましょう。
- 左ペインのビジュアルの下にある +追加 を押すと 新しいビジュアルがシートに追加されるので、ビジュアルタイプからFilled Mapを選択してください。
- フィールド定義で、Locationに都道府県を、Colorに 利益率(集計) をドラッグ&ドロップします。
- 右ペインにあるプロパティのビジュアル下にあるディスプレイ設定を選択し、タイトルを編集のペンシルアイコンを選択し、利益率(都道府県別別)と入力し、保存します。
- ビジュアルの右上より ... を選択し、条件付き書式設定をクリックします。列に 利益率(集計) を選択し、条件にある背景色を追加するを選択します。塗りつぶしタイプでグラデーションを選択し、グラデーション色にブルーが表示されていることを確認し、適用ボタンをクリックします。
利益率の状況を都道府県で集計し、地図で表現する
今度は、さらに詳細にみていくため、利益率を都道府県レベルで集計し、それを 地図(FilledMap) でみてみましょう。
左ペインのビジュアルの下にある +追加 を押すと 新しいビジュアルがシートに追加されるので、ビジュアルタイプからFilled Mapを選択してください。
フィールド定義で、Locationに都道府県を、Colorに 利益率(集計) をドラッグ&ドロップします。
右ペインにあるプロパティのビジュアル下にあるディスプレイ設定を選択し、タイトルを編集のペンシルアイコンを選択し、利益率(都道府県別別)と入力し、保存します。
ビジュアルの右上より ... を選択し、条件付き書式設定をクリックします。列に 利益率(集計) を選択し、条件にある背景色を追加するを選択します。塗りつぶしタイプでグラデーションを選択し、グラデーション色にブルーが表示されていることを確認し、適用ボタンをクリックします。
期間、セクター、産業でフィルターを作成
オーダー日付の期間、セクター、産業を指定することで、作成した4つのビジュアルを各々の断面で分析できるようにします。セクターと産業は、階層構造になっているので、作成するフィルターもカスケードリンク設定をすることにします。
作成したビジュアルの一つを選択した状態で、メニュー下のアイコンからフィルターを選択し、フィルター設定ペインで追加をクリックし、オーダー日付を選択します。
左ペインにオーダー日付のフィルターが作成されるので、... をクリックし、編集を選択します。
上の 適用先 で 該当するすべてのビジュアル を選択
フィルタータイプが日付と時刻の範囲、条件に次の間が設定されていることを確認、
開始日に2021/01/01を入力
終了日に2021/12/31を入力、終了日を含めるにチェックを入れる
適用ボタンを押します。
再度 ... をクリックし、シートに追加を選択します。
フィルターがシートに追加されたら、右ペインのフォーマットコントロール上の、タイトルにて名前を編集し、コントロールオプション の 日付形式 で YYYY/MM/DD のみとします。
右ペインのフォーマットコントロールが表示されない場合は、フィルター右のペンシルアイコンをクリックします。 6-4
同様に、ビジュアルの一つを選択した状態で、メニュー下のアイコンからフィルターを選択し、フィルター設定ペインで追加をクリックし、今度はセクターを選択します。
左ペインにセクターのフィルターが作成されるので、... をクリックし、編集を選択します。上の 適用先 で 該当するすべてのビジュアル を選択し、適用ボタンを押します。
再度 ... をクリックし、シートに追加を選択します。
フィルターがシートに追加されたら、フィルター右のペンシルアイコンをクリックし、タイトルにて名前を編集し、Control Optionsのドロップダウンより、リストー複数選択を選択します。
同様に、ビジュアルの一つを選択した状態で、左のフィルターパネルを選択し、フィルターの追加をクリックし、今度は産業ーを選択します。
左ペインに産業のフィルターが作成されるので、... をクリックし、編集を選択します。上の 適用先 で 該当するすべてのビジュアル を選択し、適用ボタンを押します。
再度 ... をクリックし、シートに追加を選択します。
フィルターがシートに追加されたら、フィルター右のペンシルアイコンをクリックし、タイトルにて名前を編集し、Control Optionsのドロップダウンより、リストー複数選択を選択し、関連する値のみを表示ボタンをクリックします。関連する値のみを表示のダイアログが出たら、上記で作成したセクターのフィルターを選択します。 > 「このコントロールに関連する値のみが表示されます」というメッセージが表示されます。
作成されたセクターのリストから、セクターを選択すると、そのセクターに絞られた産業のリストが表示されることを確認してみましょう。