S3のログをAmazon Athenaを経由してRedashで分析/可視化

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に接続。

% docker-compose -f docker-compose.production.yml run --rm server create_db
% docker-compose -f docker-compose.production.yml up
  • AWSのコンソールからAWSQuicksightAthenaAccessAmazonS3ReadOnlyAccessの権限を持つユーザーを作る
  • 作ったユーザーのaws_access_key_idaws_secret_access_keyをRedashのデータソースの設定に入力

社内だとkibanaで可視化することも多いけど、様々なデータソースをダッシュボードで一元的に可視化したい場合はRedashもなかなかよいですね。

まとめ

Athenaのことを特に意識せずにS3にログを置いておけば分析できて気持ちとしてはとっかかりやすいですね。色々感覚が掴めてきたらRedshiftとかも試してみたい(RedashのデータソースとしてRedshiftも選択できるようだ)。

10年戦えるデータ分析入門 SQLを武器にデータ活用時代を生き抜く (Informatics &IDEA)

10年戦えるデータ分析入門 SQLを武器にデータ活用時代を生き抜く (Informatics &IDEA)