Amazon Athena編~DB作成を試してみる~

AthenaではDB作成にDDL文かウィザードの2通りの方法があります。

今回はS3のアクセスログをウィザードで作成してみたいと思います。

1.Databasesの設定

Databasesの設定を行っていきます。

「Catalog Manager」から「Add table」をクリックします。

次の画面で「Create new database」を選択して名称を入力します。

また、S3のアクセスログがあるバケットを指定します。

2.Data Formatの設定

次にデータのフォーマットの設定を行います。

「Data Format」には「Apache Web Logs」を指定してRegexをS3のアクセスログ用に変更します。

※S3のアクセスログのフォーマットに関してはこちらをご参照ください。

3.Columnsの設定

続いてカラムの設定をしていきます。

Regexで分けたようにカラムを追加していきます。

今回はパーティションを設定していないのでそのまま「Create table」をクリックします。

「Results」で結果を確認出来ます。

4.結果確認

それでは実際にテーブルを確認してみます。

データベースを今回作成したものにして以下を実行してみます。

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の構築・保守でお困りの方は こちら

この記事を書いた人

aws-recipe-user