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

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

前回までのレシピでは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で保存する必要があります。

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

**

**

テーブルの作成

  1. ここからはRedshiftに対する操作です。
  2. SQL Workbenchを起動させ、Redshiftに対して接続します。

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

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

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

  1. 郵便番号情報用にテーブルを作成します。

※エラーを出さないために、サイズは大きめにしております。

1create table postcode(2	dancode varchar(10),3	oldpost varchar(5),4	newpost varchar(7),5	state_kana varchar(200),6	city_kana varchar(200),7	area_kana varchar(200),8	state_kanji varchar(200),9	city_kanji varchar(200),10	area_kanji varchar(200),11	etc01 boolean ,12	etc02 boolean ,13	etc03 boolean ,14	etc04 boolean ,15	etc05 smallint,16	etc06 smallint17);
20130604_01_01
****

データのインポート

1copy postcode from 's3://[s3-backet名]/01HOKKAI.CSV' CREDENTIALS 'aws_access_key_id=[your access key];aws_secret_access_key=[your secret access key]' delimiter ',' REMOVEQUOTES;
20130604_01_02
  1. 上のコマンドをより詳しく説明すると、以下のようになります。
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
  1. SQL workbenchのタブを「Database Explorer 2」に切り替えます。

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

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

皆さんがアクセスできる大きなデータということで思いついたのが郵便番号情報でしたので、郵便番号を参考にさせて頂きました。

是非、お手元にあるデータでも試していただければと思います。

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

お楽しみに!

この記事を書いた人

aws-recipe-user