JP Contents Hubのハンズオンを上から全部やっていきます。
基本的に手順を上から舐めているだけなので、実施した部分は副教材程度に思ってください。
やってみたの部分の記載は画面が変わってたりする部分のや注意したほうがいい部分のメモで手順通りのところは特にメモに残していません。
最初はAmazon QuickSight のセルフハンズオンキット日本語版からスタート。
このハンズオンで学べること
内容としては、各種イベントなどで実施してきたQuickSightのハンズオンなので、QuickSightを試す事ができます。
提供されているハンズオンは4つで
- QuickSight Basicハンズオン
- QuickSight 販売管理ダッシュボード
- QuickSight 埋め込みハンズオン
- QuickSight 埋め込みハンズオン(SaaS向けマルチテナント機能)
です
利用する主要なサービス
- QuickSight
- Athena
やってみた
QuickSight Basicハンズオン編 (更新 2022/1/7)がBlogによるとこちらからダウンロードが可能とのことです。
zipファイルがダウンロードされ、中にハンズオン用のセットが入っています。
内容物はこんな感じ
.
├── Assign.csv # ハンズオンで使用するデータセット
├── Patient-Info.csv # ハンズオンで使用するデータセット
├── QuickSight-Intro.pdf #QuickSightそのものについてSAが紹介しているスライド
└── QuickSight-handson-2020-03-11.pdf # ハンズオンの手順
QuickSight-handson-2020-03-11.pdfの手順に従ってハンズオンを進めます。
1-4まで通しでやると結構時間がかかります。
1 + 4 をまずは実施して必要に応じて2と3を実施する方針でも良いかもしれません。
QUICKSIGHT にサインアップする
バージニア北部リージョン の指定があるのでリージョンには注意します。
-
なんらか会社のアカウントなどで既にQUICKSIGHTを使っているとそっちに入りますので、もし既に他に使っている場合は先にログアウトしましょう。
-
QuickSight account name は一意である必要があります
CSV ファイルをアップロードする
- S3とかではなく、QUICKSIGHT からアップロードする
- 画面右上の 新しい分析 を一度クリックして、 画面左にあるデータセットを クリックします。
-
Regionで2つのCSVのデータを Inner join します。
- Inner, left,right,full それぞれの説明があって操作できるのでSQL初めての人にJOINの概念を説明するときQuickSight使うと視覚的にデータがどう表示されるか示せるので結構良いかもしれない。
-
P17の内容が終わったら準備完了なのでハンズオンに進む
ハンズオン 1
-
X軸: Account Rep / Y軸: Revenue / グループ: Payor Segment
- 担当者ごとの売上が、売上内の分類ごとに色分けされて表示されます
-
グラフのタイトルをダブルクリックすると表示名を変更できます
- レベニュー(ペイヤーセグメント別) とする
-
|| このマークは、グラフの右端にマウスを持ってくると出てきます
ドーナツグラフの作成
- 表示されたスライスの数を変更するには、ドーナツグラフの右上のペンのマークをクリックして、ビジュアルのフォーマットを開きます。
- 最終的にレベニューの値が $18.63Mから19に変わらなくても支障ありません
ピボットテーブルとコンディショナルフォーマットの作成
- Admit Date と Payor Segment をクリックして 行に追加
- Profit, Revenue, Cost を緑の値まで引っ張ってきて3つ追加する
- テーブルのAdmit Dateをクリックすると形式から日付のカスタム編集が可能になります。
- カスタム編集は左にデータフォーマットとして表示されてくるので日付を開くといろいろ指定可能です
クイックフィルタ機能による絞り込みの実現
- 棒グラフの各人をクリックすると、その人のデータで他のグラフを描画してくれます。
- 再度全部見たい場合はもう一度選択している人の棒をクリックすると解除されます。
オプションの予測機能はENTERPRISE EDITION が必要なので割愛しました。
ハンズオン 2
- ハンズオン1が終わった状態から画面左上のQuickSightを押せばTop画面に戻れます
- 分析の作成は 分析で使用 に文言が変わってます。
- Categoryのトリルダウンレイヤを追加するにはCategoryをX軸の文字の部分に落とします
コントロールの作成とフィルタ
-
開始日のコントロールを作成
- 名前: BeginDate
- データタイプ: 日時
- 時間詳細度: 日
- デフォルトの日付: 2015- 01-01
-
左に作成された BeginDate があるのでVをクリックしてコントロールを追加
- 表示名: 開始日
-
追加で終了日のコントロールを作成
- 名前: EndDate
- データタイプ: 日時
- 時間詳細度: 日
- デフォルトの日付: 2019-01-01
-
左に作成された EndDate があるのでVをクリックしてコントロールを追加
- 表示名: 終了日
-
左の縦棒グラフを選択した状態でフィルターの追加を行います
- 後ほどすべてのビジュアルに変更します
計算フィールド1:シンプルな計算フィールド
- 計算フィールドは作成ではなく画面上は 保存 に表示が変わっている
- 計算フィールド作成時にエラーが出る 場合は一度ブラウザでリロードして作成すれば成功する
- Admit Dateをクリックすれば集計を年単位に変更が可能
ML インサイトによる異常値検出の設定
- Admit Dateを選択するとデフォルトで日になっているので、時間に設定されたAdmit Date横のVをクリックし集計を月に変更する
- 上位の寄与要因は左の一番下にあります
- 選択が完了したら右上の 保存 をクリックします
- ナラティブのインサイトは縦・3つを押せば説明文の編集が出てきます
ハンズオン 4
- Athenaのクエリ結果を保存するS3バケットは先に作成しておきます
- マネジメントコンソールでAthenaに移動します
- 先に作成しておいたバケットを選択します
- データが格納されているバケットは、ハンズオン用のデータをAWSがどこかのアカウントで保持していて、バケットポリシーでどこのアカウントからも取れるようにしてくれているようなのでAthenaからSQLを叩けば取得ができます。(自分のアカウントのS3にデータを置く必要はない)
- s3://ee-assets-prod-us-east-1/modules/aba5d66e8cd44378ba70a0427830efd5/v1/flightdata1/
CREATE EXTERNAL TABLE flightdata1( flight_date date,
flight_number string,
origin_city string,
origin_state string, destination_city string, destination_state string, departure_delay decimal(22,6), arrival_delay decimal(22,6), cancelled decimal(22,6),
diverted decimal(22,6),
air_time decimal(22,6),
distance decimal(22,6), distance_group decimal(22,6), carrier_delay decimal(22,6), weather_delay decimal(22,6), security_delay decimal(22,6), late_aircraft_delay decimal(22,6), origin_airport_name string, cancellation_reason string, destination_airport_name string, carrier_name string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION 's3://ee-assets-prod-us-east-1/modules/aba5d66e8cd44378ba70a0427830efd5/v1/flightdata1';
最初のSQLは上記です
CREATE EXTERNAL TABLE flightdata2( flight_date date,
flight_number string,
origin_city string,
origin_state string, destination_city string, destination_state string, departure_delay decimal(22,6), arrival_delay decimal(22,6), cancelled decimal(22,6),
diverted decimal(22,6),
air_time decimal(22,6),
distance decimal(22,6), distance_group decimal(22,6), carrier_delay decimal(22,6), weather_delay decimal(22,6), security_delay decimal(22,6), late_aircraft_delay decimal(22,6), origin_airport_name string, cancellation_reason string, destination_airport_name string, carrier_name string)
PARTITIONED BY (year int, month int)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION 's3://ee-assets-prod-us-east-1/modules/aba5d66e8cd44378ba70a0427830efd5/v1/flightdata2';
パーティション化されたSQLは上記です
- msck repair tableについて
QUICKSIGHT から ATHENA に接続する
-
QuickSight の管理は画面右上の人形のマークをクリックすると出てきます
-
セキュリティとアクセス権限をクリックしてQuickSight の AWS のサービスへのアクセスのManageを押すことでAthenaを追加できます
- 手順の最初でAthenaへの接続を外していたのでここで追加しています
-
自分のクエリ結果が保管されたS3を追加できたら、S3バケットを選択するからAWS 全体でアクセスできる S3 バケットでee-assets-prod-us-east-1バケットを追加します
-
Athenaではデータクエリを直接実行を選択します
- 今回はスパイス経由ではなく直接実行するのがハンズオンの趣旨のため
計算フィールド(CALCULATED FIELD)の追加
ハンズオン1から直接飛んだ方へ計算フィールドを追加は画面左の+追加を押すと出てきます。
同様にビジュアルも画面左の+追加を押すと出てきます。
- フィルターはフィルタの追加で追加します
- Origin_stateのフィルタは一つのビジュアル(円グラフ)です
感想
-
ハンズオン2,ハンズオン3は実際にQSを使って何らかのダッシュボードを作る際に、関数を使った集計がしたい。と思ったタイミングで実施するのが良いと思います。
-
QSで使用する関数はドキュメントを確認しなが実際に必要になったらこねくり回すのが良いと思う
カテゴリ別関数
https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/functions-by-category.html