DWHやログ基盤を色々試してみたいけど、Amazon Redshiftよりお手軽に始められるツールとしてAmazon Athenaを教えてもらいました。S3にtsv/csv/json...を置いておくと、SQLで分析できるってやつです。BigQueryと同じくクエリ単位で課金だけど、ログはS3に上がっていることが多いので、お手軽に試せそうということで試しました。N番煎じ感しかないやつです。やったこと。
- S3に分析したい対象のデータを置く
- 大きいデータなら日毎などに分けておくとあとのパーティションで役に立つ
- Athenaでtsv/csvのカラムの型を定義しておく
- インデックスの指定などは特にない
- パーティション分けてなければ基本的にフルスキャン
- 数万件くらいの簡単なSQLで手元だと一瞬で返ってくるようなクエリでも3秒くらい時間かかるときもある
- S3のバケットなめるからそういうものっぽい
- 参考
可視化
データの傾向を見たいときはSELECTした結果だけじゃなくて、それをグラフにしたいことも多いです。可視化ツールへの繋ぎ込みを調べてみたところ、AWSスタックだとQuickSightというのがいい感じのBIツールのようです。
が、個人で試したいのでもっとお手軽なものはないかなと思って調べたところ、RedashのデータソースでAthenaにも対応しているということが分かりました。docker-composeで手元のMacからAthenaに接続。
- 依存が多いので、初回のbuildは結構時間がかかる
- 最近は異なるデータソース間でjoinができるようになってるっぽい
- 設定を永続化したい場合にはpostgresのvolumeのpathを設定する必要あり
- localhost:80にアクセス
% docker-compose -f docker-compose.production.yml run --rm server create_db % docker-compose -f docker-compose.production.yml up
- AWSのコンソールから
AWSQuicksightAthenaAccess
とAmazonS3ReadOnlyAccess
の権限を持つユーザーを作る - 作ったユーザーの
aws_access_key_id
とaws_secret_access_key
をRedashのデータソースの設定に入力
社内だとkibanaで可視化することも多いけど、様々なデータソースをダッシュボードで一元的に可視化したい場合はRedashもなかなかよいですね。
まとめ
Athenaのことを特に意識せずにS3にログを置いておけば分析できて気持ちとしてはとっかかりやすいですね。色々感覚が掴めてきたらRedshiftとかも試してみたい(RedashのデータソースとしてRedshiftも選択できるようだ)。
10年戦えるデータ分析入門 SQLを武器にデータ活用時代を生き抜く (Informatics &IDEA)
- 作者: 青木峰郎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/06/30
- メディア: 単行本
- この商品を含むブログ (6件) を見る