前々回の記事 および 前回の記事 で、Scrapy で Webスクレイピングしたデータを CSVファイルとして S3 に格納し、Amazon Athena のテーブルを作成して CSV のデータを流し込むところまでを実施しました。
今回は、作成した Amazon Athena のテーブルをデータソースとして Amazon QuickSight のデータ分析用のストアに取り込み、ダッシュボードからグラフを作成してみたいと思います。
<過去記事>
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 のデータ分析用のストアに読み込んで可視化するところを試してみます。
QuickSight を使ってみる
QuickSight アカウントの作成
AWS Management Consle のアカウントとは別に、QuickSight アカウントを作成する必要があります。
QuickSight のアカウントについては「Amazon QuickSight: ユーザー管理やパーミッション設定について | Developers.IO」が詳しいです。
AWS Management Console にログインし、サービス一覧から「QuickSight」を選択します。
https://quicksight.aws.amazon.com/
にリダイレクトされますが、まだサインアップしていないので入れません。
ここでログアウトせずに続けて「Sign up」することで、現在 AWS Management Console にログインしているアカウントを QuickSight アカウントとして紐付けることができるようです。
「Standard edition」を選択します。最初の1ユーザーは無料です。
以下の内容を設定します。
QuickSight account name | 任意(全体でユニークになるように) |
Notification email address | 任意 |
QuickSight capacity region | US East (N.Virginia) |
またここで、QuickSight からアクセスするリソースに対してパーミッションを与える必要があります。 *2
今回の例では、
- Amazon Athena
- Amazon S3(Athena のテーブルが参照している S3 バケット)
を許可する必要があります。
ということで、「Choose S3 buckets」をクリックします。
Athena のテーブルが参照している S3 バケット(今回の例では「marketstat」)を指定します。
アカウント作成を完了します。
グラフ(Visual)の作成
QuickSight のトップ画面はこんな感じです。
「New Analysis」をクリック。
「New data set」をクリックします。
取り込むデータセットとして、「Athena」を選択します。
データソース名を任意に設定します。
データを取り込む対象となる Athena のデータベースとテーブルを選択します。
インポート先に「SPICE」を選択して、「Visualize」をクリックします。
データの取り込みが完了すると、「Import complete」と表示されます。
ここから、グラフを作成していきます。
まず、グラフのタイプを選んで、X軸とY軸を選択します。
X軸をソートするには、以下のように操作します。
次に、フィルタ(データの抽出条件)を設定します。
左上の「Add」をクリックすると、グラフを「Visual」として保存することができます。
また、複数のグラフをダッシュボードとして保存して他のユーザと共有することができるほか、複数のグラフをプレゼン資料のようにまとめたものを「Story」として保存することもできます。
まとめ
今回、Scrapy → Amazon S3 → Amazon Athena → Amazon QuickSight という流れで AWS のいろいろなサービスを使って Webスクレイピングしたデータを可視化して分析するまでを、「AWS でお手軽データ分析」と称して三回に分けて記事にまとめてみました。
途中何度か軽く躓きかけたものの、全体的にはすんなりとクラウドベースでデータ分析する入り口までたどり着くことができました。
今後は、スクレイピングしたデータやダウンロードした公式のデータを使って、いろいろな分析を実際にしていきたいと思います。
参考
「Amazon QuickSightを触ってみる」シリーズも分かりやすかったです。
*1:利用できるグラフの種類については、「利用可能な表示形式一覧 #quicksight #01 | Amazon QuickSight Advent Calendar 2016 | Developers.IO」を参照
*2:ここでパーミッションを設定しなくても、後で[Manage QuickSight] > [Account settings]から設定を変更することもできます。