Amazon Redshift編~MySQLのデータをインポートしてみよう!~

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

前回に引き続き、今回もAmazon Redshift編です!

前回のレシピでは「 Amazon Redshift編~CSVファイルのデータをインポートしてみよう!~ 」と題して、S3からのデータのインポート方法についてお話したかと思います。

今回は「Amazon Redshift編~MySQLのデータをインポートしてみよう!~」ということで、MySQLからのデータのインポート方法について説明致します。

サンプルは前回と同様に郵便番号のデータを利用します。

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

**

事前準備

**

  1. MySQLに対して郵便局データを登録します。

前回のCreate文でテーブル作成することができ、phpMyAdmin等からインポートすることができます。

※データが大きいので、php.iniの設定に注意してください。

  1. 以下のコマンドでTSV形式で出力します。
1mysql –u [ユーザ名] -p -N –e "SELECT * FROM postcode" [データベース名] > /tmp/mysql.tsv

※Nオプションを付けないと1行目に項目名が追加されエラーになるのでご注意を。

  1. 出力したデータをS3に対してアップロードします。

**

テーブルの作成

**

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

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

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

**

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

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

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

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);

※ なお、前回作成済みであれば、この手順では以下のようにいたします。

01: 「Database Explorer 2」のテーブル”postcode”上で右クリックし、「Delete data…」を選択します。

2013060701

02: 削除確認の画面が表示されますので、「Delete」をクリックします。

2013060702

データのインポート

1copy postcode from 's3://[s3-backet名]/mysql.tsv' CREDENTIALS 'aws_access_key_id=[your access key];aws_secret_access_key=[your secret access key]' delimiter '\t';

○前回との変更点

delimiter ‘\t’ タブ区切りなので’\t’を指定します。
REMOVEQUOTES 囲み文字は無いので、今回は不要です。

データの確認

2013060703

前回同様、件数も含めて同じデータが反映されていることが確認できます。

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

MySQLからのデータのインポートも上記のように簡単におこなうことができますので是非、試してみてください!

次回は「Amazon Redshift編~複数ファイルを一括インポートしてみよう!~」と題して、複数ファイルを一括でインポートする方法を紹介させていただきます。

お楽しみに!

この記事を書いた人

aws-recipe-user