CData Sync で日本郵政提供の郵便番号データをDB に取り込む


今回は、日本郵便株式会社で公開されている郵便番号と住所を対応させる郵便番号データを、CData Sync を使ってデータベースへ取り込む方法を紹介します。

1. 郵便番号データとは

日本郵政株式会社で公開されている全国の郵便番号と住所の一覧データです。
郵便番号データダウンロード - 日本郵便 (japanpost.jp)

2. KEN_ALL.ZIP とは

KEN_ALL.ZIP は、以前から公開されていた郵便番号データです。

CSV 形式ではあるものの、38文字を超えると複数行に分割されるなど、データ形式が複雑なため、そのままでは読み込むことができませんでした。

読み仮名データの促音・拗音を小書きで表記するもの - zip圧縮形式 日本郵便 (japanpost.jp)

3. utf_all.csvとは

utf_all.csv は、2023年6月より提供が開始された新しい形式の郵便番号データです。

以前のKEN_ALL.ZIP との主な違いは以下のようになっており、特に複数行に分割されていたレコードが1行になったことで、簡単に読み込めるようになりました。

  • 38文字を超えると分割されていたレコードを1つに統合
  • 読み仮名が半角カナから全角カナへ変更(※)
  • 文字コードがShift-JIS から国際規格であるUTF-8 へと変更(※)
  • 町域名に含まれていた補足説明の一部をフラグに整理
    ※ 政府CIO ポータル標準ガイドライン群の「文字環境導入実践ガイドブック」に準拠

4. CData Sync でutf_all.csv をSQL Server に取り込む

今回は、utf_all.csv をSQL Server に取り込んでみます。

郵便番号データは毎月更新されていますが、CData Sync のスケジュール機能を使用することで、自動的に最新の郵便番号データをSQL Server に同期することができるようになります。

4.1 コネクションの作成

1) utf_all.csv はCSV 形式で提供されているので、CSV コネクターを追加します。

CSV コネクターは、ローカルにあるファイルだけでなく、HTTP(HTTPS) やAmazon S3 、Box といった、様々な場所にあるCSV データにアクセスすることができます。

2) 接続先とオプションを設定します。

項目 設定値
Connection Type HTTPS
URI ダウンロード先のURL
https://www.post.japanpost.jp/zipcode/utf_all.csv
Include Column Headers
(ヘッダー列の有無)
False
今回使用するCSVファイルにはヘッダー列がないのでFalse を指定します。
Type Detection Scheme
(スキーマの型判定)
None
手動で作成したスキーマ定義ファイル(*.rsd) を使用するので判定は「なし」に設定します。

4.2 スキーマ定義ファイルの作成

utf_all.csv はヘッダー項目がないためそのまま読み込むとカラム名がCol0, Col1 のようになります。

そこで、下記に記載されているファイル形式を参考にスキーマ定義ファイルを作成します。

郵便番号データの説明 - 日本郵便 (japanpost.jp)

~rsdファイル~


  
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  

  

  
    
      
    
  

下記のようにconnections フォルダー内にあるコネクション名のフォルダーにrsdファイルをコピーします。
フォルダーは接続設定のLocation プロパティで指定することもできます。

4.3 実行

ジョブを実行するとutf_all.csv のデータがSQL Server へ同期されます。

注意点として、郵便番号データにはキー項目がないためジョブオプションの「テーブルデータを削除」を有効にして、差分更新ではなく洗い替えで更新を行う必要があります。

5. まとめ

新しい郵便番号データが提供されるようになったことで、CData Sync を使って簡単に最新の郵便番号データをデータベースなどに同期することができるようになりました。

データのフォーマットも、依然と比べてかなり整理されて使いやすくなっていますので、ぜひこの仕組みを活用してみてください。

トライアル・お問い合わせ

関連コンテンツ