Amazon Redshift編~CSVファイルのデータをインポートしてみよう!~

Pocket

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

前回までのレシピではAmazon OpsWorks編ということでお話していたかと思いますが、今回からはAmazon Redshift編ということでRedshiftの使い方を紹介していきます。

今回は、「Amazon Redshift編~CSVファイルのデータをインポートしてみよう!~」と題して、まずはS3からのデータのインポート方法について説明いたします。

Redshiftでは、以下の様なデータのインポート方式に対応しています。

・ S3からCSV/TSVファイルのインポート
・ DynamoDBからの挿入

サンプルとして郵便局サイトから北海道の住所情報をダウロードして利用してみましょう。
http://www.post.japanpost.jp/zipcode/dl/oogaki.html

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

事前準備

 
1. 上記URLより「01hokkai.lzh」をダウンロードし、解凍します。
解凍したファイルをテキストエディタで開き、UTF-8Nのフォーマットで保存します。

※日本語を扱う場合は必ずUTF-8Nで保存する必要があります。

2. 1で作成した01HOKKAI.CSVをRedshiftと同じリージョンのS3に対してアップロードします。

テーブルの作成

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

4. SQL Workbenchを起動させ、Redshiftに対して接続します。
※SQL Workbenchのインストールおよび接続については、以下の「Redshiftをはじめてみよう!」のレシピを参照してください。

■ Amazon Redshift編~Redshiftをはじめてみよう!パート①~
■ Amazon Redshift編~Redshiftをはじめてみよう!パート③~

5. 郵便番号情報用にテーブルを作成します。
※エラーを出さないために、サイズは大きめにしております。

20130604_01_01

データのインポート

20130604_01_02

6. 上のコマンドをより詳しく説明すると、以下のようになります。

copy [インポート先のtable] from ‘[インポートするCSV]’ インポートするCSVとデータ保存先のテーブルを指定します。
CREDENTIALS ‘aws_access_key_id=[your access key];aws_secret_access_key=[your secret access key]’ AWSの証明書キーを入力します。
delimiter ‘,’ 区切り文字の指定です。TSVの場合は’\t’を指定します。
REMOVEQUOTES 今回のCSVデータは各カラムが”(ダブルクオーテーション)で囲まれているので、取り除く指定をします。

 

データの確認

 
20130604_01_03

7. SQL workbenchのタブを「Database Explorer 2」に切り替えます。
左下のテーブル一覧から「postcode」を選択し、右側より「Data」を参照すると、キャプチャのようにデータがインポートされていることが確認できます。

いかがでしたでしょうか?

皆さんがアクセスできる大きなデータということで思いついたのが郵便番号情報でしたので、郵便番号を参考にさせて頂きました。
是非、お手元にあるデータでも試していただければと思います。

次回は「Amazon Redshift編~MySQLのデータをインポートしてみよう!~」と題して、MySQLからのデータのインポート方法について紹介させていただきます。
お楽しみに!