aws athenaの使い方
概要
- AWSが提供するサーバレスのOLAP Database
- S3にログデータが置いてあることを期待する
- ログデータは正規表現でパースできることを期待する
- S3のデータのスキャン量に応じて課金される
aws athena home
セットアップ
- aws athenaのホームにアクセスし、リージョンを指定のリージョンに合わせる
[設定]
->[管理]
->[設定を管理]
から結果の出力先のS3バケットを指定する[エディタ]
からデータベース
を指定してクエリを編集して実行する- すでにデータベースが設定されていると仮定している
big queryとの違い
- S3からrow指向でデータを読み込むのでbig queryに比べてあんまり効率が良くない
- プレビュー機能がない
新規でデータベースを追加する
クエリエディタからデータベースを追加する
CREATE DATABASE mydatabase;
テーブルを追加する
CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs (
`Date` DATE,
Time STRING,
Location STRING,
Bytes INT,
RequestIP STRING,
Method STRING,
Host STRING,
Uri STRING,
Status INT,
Referrer STRING,
os STRING,
Browser STRING,
BrowserVersion STRING
) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$"
) LOCATION 's3://(s3のパス)/cloudfront/plaintext/';