Amazon Athena
Amazon Athena は、
S3上にあるファイルに対してSQLを実行して、一覧を取得したり集計したりできるサービス
ファイル形式は .csv
, .tsv
, .json
, 各種ログ出力形式, 等々..
とは言え、任意のcsvやjsonを扱えるわけではない
ファイルは .gz
等で圧縮されていても扱える
Athena メモ
JSON形式ファイルを扱えるといっても、正しい
.json
は扱えない
1行1レコード、改行区切り(末尾カンマNG)
NG1:
json{
'id': 123,
'name': 'foo'
}
NG2:
json[
{'id': 123, 'name': 'foo'},
{'id': 124, 'name': 'bar'}
]
NG3:
json[{'id': 123, 'name': 'foo'}, {'id': 124, 'name': 'bar'}]
OK
json{'id': 123, 'name': 'foo'}
{'id': 124, 'name': 'bar'}
S3パスを書くとき、ファイル名の途中まででマッチングはしない
実際のファイルパス /prefix_yyyymmdd.json
NG: LOCATION 's3://bucketname/preefix_'
NG: LOCATION 's3://bucketname/preefix_*'
OK: LOCATION 's3://bucketname/'
ただし全ファイルを見ようとする
実際のファイルパス /prefix/prefix_yyyymmdd.json
OK: LOCATION 's3://bucketname/prefix/'
このため、データの種類ごとにkey(ディレクトリ)分けて置いた方がよさそう