LoginSignup
3
3

More than 3 years have passed since last update.

初学者のためのAWS入門(5)-S3+Athena+QuickSightでデータ分析結果の可視化

Last updated at Posted at 2019-09-30

ここでは、S3 + Athena + QuickSight を連携してデータ分析、データの可視化にトライしてみます。
データ分析がしたくてもデータ分析環境がない、データ分析環境が欲しくても初期費用が高い、
サーバー構築に時間がかかる場合は、この手順で今すぐデータ分析を始められます。

初学者のためのAWS入門シリーズ

1. データの流れと設計

1-1. サービス概要

AWS上のシステム構成及びデータの流れは下記の図のようになる。
aws_data_flow01.png

Athena

  • S3のデータに対して標準SQLで分析が出来るサービス。
  • Athenaはサーバーレスなのでサーバーの構築や管理が不要。
    → metadata管理も Athena がやってくれる。
  • Athenaの詳細については Athena公式ページ をご参照ください。

QuickSight

  • AWSが提供しているBIサービス。
  • データの可視化はもちろんアドホックな分析などで活用できる。
  • QuickSightの詳細については QuickSight公式ページ をご参照ください。

1-2. Athena の料金詳細

  • スキャンされたバイト数に対して課金される。→データ 1 TB あたり 5.00USD
  • バイト数はメガバイト単位で切り上げられ、10 MB 未満のクエリは 10 MB と計算される。
  • CREATE TABLE、ALTER TABLE、DROP TABLE などの Data Definition Language (DDL) ステートメント、パーティションを管理するステートメント、または正常に実行されなかったクエリに対しては課金されない。
  • キャンセルされたクエリは、スキャンされたデータ量に基づいて課金される。
  • データのパーティション化により、Athena でスキャンするデータ量を制限できる。  → これにより、コストの削減とパフォーマンスの向上につながる。
  • クエリごとのスキャンされたデータ量は、Athena コンソールで確認できる。

1-3. 利用データ

鎌倉市 職員の給与データ
https://www.city.kamakura.kanagawa.jp/opendata/kyuuyo.html

H26〜H29年度の給与データを利用することにします。
https://github.com/mshinoda88/aws/tree/master/athena

csvファイルには職員一人ひとりに対する年間人件費情報が記録されている。
salary01.png

1-4. S3にデータ配置

S3バケット「bkt-sampledomain01」にデータを配置します。
<ファイル名>
bkt-sampledomain01/year=26/h26_salary.csv
bkt-sampledomain01/year=27/h27_salary.csv
bkt-sampledomain01/year=28/h28_salary.csv
bkt-sampledomain01/year=29/h29_salary.csv

s3_02.png

次に、Athena設定、QuickSight設定の順で見て行きます。

2. Athena設定

AWSメニュー画面でAthenaを選択します。
athena_01.png

「Databases」を選択すると、データベース一覧が確認出来ます。
athena_02.png

「Add table」でテーブル作成する。
datadase: 「sample01」
table: 「tbl_sample01」
S3: 「s3://bkt-sampledomain01/」

athena_04.png

CSVを選択。
athena_05.png

「Bulk add columns」を押下。

athena_06.png

「no int,class string,salary_month int,fuyou_month int,area_month int,house_month int,commune_month int,sp_allowance int,over_allowance int,holiday_allowance int,yakin_allowance int,manager_allowance int,day_night_allowance int,manager_sp_allowance int,salarly_month int,kimatsu_lastyear int,kinben_lastyear int,salarly_year int」
を入力する。
athena_09.png

パーティションとして、「year」カラムを記入。
athena_10.png

Partition化されているTableの場合は「MSCK REPAIR TABLE」コマンドでPartition情報をロードする必要がある。
「MSCK REPAIR TABLE tbl_sample01」
athena_12.png

これでAthenaの設定は完了。では、Select文でデータを確認してみます。
「select * from tbl_sample01」

3. QuickSight でデータの可視化

TODO

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3