aws athenaの使い方

athenaとは: S3でのデータの直接分析を簡易化

AWSのヘッダから[サービス]を押下すると、AWSのサービス一覧が表示されます。
athenaは分析の下にあります。

以下のように記載があります。petabyteは凄いですね。ペタバイトは1024テラバイト、1兆バイトです。
>Amazon Athena is a fast, cost-effective, interactive query service that makes it easy to analyze petabytes of data in S3 with no data warehouses or clusters to manage.

get startedを押下します。
To query the ELB log files, you need to define a corresponding table in Athena.
ELBに対応するテーブルを定義する必要がある。

database, table nameは適当。
Location of input data setにs3のURLを入れる
s3://athena-examples-us-east-1/path/to/data/

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://athena-examples-myregion/cloudfront/plaintext/';

ELBのログって書いてあるけど、table nameはcloudfrontだ。何故だ??

Amazon Athena(アテナ)

即時にデータのクエリを実行。数秒で結果取得、料金は実行したクエリに対してのみ。
https://aws.amazon.com/jp/athena/

まず読み方がわからない
Athenaでアテナと読む。アセナと間違える。。

aws athenaのチュートリアル
step1 データベースを作成
step2 テーブルを作成
step3 データをクエリする
athenaでcloudfront_logsテーブルを作成したら、このテーブルに対してクエリを実行して、athenaで結果を確認できる

ん? step3が重要か? データベース作成、テーブル作成は普通のRDB操作と何もかわらんぞ。
では、実際にクエリを書いていきましょう。

AWS Athena

Amazon Athena は、標準的な SQL を使用して Amazon S3 のデータを簡単に分析できるインタラクティブなクエリサービス
S3 のデータを指定し、スキーマを定義して、標準的な SQL を使用してデータのクエリを開始するだけ

Examples include CSV, JSON, or columnar data formats such as Apache Parquet and Apache ORC. You can use Athena to run ad-hoc queries using ANSI SQL, without the need to aggregate or load the data into Athena.

([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*):([0-9]*) ([.0-9]*) ([.0-9]*) ([.0-9]*) (-|[0-9]*) (-|[0-9]*) ([-0-9]*) ([-0-9]*) “([^ ]*) ([^ ]*) (- |[^ ]*)” (“[^”]*”) ([A-Z0-9-]+) ([A-Za-z0-9.-]*)$