Amazon Redshift編~S3ホスティングからログを取り込んでみよう!~

Pocket

こんにちは!中の人です。

今回も前回のレシピに引き続き、Amazon Redshift編です!
前回は『Amazon Redshift編~データをインポートしてみよう!(エラー編)~』ということで、データインポートの際のエラーについてお話したかと思います。

今回のレシピでは『Amazon Redshift編~S3ホスティングからログを取り込んでみよう!~』と題して、S3の便利な「Webホスティング」機能を使って、溜めたログをRedshiftに取り込む方法について説明いたします。

なお、今回お話するものはビッグデータ入門として、簡単に始めることが出来る構成となっています。

それでは実際に、作業をおこなっていきましょう!

事前準備

1. まず、以前のレシピ『Amazon Route53編~サイトを公開してみよう!パート②~』を参照してS3 Webホスティングの設定を行います。

2. 手順3のログに関する設定の部分で「Enable」の項目にチェックをし、ターゲットのバケット名を指定して下さい。

3. 続けて、手順4も参照していただいて設定をおこないます。
※手順5以降は省略して問題ありません。

4. サイトに何度かアクセスを行い、指定バケットにログが溜まっていることを確認して下さい。
Management Console上で以下のようになっていると成功です!

2013062401
※リアルタイムには反映されないので、ご注意下さい。

テーブルの作成


ここからはRedshiftに対する操作です。

5. SQL Workbenchを起動させ、Redshiftに対して接続します。

6. アクセスログ 保存用にテーブルを作成します。

※ サンプルのため、サイズは大きめに作っております。
※ 正しいログフォーマットは以下で確認することができます。
http://docs.aws.amazon.com/AmazonS3/latest/dev/LogFormat.html

データのインポート

7. 次に実際に、データのインポートをおこなってみます。

2013062402

○ポイント
・S3からデータをインポートする時と同じ方法でインポートすることが出来る
・ログフォーマットに合わせたdemiliter/quoteを設定をすることで、正しく取り込むことが出来る

データの確認


8. データの確認として以下を実行してみます。

2013062403

該当のアクセスログのIPが44個あり、各IPの接続回数が確認できます。

いかがでしたでしょうか?
このようにAWSのサービスと組み合わせることで、簡単にRedshiftを使ってみることが出来ます。

次回は『Amazon Redshift編~プログラムからRedshiftを操作しよう!(ODBC接続)~』と題して、PHPを利用してRedshiftにODBC接続して操作する方法を紹介していきたいと思いますので、お楽しみに!