AthenaではDB作成にDDL文かウィザードの2通りの方法があります。
今回はS3のアクセスログをウィザードで作成してみたいと思います。
1.Databasesの設定
Databasesの設定を行っていきます。
「Catalog Manager」から「Add table」をクリックします。
次の画面で「Create new database」を選択して名称を入力します。
また、S3のアクセスログがあるバケットを指定します。
次にデータのフォーマットの設定を行います。
「Data Format」には「Apache Web Logs」を指定してRegexをS3のアクセスログ用に変更します。
※S3のアクセスログのフォーマットに関してはこちらをご参照ください。
続いてカラムの設定をしていきます。
Regexで分けたようにカラムを追加していきます。
今回はパーティションを設定していないのでそのまま「Create table」をクリックします。
「Results」で結果を確認出来ます。
それでは実際にテーブルを確認してみます。
データベースを今回作成したものにして以下を実行してみます。
1SELECT * FROM access_logs limit 10;
最後に今回のDBのDDL文を載せておきます。
1CREATE EXTERNAL TABLE IF NOT EXISTS test.access_logs (2 `BucketOwner` string,3 `Bucket` string,4 `RequestDateTime` string,5 `RemoteIP` string,6 `Requester` string,7 `RequestID` string,8 `Operation` string,9 `Key` string,10 `RequestURI_operation` string,11 `RequestURI_key` string,12 `RequestURI_httpProtoversion` string,13 `HTTPstatus` string,14 `ErrorCode` string,15 `BytesSent` string,16 `ObjectSize` string,17 `TotalTime` string,18 `TurnAroundTime` string,19 `Referrer` string,20 `UserAgent` string,21 `VersionId` string 22)23ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'24WITH SERDEPROPERTIES (25 'serialization.format' = '1',2627 'input.regex' = '([^ ]*) ([^ ]*) \\[(.*?)\\] ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) \\\"([^ ]*) ([^ ]*) (- |[^ ]*)\\\" (-|[0-9]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\") ([^ ]*)2829いかがでしたでしょうか?3031次回もお楽しみに!!!3233次回記事:[Amazon Athena編~QuickSightからの接続を試してみる~](/archives/9658)3435Amazon Web Serviceの構築・保守でお困りの方は[こちら](https://kc-cloud.jp/) 3637) LOCATION 's3://バケット名/';いかがでしたでしょうか?
次回もお楽しみに!!!
次回記事: Amazon Athena編~QuickSightからの接続を試してみる~
Amazon Web Serviceの構築・保守でお困りの方は こちら