Athena
S3のデータ(csvなど)に対してSQLを発行できる
Amazon Athena とは - Amazon Athena
基本操作
S3に検索対象のCSVを準備
$ aws s3 ls s3://sample-bucket/test_csv/
2025-06-24 19:03:58 397 sample.csv
ID,NAME,EMAIL,BIRTHDAY
1,Alice,alice@example.com,1990-01-01
2,Bob,bob@example.com,1985-02-15
3,Charlie,charlie@example.com,1980-03-20
:
クエリ結果の保存先設定
マネコンのAthena画面から、クエリエディタを開く
初回は最初のクエリを実行する前に、Amazon S3 でクエリ結果の場所を設定する必要があります。
と出るので、設定を編集を押下。
任意のS3バケットを指定し、保存する。
DBの作成
デフォルトで"default"というデータベースがあるので今回はそれを使用。
手動作成する場合は下記のように作成
CREATE DATABASE sample_db;
テーブルの作成
サンプル
CREATE EXTERNAL TABLE sample_users (
id INT,
name STRING,
email STRING,
birthday TIMESTAMP
)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
"field.delim" = ",",
"serialization.format" = ",",
"timestamp.formats" = "yyyy-MM-dd"
)
LOCATION 's3://sample-bucket/test_csv/'
TBLPROPERTIES (
"skip.header.line.count" = "1",
"has_encrypted_data" = "false"
);
パラメータ | 説明 |
---|---|
LOCATION | 対象のcsvの格納場所を指定する。csv自体のパスではなく、ディレクトリを指定。 |
skip.header.line.count | csvにヘッダがある場合に使用。スキップする行を指定する。 |
クエリの実行
SELECT * FROM sample_users;
SELECT * FROM sample_users WHERE birthday BETWEEN DATE '1990-01-01' AND DATE '1995-12-31';