AWS Athena は便利
AWS Athenaを使うと、S3内のファイルに対してSQLクエリを実行できます。環境構築やデータの前加工が不要で、簡単に利用できます。非常に便利です。
S3にログが自動で溜まるようにするのがベストですが、とりあえずログファイルをS3にアップロードするだけでも十分使えます。
普段は開発を行っていて、Athenaはちょこちょこ触るくらいであれば10$/月もいかないかと思います。安い。
Athenaでできることと使い方のイメージをつかみやすい記事
→Amazon Athenaではじめるログ分析入門
Mysql感覚でAthenaを触るとできないこと、違和感が起こる部分
普段はMysqlを使ってます。
AthenaのQuery環境はMysqlと完全に同じではないので、できないことがあります。
2021/02/26 時点での状況です。
文字列の囲みはシングルクォーテーション
ダブルクォーテーションで囲むとエラーが出ます。
SELECT * FROM alb_logs WHERE elb_name LIKE "%elb%";
↓ エラー
SYNTAX_ERROR: line 1:57: Column '%elb%' cannot be resolved
コメントアウトは /* */ のみ
「#」や、ましてや「//」は使えません。
↓ エラー
line 3:1: extraneous input '#' expecting {<eof>, ~
CREATE TABLE 時にカラム数があわないと、SELECT 時にエラーが出る
CREATE TABLE したときにエラーを出しておいてほしいもんですが、実際はSELECTをかけるまでエラーは出ません。
ログをカラムにばらす際の正規表現の指定がうまくいってなくて詰まりました。
↓ エラー
HIVE_CURSOR_ERROR: Number of matching groups doesn't match the number of columns
まとめ
簡単に触った範囲でこれくらい出てきました。
詰まるとうっとうしいですが、それ以上にAthenaが便利なことには間違いないです。
ほかにもコツなどあればぜひ教えてください。