akiyoko blog

akiyoko の IT技術系ブログです

ゼロからはじめる Amazon QuickSight(AWS でお手軽データ分析 その3/3)

前々回の記事 および 前回の記事 で、Scrapy で Webスクレイピングしたデータを CSVファイルとして S3 に格納し、Amazon Athena のテーブルを作成して CSV のデータを流し込むところまでを実施しました。

今回は、作成した Amazon Athena のテーブルをデータソースとして Amazon QuickSight のデータ分析用のストアに取り込み、ダッシュボードからグラフを作成してみたいと思います。


<過去記事>
akiyoko.hatenablog.jp

akiyoko.hatenablog.jp


 

Amazon QuickSight とは

Amazon QuickSight については、昨年末の AWS Black Belt Online Seminar の資料に詳しく説明がされています。


要約すると、Amazon QuickSight は

  • すぐに利用可能(セットアップ不要)
  • フルマネージド
  • 多様なデータソースが使える
  • 低コスト
  • 結果のグラフはスマホにも最適化

という特徴を持つクラウドベースの BI ツールです。Redshift、RDS、Aurora、Athena、S3 などを始めとする AWS 上のデータセットをデータソースとして取り込んで、ダッシュボード上で様々なグラフ(*1)でデータを可視化することができます。CSVファイルや Excelファイルを QuickSight に直接アップロードしたり、オンプレミスサーバ上のデータベースをデータソースとして利用することもできるようですが、AWS のプロダクトと連携して利用するのがメインのユースケースとなるでしょう。

なお現時点では、N. Virginia、Oregon、Ireland の 3リージョンでしか利用できないようです。

「SPICE」というキーワードがちょくちょく出てきますが、独自に開発したインメモリデータストア用の超高速エンジンで、「Super-fast, Parallel, In-Memory Calculation Engine」の略だそうです。使用料は、その SPICEの容量(最初の1GBは無料)とユーザ数(最初の1ユーザは無料)に対して課金されます。お試しで使うのであれば、無料の範囲で十分使えそうです。

(参考)Amazon QuickSight | Editions


概要レベルの資料では、
Amazon QuickSight:【概要】Amazon QuickSightとは何か? | Developers.IO
も有用です。

あと、全然読み切れてませんが、クラスメソッドの しんや 氏の「Amazon QuickSight (全部俺) Advent Calendar 2016 - Qiita」なんていう資料もありました。猛者です。




 

目的

「AWS でお手軽データ分析」の全体像は、下図のように Scrapy → Amazon S3 → Amazon Athena → Amazon QuickSight という流れで AWS のいろいろなサービスを使ってデータ分析をすることを想定していますが、最終回である今回は、作成した Amazon Athena のテーブルを Amazon QuickSight のデータ分析用のストアに読み込んで可視化するところを試してみます。

f:id:akiyoko:20170311224916p:plain



 

QuickSight を使ってみる

QuickSight アカウントの作成

AWS Management Consle のアカウントとは別に、QuickSight アカウントを作成する必要があります。

QuickSight のアカウントについては「Amazon QuickSight: ユーザー管理やパーミッション設定について | Developers.IO」が詳しいです。


AWS Management Console にログインし、サービス一覧から「QuickSight」を選択します。
f:id:akiyoko:20170312115142p:plain

https://quicksight.aws.amazon.com/
にリダイレクトされますが、まだサインアップしていないので入れません。
ここでログアウトせずに続けて「Sign up」することで、現在 AWS Management Console にログインしているアカウントを QuickSight アカウントとして紐付けることができるようです。
f:id:akiyoko:20170312115205p:plain

「Standard edition」を選択します。最初の1ユーザーは無料です。
f:id:akiyoko:20170312115223p:plain

以下の内容を設定します。

QuickSight account name 任意(全体でユニークになるように)
Notification email address 任意
QuickSight capacity region US East (N.Virginia)


またここで、QuickSight からアクセスするリソースに対してパーミッションを与える必要があります。 *2

今回の例では、

  • Amazon Athena
  • Amazon S3(Athena のテーブルが参照している S3 バケット)

を許可する必要があります。

ということで、「Choose S3 buckets」をクリックします。
f:id:akiyoko:20170312115242p:plain

Athena のテーブルが参照している S3 バケット(今回の例では「marketstat」)を指定します。
f:id:akiyoko:20170312115306p:plain

アカウント作成を完了します。
f:id:akiyoko:20170312115324p:plain

f:id:akiyoko:20170312115347p:plain

グラフ(Visual)の作成

QuickSight のトップ画面はこんな感じです。

「New Analysis」をクリック。
f:id:akiyoko:20170312115409p:plain

「New data set」をクリックします。
f:id:akiyoko:20170312115429p:plain

取り込むデータセットとして、「Athena」を選択します。
f:id:akiyoko:20170312115505p:plain

データソース名を任意に設定します。
f:id:akiyoko:20170312115540p:plain

データを取り込む対象となる Athena のデータベースとテーブルを選択します。
f:id:akiyoko:20170312115611p:plain

インポート先に「SPICE」を選択して、「Visualize」をクリックします。
f:id:akiyoko:20170312115647p:plain

データの取り込みが完了すると、「Import complete」と表示されます。
f:id:akiyoko:20170312115748p:plain

ここから、グラフを作成していきます。
まず、グラフのタイプを選んで、X軸とY軸を選択します。
f:id:akiyoko:20170312115822p:plain

X軸をソートするには、以下のように操作します。
f:id:akiyoko:20170312115859p:plain

次に、フィルタ(データの抽出条件)を設定します。
f:id:akiyoko:20170312115934p:plain

左上の「Add」をクリックすると、グラフを「Visual」として保存することができます。
f:id:akiyoko:20170312120048p:plain


また、複数のグラフをダッシュボードとして保存して他のユーザと共有することができるほか、複数のグラフをプレゼン資料のようにまとめたものを「Story」として保存することもできます。



  

まとめ

今回、Scrapy → Amazon S3 → Amazon Athena → Amazon QuickSight という流れで AWS のいろいろなサービスを使って Webスクレイピングしたデータを可視化して分析するまでを、「AWS でお手軽データ分析」と称して三回に分けて記事にまとめてみました。

f:id:akiyoko:20170311224916p:plain


途中何度か軽く躓きかけたものの、全体的にはすんなりとクラウドベースでデータ分析する入り口までたどり着くことができました。
今後は、スクレイピングしたデータやダウンロードした公式のデータを使って、いろいろな分析を実際にしていきたいと思います。

*1:利用できるグラフの種類については、「利用可能な表示形式一覧 #quicksight #01 | Amazon QuickSight Advent Calendar 2016 | Developers.IO」を参照

*2:ここでパーミッションを設定しなくても、後で[Manage QuickSight] > [Account settings]から設定を変更することもできます。