顧客フロントSEのIT勉強ブログ

2022 Japan AWS Top Engineer / 2022-23 Japan AWS Certifications Engineer。AWS認定12冠、情報処理試験全冠。顧客フロントSEがなるべく手を動かしながらIT技術を学んでいくブログです。

【AWSワークショップ】QuickSight Workshop① ~作成者向け~

f:id:se_o_chan:20210909173953p:plainAWSワークショップ第一弾ということで、AWSのBIサービス「QuigkSightワークショップ」を試してみようと思います。

このワークショップを一通り実施すると、

  •  様々な表・グラフを表示するダッシュボード
  •  セキュアなダッシュボード公開
  •  外部Webページへの埋め込み
  •  ダッシュボードへのアクセス制御

などを実装できます。

 ECSやEKSなどのコンテナ技術に興味があるので、本当はその辺から始めようかと思っていたのですが、実業務でQuickSightのダッシュボードを使ったPoC(実証実験)案件が立ち上がりそうなので、こちらを先にすることにしました。

そもそも「QuickSight」とは

aws.amazon.com

Amazon QuickSight は、スケーラブルでサーバーレス、組み込み可能な、機械学習を活用したクラウド向けのビジネスインテリジェンス (BI) サービスです。QuickSight では、機械学習を利用したインサイトを含むインタラクティブな BI ダッシュボードを簡単に作成し、公開できます。QuickSight ダッシュボードには任意のデバイスからアクセスでき、アプリケーション、ポータル、ウェブサイトにシームレスに込み込むことができます。 

 要は下記のようなダッシュボードをGUIで簡単に作れるサービスです。

インプットのデータソースとして「S3バケット内のCSVJSONファイル」や「RDSやRedshiftなどのデータベース」を使用できます。

アウトプットのダッシュボードは、AWSマネジメントコンソールからのアクセスの他に、ダイレクトアクセスできるURLを外部公開したり、別のWebページに埋め込むことができます。

f:id:se_o_chan:20210824105112p:plain

QuickSightワークショップの構成

QuickSightワークショップには下記からアクセスできます。

learnquicksight.workshop.aws

AWSワークショップトップページで検索すると

  • Level:100
  • 所要時間:2時間

とありますが、このワークショップの内容をすべて実施するとLambdaやAPI Gateway、Cognitoとの統合まで踏み込むので、個人的な感覚としては「Level:200」くらい、所要時間は5~6時間くらいかかるかな、と思っています。

f:id:se_o_chan:20210824110415p:plain

QuickSightワークショップの構成は次のようになっています。

Author Workshop ダッシュボードの作成者向けワークショップ。様々な表・グラフの作成方法や、独自の計算ロジックの実装方法を学びます。
Admin Workshop QuickSightの管理者向けワークショップ。ユーザ・グループ・権限などの設定を通じてセキュアな運用を行う方法を学びます。
Anonymous Embedding ダッシュボードを不特定多数に更改する方法を学びます。具体的にはLambdaやAPIGatewayと統合させます。
Dashboard Embedding ダッシュボードを外部Webページに埋め込む方法を学びます。Cognitoと統合させ、アクセス管理も行います。
Session Embedding ダッシュボードそのものだけでなく、ダッシュボード作成画面も含めてQuickSight全体を外部ページに埋め込む方法を学びます。
Business Level-Up (オプション)上記迄のワークショップに触れられなかったオプションやパラメータ、関数などを学びます。
Admin Level-Up (オプション)Lake Formationで構築したデータレイクのデータをインプットに、QuickSightを構築する方法を学びます。

一度に実施するにはボリュームがあるので、今回はまず「Author Workshop(作成者ワークショップ)」から取り上げたいと思います。

Author Workshop(作成者ワークショップ)

初期セットアップ

1)AWSマネジメントコンソールから「QuickSight」を検索し、起動します。

2)QuickSight画面で「Sign up for QuickSight」ボタンをクリックします。

f:id:se_o_chan:20210824142223p:plain

3)エディションをStandart/Enterpriseで選べるので、Enterpriseエディションを選択したまま、「Continue」ボタンをクリックします。

4)QuickSightアカウント名、通知メールアドレスを入力します。QuickSightアカウント名は同一AWSアカウントで作成するQuickSight全体で一意になるようにする必要があります。

5)「Finish」ボタン→「Go to Amazon QuickSight」ボタンでQuickSightコンソールに移動します。

f:id:se_o_chan:20210824144807j:plain

6)ワークショップ手順にはないですが、私はここで言語設定を日本語にしています。右上のアカウント名をクリックし、言語を「日本語」にしました。

f:id:se_o_chan:20210824145855p:plain

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

Exercise 1 - データセットを作る

1)画面左の「データセット」をクリックします。

2)画面右上の「新しいデータセット」ボタンをクリックします。

3)データソースを選択できるので「ファイルのアップロード」を選択します。

f:id:se_o_chan:20210824150310j:plain

4)ここからダウンロードしたSaaS-Sales.csvファイルを選択し「次へ」→「視覚化する」ボタンをクリックします。

参考:SaaS-Sales.csvファイルの内容

ここでアップロードしたCSVファイルの中身を確認しておきましょう。この後の作業で、何のグラフを作成しているのか理解するのに役立ちます。

カラムは以下の19個、レコードは9994個のデータです。

世界展開している何かのSaaSの顧客別・月別・サービス別の売上実績のようです。

項目名 項目説明 データ例
Row ID レコードNo。1から順に採番されている。 1
Order ID 発注ID。Region-yyyy-数字6桁。 EMEA-2020-152156
Order Date 発注日。DD/MM/YYのフォーマット。 11/9/20
Date Key 発注日キー。yyyymmddの数字6桁。 20201109
Contact Name 連絡先。発注者の名前。 Nathan Bell
Country 国。発注者の拠点がある国。 Ireland
City 都市。発注者の拠点がある都市。 Dublin
Region 地域。発注者の拠点がある拠点でAMER/APJ/EMEAの3パターン。 EMEA
Subregion サブ地域。地域(Region)と階層構造になっています。 UKIR
Customer 企業名。発注者の所属会社。 Chevron
Customer ID 企業ID。企業名に紐づくID。 1017
Industry 産業。顧客企業が属する産業。 Energy
Segment 会社区分。Enterprise(大企業)/SMB(中小企業)/Strategic(戦略?)の3パターン。 SMB
Product 製品。SaaS内の各サービス名。 Marketing Suite
License ライセンス。発注・製品に紐づくキー。 16GRM07R1K
Sales 売上高。単位は恐らくUSD。 261.96
Quantity 量。 2
Discount 値引。単位は恐らくUSD。 0
Profit 利益。単位は恐らくUSD。 41.9136

Exercise 2 - 月間売上高を視覚化

1)画面左のフィールドリストで、SalesとOrder Dateを選択する。

2)X軸のOrder Dateラベルの横にある矢印をクリックし、集計:月を選択する。すると月別の売上の合計値が折れ線グラフになって表示されます。

f:id:se_o_chan:20210824153132j:plain

Exercise 3 - 折れ線グラフに予測を追加

1)グラフ右上のメニューから3点リーダ(…)をクリックし「予測を追加」を選択する。

2)(オプション)予測を追加/編集するとき、過去6点に対する予測も追加できる。これで実績と過去6か月に対する予測値がどのくらい近いかをチェックできる。

f:id:se_o_chan:20210824155022j:plain

Exercise 4 - 売上高を前年比で視覚化

1)画面左上の「+追加」ボタンをクリックし「ビジュアルを追加」を選択する。

2)画面左下のビジュアルタイプで「主要業務指標(KPI)」を選択する。

3)フィールドリストで、SalesとOrder Dateを選択する。

4)画面上のフィールドウェルを開き、Order Dateの矢印をクリックして集計:年を選択する。

f:id:se_o_chan:20210824154755j:plain

Exercise 5 - 推奨インサイトを追加

1)画面左の「インサイト」メニューを選択する。

2)推奨インサイト「月から月までの変化」の横にある「+」ボタンを押して、インサイトダッシュボードに追加する。

3)もう一度「インサイト」メニューから、「予測」の横にある「+」ボタンを押して、ダッシュボードに追加する。

4)追加した2つのインサイトのサイズをいい感じに調整する。

f:id:se_o_chan:20210824155957j:plain

Exercise 6 - 産業別売上高を視覚化

1)画面左上の「+追加」ボタンをクリックし「ビジュアルを追加」を選択する。

2)画面左下のビジュアルタイプで「ドーナツグラフ」を選択する。

3)フィールドリストで、SalesとIndustryを選択する。

f:id:se_o_chan:20210824160432j:plain

Exercise 6a - 産業から企業名へのドリルダウンを追加

1)フィールドリストから、画面上部のフィールドウェル内のIndustryの下にCustomerをドラッグする。

2)ドーナツグラフのいずれかの産業を右クリックすると「Customerまでドリルダウン」が表示されるので、それをクリックするとその産業内の企業別売上高が表示される。

f:id:se_o_chan:20210824161433p:plain

Exercise 6b - データラベルを追加

1)ドーナツグラフ右上の歯車マークをクリックし「ビジュアルのフォーマット」を開く

2)データラベルセクションを開き、「メトリクスを表示」にチェックを入れる

f:id:se_o_chan:20210824161958j:plain

Exercise 7 - ピボットテーブルを追加

1)画面左上の「+追加」ボタンをクリックし「ビジュアルを追加」を選択する。

2)画面左下のビジュアルタイプで「ピボットテーブル」を選択する。

3)フィールドリストから、Sales、Region、SubRegionを選択する。

4)フィールドリストからフィールドウェルの列にOrder Dateをドラッグする。

5)Order Dateの集計を「年」に変更する。

6)Regionヘッダーをクリックし「すべて折りたたむ」を選択する。

f:id:se_o_chan:20210824162818j:plain

Exercise 7a -ピボットテーブルを成形

1)ピボットテーブル右上の歯車マークをクリックし「ビジュアルのフォーマット」を開く

2)「スタイル」セクションを開き「1つのメトリクスを非表示」にチェックを入れる。すると各列のSalesヘッダーが取り除かれる。

3)「小計」セクションを開き「行の小計を表示」にチェックを入れる。

Exercise 8 - フィルターコントロールを追加

1)画面左の「フィルター」メニューを選択する。

2)「Create One」をクリックし、Segmentフィールドを選ぶ。

3)Segmentフィルタを開き、画面上部のドロップダウンリストから「All applicable visuals」を選択する。するとダッシュボード上の全ビジュアルにフィルタが適用される。

4)三点リーダ(…)をクリックし、「Add to Sheet」を選択する。

5)追加されたフィルターコントールのサイズをいい感じに調整する。

6)フィルターコントールのドロップダウンリストを選ぶと全ビジュアルの値が選択した会社区分(Segment)だけにフィルタされて表示される。

f:id:se_o_chan:20210824163853j:plain

Exercise 9 - フィルターアクションを追加

1)ドーナツグラフを選び、画面左の「アクション」をクリックする。

2)「Filter same-sheet viuals」をクリックする。これは、今選択しているビジュアル(=ドーナツグラフ)をフィルターとして使用し、ダッシュボード上の他の全ビジュアルをフィルターするフィルターアクションを作成するためのショートカットです。

3)ドーナツグラフのいずれかの産業をクリックすると、他のビジュアル全てがクリックした産業だけにフィルタされた表示される。

Exercise 10 - ダッシュボードタイトルを追加

1)画面左上の「+追加」ボタンをクリックし「タイトルを追加」を選択する。

2)任意のタイトルを記入する(ここではSales Overview Dashboardと入力)。

f:id:se_o_chan:20210824164931j:plain

Exercise 11 - ビジュアルの名前を変更

1)折れ線グラフのタイトルをクリックし「Monthly Sales Trend」に変更する。

2)その他のビジュアルタイトルも任意に変更する

Exercise 12 - ダッシュボードを公開する

1)画面右上の「共通」から「ダッシュボードの公開」を選択する。

2)ダッシュボードに名前を付け「ダッシュボードの公開」ボタンをクリックする。

3)次に表示される「ダッシュボードの共有」は閉じる。これは他のユーザやグループに共有したい場合に使用するが、今はスキップする。

おめでとうございます!これで最初のダッシュボードが作成できました!

ダッシュボードを改善する

ここでは、テーマ(全体の色味や間隔)やフォーマット(数値・金額などのデータ型や小数桁の定義)を適用します。

またサンキーダイアグラムや地図などのより高度(?)なビジュアルを追加します。

ダッシュボードの見た目の調整、といった細かい設定に関するワークショップとなっていますので、ここでは割愛します(思いのほか、長い記事になってしまっているので・・・)

このワークショップを実施すると下記のようなダッシュボードが作成できます。

f:id:se_o_chan:20210824172324p:plain

双方向性を追加

Exercise 1 - 分析を複製(オプションだが推奨)

1)前のステップで作成した成果物で、右上の「別名で保存」をクリックし、名前を付けて保存する。

Exercise 2 - カスケードフィルタ

1)どれか一つのビジュアルを選択し、画面左の「フィルタ」メニューをクリックする。

2)Regionをフィルターに追加する。

3)追加したRegionフィルターをクリックし、画面上のドロップダウンリストを「All applicable visuals」に変更する。

4)Region横の三点リーダ(…)をクリックし「シートに追加」を選択する。

5)上記1~4をSubregionに対して繰り返す。

6)RegionとSubregionのフィルターコントロールのサイズ・場所をいい感じに調整する。

7)Regionフィルターコントロールを選択し、右上の歯車アイコンをクリックする。

8)Edit controlのスタイルを「単一選択ドロップダウン」に変更し、「適用」ボタンをクリックする。

f:id:se_o_chan:20210824173731p:plain

9)Subregionフィルターコントールを選択し、右上の歯車アイコンをクリックする。

10)「Show relevant values only」ボタンをクリックし、Region equalsのチェックボックスを選択する。こうするとRegionのフィルターを選択すると、その配下のSubregionだけにフィルターの選択肢が制限される。

f:id:se_o_chan:20210824174031p:plain

Exercise 3 - カスタムセッティング付きのフィルタアクション

1)折れ線グラフを選択し、画面左の「アクション」メニューを選択する。

2)「Filter same-sheet visuals」ボタンをクリックする。

3)折れ線グラフ内のデータポイント(=折れ線の上の点)をクリックする。

4)アクションメニューの「アクション 1」横の矢印から「編集」をクリックする。

5)Target visualsでSelect visualsを選択し、”前期比”と”予測”と”インサイト”(ダッシュボード上のテキスト部分)のチェックを外す。これでチェックを外した3つはフィルターのターゲットから外れ、予測値の月や前期が無い月のデータポイントをクリックしても表示が崩れなくなる。

f:id:se_o_chan:20210824175955p:plain

Exercise 4 - 別シートにドリルダウンするナビゲーションアクション

1)画面左の「パラメータ」メニューを選択する。

2)Industryと名前を付けて「作成」ボタンをクリックする。

3)ポップアップ画面でCustom actionsを選択(または画面左の「アクション」メニューを選択)

4)ドーナツグラフを選択する。

5)新しいアクションを追加するために、画面上の「+」ボタンをクリックする。

6)Action nameを「See orders from «Industry» customers」にする。ここで «Industry»の部分は手入力するのではなく、Action name横の三点リーダ(…)から選ぶほうがよい。これはグラフ内で選択した値によって表示が変わる変数を意味する。

f:id:se_o_chan:20210824181118p:plain

7)Action typeを「Navigation action」にする。

8)Targat sheetを「Details」にする(「ダッシュボードを改善する」ワークショップで作成しているシートです)。

9)Prametersセクション横の「+」ボタンをクリックし、industryを選択する。

10)2つ目のドロップダウンで「Field: Industry」を選び「追加」をクリックする。

11)「保存」をクリックする。これでドーナツグラフで選択した産業(Industry)がindustryパラメータにセットされるナビゲーションアクションが追加された。試しにドーナツグラフで右クリックしてみると「See Order from Finance customers」の選択肢が表示されるはず。ただし、ドリルダウン定義はまだ未定義。

f:id:se_o_chan:20210824182046p:plain

12)Detailsシートのテーブルを選択して画面左の「フィルタ」メニューをクリックする。「Create one...」をクリックし、Industryを選ぶ。

13)Industryフィルタ名をクリックし、フィルタタイプを「カスタムフィルタ」にする。

14)「パラメータを使用」チェックを入れ、次に表示されるポップアップは「はい」を選択する。今Detailsシートには1つのビジュアル(=テーブル)しかないのでどっちを選んでも変わらないが、一般にシートにある全ビジュアルにこのフィルタを適用したいなら「はい」を選ぶ。

f:id:se_o_chan:20210824182551p:plain

15)Select a parameterドロップダウンで、industryパラメータを選ぶ。

16)「適用」ボタンを押す。

17)これでパラメータとDetailsシートのドロップダウンが紐づいたので、Summaryシートに戻って、ドーナツグラフを右クリックし、ナビゲーションアクションを選んでみる。するとDetailsシートに遷移し、選んだ産業(Industry)にフィルタされたテーブルが表示される。

Exercise 5 - URLアクション

1)Detailsシートのテーブルを選択する。

2)画面左の「アクション」メニューをクリックする。

3)「Define a custom action」ボタンをクリックする。

4)Action nameに「Search for «{Contact Name}»」と入力する。ここで«{Contact Name}»は手入力するのではなく、Action name横の三点リーダ(…)から選ぶほうがよい。

5)Activationで、Menu optionを選ぶ。

6)Action typeで、URL Actionを選ぶ。

7)URLで、「https://google.com/search?q=«{Contact Name}»」と入力する。«{Contact Name}»はやはり手入力ではなく三点リーダから選択する。

8)「保存」をクリックする。

9)テーブルを右クリックすると選択した行のContact Nameに対して「Search for xxx」の選択肢が表示される。これをクリックするとContact NameでGoogle検索した画面が表示される。

f:id:se_o_chan:20210824184101p:plain

(オプション)この手順でURLを「mailto:«{Contact Name}»?subject=Inquiry on order «{Order ID}»&body=Can you check out the details on order number «{Order ID}» please?」とすると、宛先・件名・本文がプリセットされたメール送信画面が表示される。

Exercise 6 - ダッシュボードを公開する

1)画面右上の「共通」から「ダッシュボードの公開」を選択する。

2)ダッシュボードに名前を付け「ダッシュボードの公開」ボタンをクリックする。

3)次に表示される「ダッシュボードの共有」は閉じる。

Exercise 7 - アラートを追加する

1)(編集画面ではなく)ダッシュボードで、Summaryシートの前年比のKPIビジュアルを選択する。

2)右メニューのベルアイコンを選択し、閾値として100,000を入力する。

f:id:se_o_chan:20210824184946p:plain

3)「保存」ボタンをクリックする。

4)今のデータセットCSVアップロードしたものなので値は静的だが、データベースをデータソースにした場合など値がリフレッシュするたびに閾値を超えていないかチェックし、超えた場合にユーザメールアドレスにメール通知させることができる。

データセット

Exercise 1 - 会計年度データセットの追加

1)QuickSightホームページにて画面左の「データセット」を選択する。

2)画面右上の「新しいデータセット」をクリックする。

3)S3オプションを選択する。

4)次の内容を入力し、「接続」ボタンをクリック。

  ・データソース名:Fiscal Calender

  ・マニフェストファイルのアップロード:s3://ee-assets-prod-us-east-1/modules/337d5d05acc64a6fa37bcba6b921071c/v1/FiscalCalendarManifest.json

5)データセットオプションメニューは×ボタンを押して閉じる。

参考:マニフェストファイルとは

S3のファイルをデータソースにするには、データファイルそのもののURI/URLを直接QuickSightで指定するのではなく、データファイルのURLやフォーマット(CSV、XLSXなど)を定義したJSONフォーマットの「マニフェストファイル」のURIを指定します。

マニフェストファイルのフォーマットや内容は、AWSと言えばおなじみのClassmethodsさんのブログが詳しいです(2016年と少し古いですが内容は分かるかと)。

dev.classmethod.jp

Exercise 2 - SaaS-Salesデータセットの複製

1)データセットビューから、SaaS-Salesデータセットをクリックする。

2)データセットメニューから「データセットの複製」を選択する。

3)名前の末尾に「-Duplicate」のサフィックスを追記し「複製」ボタンをクリックする。

4)新しいデータセットのメニューから「データセットの辺裕」を選択する。

5)Country、City、Regionのデータタイプが「地理空間」の国、市、州/地域になっているので、文字列に変更する。

f:id:se_o_chan:20210824213124p:plain

6)画面右上の「保存」ボタンをクリックする。

Exercise 3 - データを結合したデータソースを作る

1)Exercise 2の続きで「SaaS-Sales-Duplicate」データセットで、画面右上の「データを追加」ボタンをクリックする。

2)「データソースの切り替え」からFiscal Calender Sourceを選択する。

3)テーブルでFiscal Calenderにチェックを入れ「選択」ボタンをクリックする。

4)結合条件を定義するために画面上の赤い点をクリックする。

5)結合句として、両テーブルとも「Date Key」を選択し、結合タイプに「Left(Outer Join)」を選択する。

6)「適用」ボタンを押し、画面上部の「保存」ボタンをクリックする。これでDate keyをキーにSaaS-SalesとFiscal Calenderの両テーブルが結合したテーブルがデータセットとして定義される。

f:id:se_o_chan:20210824214405p:plain

Exercise 5 - フィルターを追加する

1)画面左の「フィルタ」セクションから「フィルタを追加」を選択する。

2)フィールドリストからIndustryを選択する。

3)Industryという名前のフィルタをクリックして広げる。

4)モードを「次と等しい」から「次と等しくない」に変更する。

5)下のListボックスに「Misc」という文字列を入力する。

6)「適用」ボタンを押し、画面上部の「保存」ボタンをクリックする。これでデータセットからIndustry=Miscのデータは除外される。

Exercise 6 - 計算フィールドを追加する

1)画面左の「フィールド」セクションから「計算フィールドの追加」を選択する。

2)次の名前と計算を入力し「保存」ボタンをクリックする。

  ・名前:Cost

  ・計算:{Sales} - {Profit}

3)遷移したデータセット画面で「保存」ボタンをクリックする。

f:id:se_o_chan:20210824215623p:plain

Exercise 7 - 除外されたフィールド

1)画面左の「フィールド」セクションからDate、Date Key、Date Key[Fiscal Calendar Source]をクリックして選択する。

2)選択したフィールドの縦三点リーダをクリックし「フィールドを除外」を選択する。これで分析のフィールドリストからこれらのフィールドが除外されます。

3)データセット名をSaaS-Sales-Childに変えて「保存」ボタンをクリックする。

Exercise 9 - フィールドフォルダを作成する

1)画面左の「フィールド」セクションからOrder Date、Fiscal Year、Fiscal Quarter、Day Of Weekフィールドをクリックして選択する。

2)選択したフィールドの縦三点リーダをクリックし「フォルダに追加」を選択する。

3)フォルダ名に「Date」と入力し「適用」ボタンをクリックする。

4)「保存」ボタンをクリックし、QuickSightロゴをクリックしてデータセット画面を抜ける。

Exercise 10 - (オプション)分析のデータセットを入れ替える

1)分析画面で最初に作ったダッシュボードをクリックする。

2)「別名で保存」をクリックし、名前に「SaaS-Sales Analysis - Dataset Swap」を記入して「保存」ボタンをクリックする。

3)画面左のdataset横にある鉛筆アイコンをクリックする。

4)SaaS-Salesデータセット横の三点リーダから「置き換え」をクリックする。

5)置換データセットとしてSaaS-Sales-Childを選択し「選択」ボタンをクリックする。

6)「フィールドマッピングの更新」をクリックする。

7)更新前後のフィールドをマッピングさせることができるが、ここでは変更せずに「確認」ボタンをクリックする。

f:id:se_o_chan:20210824221534p:plain

8)「×」ボタンでデータセットメニューを閉じる。

Exercise 11 - 分析からクイックチェックする

1)フィールドリストにDateフォルダがあり、Date keyフィールドがないことを確認する。

2)Sheet 1タブ横の「+」をクリックして、新しいシートを追加する。

3)ビジュアルタイプから「テーブル」を選択する。

4)左のフィールドリストからFiscal Year、Cost、Profit、Salesをクリックする。

5)Cost計算フィールドの値が正しい(=Sales - Profit)ことを確認する。

計算

Exercise 1 - 新しい分析を作成する

1)QuickSightホームページの画面左から「データセット」を選択する。

2)SaaS-Salesデータセットをクリックする。

3)「分析の作成」ボタンをクリックする。

4)画面上部の分析名に「- Advanced Calculations」サフィックスを追記する。

Exercise 2 -コスト計算を追加する

1)画面左上の「+追加」から「計算フィールドを追加」を選択する。

2)次の内容を記入し、「保存」ボタンをクリックする。

  ・名前:Row Cost

  ・計算:{Sales} - {Profit}

3)上の手順を繰り返してもう一つ計算フィールドを追記する。

  ・名前:Aggregate Cost

  ・計算:sum({Sales}) - sum({Profit})

Exercise 4 -計算を比較するためにテーブルを追加する

1)シート名を「Row vs Aggregate Calcs」に変更する。

2)データタイプから「テーブル」を選択する。

3)画面左のフィールドリストからSegment、Profit、Sales、Row Cost、Aggregate Costをクリックする。

4)テーブルを選択し、右に表示される三点リーダから「合計を表示」する。

5)Costは加算できる値であるため、行レベルで計算したものを集計しても、Segment全体で計算しても同じ値になる。このような場合は行レベルで計算フィールドを定義してデータセットが更新されるたびに再計算するようにするのがよい。

f:id:se_o_chan:20210824223724p:plain

Exercise 4 - 利益率計算を追加する

1)画面左上の「+追加」から「計算フィールドを追加」を選択する。

2)次の内容を記入し、「保存」ボタンをクリックする。

  ・名前:Row Profit Margin (Incorrect)

  ・計算:{Profit} / {Sales}

3)追加された計算フィールド横の三点リーダから表示形式をパーセントにする。

4)上の手順を繰り返してもう一つ計算フィールドを追記する。

  ・名前:Aggregate Profit Margin

  ・計算:sum({Profit}) / sum({Sales})

Exercise 5 - テーブルに利益率計算を追加する

1)テーブルビジュアルをクリックする。

2)画面左のフィールドメニューから、Row Profit Ratio (Incorrect)とAggregate Profit Ratioをクリックする。

3)割合は足すことができない値のため、行レベルで導いた利益率をSegmentで集計するとおかしな値になる。このような値は計算フィールドでsumを使って定義する。

f:id:se_o_chan:20210824224841p:plain

データセキュリティ

Exercise 1 - RLSデータセットを作る

1)ここからサンプルRLSルールファイルをダウンロードする。

2)Excelファイルを開き、現在のUserArnに置き換える。フォーマットはarn:aws:quicksight:<IdentityRegion>:<AccountNumber>:user/<Namespace>/<UserName>

  ・IdentityRegion:東京ならap-northeast-1

  ・AccountNumber:12桁数字のAWSアカウントID

  ・Namespace:default

  ・UserName:現在ログインしているユーザ名

3)QuickSightホームページから「データセット」を選択し「新しいデータセット」ボタンをクリックする。

4)「ファイルのアップロード」を選び、2)で修正したExcelファイルを選ぶ。

5)Sheet1を選び「データの編集/プレビュー」ボタンをクリックする。

6)「保存」ボタンをクリックし、遷移した先でQuickSightロゴをクリックしてデータセット編集モードを抜ける。

f:id:se_o_chan:20210824230613p:plain

Exercise 2 - QuickSightリーダを作る

1)画面右上のユーザ名をクリックする。

2)「QuickSightの管理」をクリックする。

3)CLS-Test-Readerというユーザを探してなければ後続ステップへ。

4)「ユーザーを招待」ボタンをクリックする。

5)メールアドレスボックスにCLS-Test-Readerと入力し、+ボタンをクリックする。

6)Eメールアドレスに自分のアドレスを入力し、「招待」ボタンをクリックする。

7)×ボタンを祖いてポップアップを閉じ、QuickSightロゴをクリックして管理パネルを抜ける。

Exercise 3 - SaaS-Sales分析をチェックする

1)分析画面で、SaaS-Sales分析(最初に作成したダッシュボード)を開く。

2)Segmentフィルタコントロールをチェックする。Enterprise、SMB、Strategicの3つの値があるはず。

3)下のピボットテーブルには地域としてAMER、APJ、EMEAがあるはず。

4)ドーナツグラフでは産業(Industry)列があるはず。

5)QuickSightロゴをクリックして分析モードを抜ける。

Exercise 4 - 行レベルセキュリティを適用する

1)データセット画面で、SaaS-Salesデータセットをクリックする。

2)「行レベルのセキュリティ」ボタンをクリックする。

f:id:se_o_chan:20210824231843p:plain

3)SaaS-Sales-RLSデータセットを選択し「データセットの適用」ボタンをクリックする。

4)確認画面で「データセットの適用」ボタンをもう一度クリックする。

5)×ボタンで画面を閉じる。

Exercise 5 - 列レベルセキュリティを適用する

1)SaaS-Salesデータセットを選択し「列レベルのセキュリティ」ボタンをクリックする。

2)制限する列にIndustory列を選択し「次へ」ボタンをクリックする。

3)制限された列にアクセスできるユーザーにCLS-Test-Readerを選択する。

f:id:se_o_chan:20210824232611p:plain

4)「適用」ボタンをクリックする。

5)「データセットに戻る」をクリックする。

Exercise 6 - SaaS-Sales分析をチェックする

1)分析画面で、SaaS-Sales分析(最初に作成したダッシュボード)を開く。

2)Segmentフィルタコントロールをチェックする。Enterprise、Strategicの2つの値がしか選べない(RLSルールでSMBを除外したから)。

3)下のピボットテーブルには地域としてAMER、EMEAしかない(RLSルールでAPJを除外したから)。

4)ドーナツグラフは表示されない(列レベルセキュリティでIndustryにはCLS-Test-Readerユーザしか参照できないようにしたから)

f:id:se_o_chan:20210824234529p:plain

Exercise 7 - 行レベルセキュリティを削除する

1)データセット画面で、SaaS-Salesデータセットをクリックする。

2)「行レベルのセキュリティ」ボタンをクリックする。

3)「データセットの削除」ボタンをクリックする。

4)確認画面でもう一度「データセットの削除」ボタンをクリックする。

5)×ボタンで画面を閉じる。

Exercise 8 - 列レベルセキュリティを削除する

1)データセットメニューで「列レベルのセキュリティ」ボタンをクリックする。

2)Industry列を選択して「次へ」ボタンをクリックする。

3)CLS-Test-Readerに対して×ボタンをクリックする。

4)「適用」ボタンをクリックする。

5)「データセットに戻る」を押して、CLS設定画面を閉じる。

機械学習

Exercise 1 - 分析を複製(オプションだが推奨)

1)最初に作成した成果物で、右上の「別名で保存」をクリックし、名前を付けて保存する。

Exercise 2 - 説明のフォーマットをカスタマイズ

1)「前期比」インサイトを選択し三点リーダを使って「説明をカスタマイズ」を選択する。

2)”decreased by ”の文言をハイライトさせ、文字色を赤に変更する。

3)"increased by"の文言をハイライトさせ、文字色を緑に変更する。

4)説明文の末尾にある2つの変数をクリックし、太文字にする。

5)「保存」をクリックする。

f:id:se_o_chan:20210826171809p:plain

Exercise 3 - 予測計算を追加する

1)「予測」インサイトを選択し三点リーダを使って「説明をカスタマイズ」を選択する。

2)画面右の「+計算の追加」を選択し、計算タイプに「予測」を選択して「次へ」をクリックする。

3)14から6に「期間を進める」の値を変更し、「追加」をクリックする。

4)説明文全体をコピーして、今の説明文の下にペーストする。

5)「ForecastInsight.metricValue.formattedValue」変数をクリックし、「ForecastInsight2.metricValue.formattedValue」に名前を変更して「保存」する。

6)「ForecastInsight.timeValue.formattedValue」変数でも同じことを繰り返す。

7)画面右の「計算」メニューから「ForecastInsight」横の鉛筆アイコンをクリックする。

8)14から12に「期間を進める」の値を変更し、「保存」をクリックする。

9)説明文1行目の最初から"be"までを削除し、"12-month forecast : "に書き換える。

10)説明文2行目の最初から"be"までを削除し、"6-month forecast : "に書き換える。

11)右上の「保存」をクリックする。

f:id:se_o_chan:20210826173528p:plain

Exercise 4 - (オプション)パラメータを使って12か月か6か月先の予測を表示を制御

1)画面左のメニューから「パラメータ」より「作成」をクリックする。

2)パラメータ名をPeriodsにし、静的デフォルト値に"6-month"を入力し「作成」をクリックする。

3)次の画面でControlを選択し、表示名にPeriods to forecastと入力する。

4)スタイルをドロップダウンに変更する。

5)「特定の値を選択」に6-month、12-monthと入力する(1行に1つの値で)。

6)「パラメータにデフォルト値が設定されている場合、コントロール値から[すべてを選択]オプションを非表示にします」のチェックボックスにチェックを入れて「適用」ボタンをクリックする。

f:id:se_o_chan:20210826181348p:plain

7)「予測」インサイトを選択し三点リーダを使って「説明をカスタマイズ」を選択する。

8)説明冒頭の"12-month"の文字列を削除し、画面右のパラメータメニューからPeriodsパラメータを挿入する。

9)ForecastInsight.metricsValue.formattedValues変数をクリックし、画面左上の「コードを挿入」から「インラインIF」を選択する。

10)コードを入力...のボックスで、まずPeriodsパラメータを挿入し、その後ろに='12-month'と入力する。

11)画面右の計算メニューからForecastInsight2→metricValueを開き、ForecastInsight.metricValue.formattedValue変数の後ろにformattedValueを挿入する。

12)挿入した変数をクリックし、「コードを挿入」から「インラインIF」を選択する。

13)コードを入力...のボックスで、まずPeriodsパラメータを挿入し、その後ろに='6-month'と入力する。

14)1行目の説明文末尾のForecastInsight.timeValue.formattedValue変数にも8)~13)と同じ操作を行う。

15)2行目の説明部を削除する。

16)右上の「保存」ボタンをクリックする。

f:id:se_o_chan:20210826183131p:plain

Exercise 5 - 異常値検出のインサイトを追加する

1)画面左の「+追加」から「インサイトの追加」を選択。

2)計算タイプに「異常値検出」を選択し「追加」ボタンをクリックする。

3)追加したインサイトに、フィールドリストからOrder Date、Sales、Customerを選択する。

4)画面上のフィールドウェルを開き、Order Dateの集計を月に変更。

5)追加したインサイト上の「今すぐ始める」ボタンをクリックする。

6)上位の寄与要因にCountry、Contact Name、Productを選択する。

7)「保存」ボタンをクリックする。

8)インサイト上の「今すぐ実行」ボタンをクリックする。計算に数分かかるので一旦Exercise 6に進む・・・

Exercise 6 - 時間トレンド内の寄与分

1)折れ線グラフで、2020年11月のポイントをクリックし「Salesへの寄与率を分析」をクリックする。これにより値が急増・急減した原因を調べることができる。

2)上位の寄与要員にCountry、Customer、Productを選択し「分析」ボタンをクリックする。

3)国、企業、商品別に寄与率がグラフになって表示される。これで本来想定では売上の○%に寄与すると予想されるところ、当月は△%の寄与だった、などの洞察が得られる。

f:id:se_o_chan:20210826184547p:plain

Exercise 7 - 異常値検出内の寄与分

1)Exercise 5で追加した異常値検出インサイトの結果が表示されているはずなので、その中のExplorer anomaliesをクリックする。

2)Costomer : Amazonの時間トレンドの右のほうに異常値があるので右クリックし、「Salesへの寄与率を分析」をクリックする。

3)「分析」ボタンをクリックする。Exercise 6のように異常値の原因がなんだったかを寄与率を基に分析できる。

f:id:se_o_chan:20210826190953p:plain

まとめ

とても長くなってしまいましたが、ダッシュボードの作り方から、データセット・計算フィールドの定義、行・列レベルでのアクセス権制御、機械学習による洞察までを学習しました。

これでインプットデータから好きなダッシュボードを作成することができるようになったはずです。

次は「Admin Workshop(管理者ワークショップ)」で、ユーザ・グループの定義やアクセス権の設定などを学んでいきたいと思います。

ブログランキング・にほんブログ村へにほんブログ村PVアクセスランキング にほんブログ村