こんにちは!中の人です。
前回に引き続き、今回もAmazon Redshift編です!
前回のレシピでは「 Amazon Redshift編~CSVファイルのデータをインポートしてみよう!~ 」と題して、S3からのデータのインポート方法についてお話したかと思います。
今回は「Amazon Redshift編~MySQLのデータをインポートしてみよう!~」ということで、MySQLからのデータのインポート方法について説明致します。
サンプルは前回と同様に郵便番号のデータを利用します。
それでは実際に、作業をおこなっていきましょう!
**
事前準備
**
- MySQLに対して郵便局データを登録します。
前回のCreate文でテーブル作成することができ、phpMyAdmin等からインポートすることができます。
※データが大きいので、php.iniの設定に注意してください。
- 以下のコマンドでTSV形式で出力します。
1mysql –u [ユーザ名] -p -N –e "SELECT * FROM postcode" [データベース名] > /tmp/mysql.tsv※Nオプションを付けないと1行目に項目名が追加されエラーになるのでご注意を。
- 出力したデータをS3に対してアップロードします。
**
テーブルの作成
**
- ここからは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…」を選択します。
02: 削除確認の画面が表示されますので、「Delete」をクリックします。
データのインポート
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 | 囲み文字は無いので、今回は不要です。 |
データの確認
前回同様、件数も含めて同じデータが反映されていることが確認できます。
いかがでしたでしょうか?
MySQLからのデータのインポートも上記のように簡単におこなうことができますので是非、試してみてください!
次回は「Amazon Redshift編~複数ファイルを一括インポートしてみよう!~」と題して、複数ファイルを一括でインポートする方法を紹介させていただきます。
お楽しみに!