**
1. http://www.post.japanpost.jp/zipcode/dl/oogaki.html
上記URLより「01hokkai.lzh」~「10hokkai.lzh」をダウンロードし、解凍します。
2. 回答したファイルをテキストエディタで開き、UTF-8N
のフォーマットで保存します。
※日本語を扱う場合は必ずUTF-8Nで保存する必要があります。
- 以下のコマンドをTSV形式で出力します。
1「mysql –u [ユーザ名] -p -N –e "SELECT * FROM postcode" [データベース名] > /tmp/mysql.tsv」2※Nオプションで項目名が表示されなくなります。- 出力したデータをRedshiftと同じリージョンの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);
データのインポート
**
1copy postcode from 's3://[s3-backet名]/ ' CREDENTIALS 'aws_access_key_id=[your access key];aws_secret_access_key=[your secret access key]' delimiter '\t';
○ 前回との変更点
| copy [インポート先のtable] from ‘[インポートするバケット名 または ディレクトリ名]’ | インポートするバケット名/ディレクトリ名とデータ保存先のテーブルを指定します。 |
参照先をファイルからディレクトリに変更することで、ディレクトリにあるファイル一覧を読み取りインポートされます。
注意点としては、すべてのファイルがインポートできるフォーマットであるということです。
**
データの確認
**
- データの確認として以下を実行してみます。
select * from postcode where state_kanji = ‘栃木県’
栃木県の登録データ 1831件がヒットしたことが確認できます。
いかがでしたでしょうか?
このようにバケット名・ディレクトリを指定することで、配下にあるファイルを一括して読み込むことができます。
例えば、複数あるアクセスログを一括してRedshiftにインポートするときなどに活用できます。
次回は「Amazon Redshift編~圧縮ファイルをインポートしてみよう!~」というタイトルで全国の郵便番号データを圧縮してインポートする方法を紹介します。
お楽しみに!