1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AthenaのQueryをMysqlと同じ感覚で使ったときにひっかかった部分まとめ

Last updated at Posted at 2021-02-26

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

参考 AWS公式 Athenaでアクセスログを分析する

まとめ

簡単に触った範囲でこれくらい出てきました。
詰まるとうっとうしいですが、それ以上にAthenaが便利なことには間違いないです。
ほかにもコツなどあればぜひ教えてください。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?