月ごとに更新される郵便番号の差分をとってみた

月ごとに更新される郵便番号の差分をとってみた
■ 店頭より得で、予約しやすいオンラインショップ。
 → ドコモオンラインショップ
 → auオンラインショップ
 → ソフトバンクオンラインショップ

最新のiPhoneを得して乗り換えるなら、最大6万円のキャッシュバックがある
→ SMARTPHONE STORE

郵便番号データの更新目的

私のメイン業務の1つである月次処理作業の中に「郵便番号のデータ更新」作業があります。

郵便番号データの郵便番号、住所(土地名、企業名)は日々更新されています。そのため、弊社では、日本の郵便局が月1で更新しているデータを元に、最新データを反映できるよう成形して更新しています。

これは、弊社のサービスの1つであるFA(フォームアシスト)の郵便番号周りの制御を支える重要な作業なのです。

郵便番号データの差分を取る理由

なぜ郵便番号データの差分を取る必要があるのか?

理由は簡単です。中身が何なのか、更新される内容は何なのかを全く把握せずにサービスの重要な部分を更新するのはあまりにも危険すぎるからです。というか、やっちゃダメですよね。

ちなみに、日本郵便 郵便局でも郵便番号データの差分データをダウンロードできます。

ですので、それを参照して最新データをダウンロードしたらそのデータを全部更新したらいいんじゃないの?と当初この作業をするときに疑問を抱いていました。

と言うのも・・・

image05

実は、手作業で全ての差分をチェックしていました。

全国一括データは12万件もあるため、まず999ファイルに分割してから各ファイルごとの差分をとっていました。それでも、正直この作業、骨が折れる作業でした。

ですが、この差分をとっていてわかったことは、郵便局で出している差分データはごく一部で、追加データ・廃止データの2種類な上に注意書きにもあるように「更新内容によっては中身がない場合がある」・・・まさに中身が抜けだらけ。

これではこのデータは使いようがないということで、毎月どうにかこの差分を出す作業を少しでも楽できないか考えながら差分を出していました。(さまざまな差分ツールの導入も試みましたが、結局出た差分をまとめたり、細かい差分は人力目視grepだから確認漏れも心配…)

限界は突然に…

なんだかんだ言いながらも、手作業でできてしまっていた差分作成ですが、突如としてその作業は困難を極めました。

差分ツールで差分があるファイル番号を抽出したところ、800ファイル以上に差分がでました。

image03

差分表を作ってくれるツールをつくろう。

最近はまってるシェルスクリプトで作ってみた

まず軽く差分をとってみることに。

どう頑張っても余計な差分もとれてきてしまう。

考えなおして、「そもそも順番の入れ替えは必要ないんだからdiff取る前にsortして順番入れ替えを潰せばいいんじゃん!」ということで、こんな感じにおさまりました。

まとめ

思ったよりも差分を取るのに苦労しました。とにかくいらない差分が取れる取れる。

そぎ落としすぎると今度は大事な情報もなくなっちゃうし、diffはまだまだ奥が深いです。
自分が勉強不足なだけかもしれないですけどね…精進精進。

もっとうまいやり方がないか模索中です。

でも、このツールのお陰で、今まで全作業工程合わせて10時間程度かかっていた作業時間が1時間未満でさくっとできるようになりました!

こんな形で出力されるファイルが出来ました。
もう少しわかりやすいように時間ができ次第修正していこうと思います。

これをきっかけにもっと色々ツールも作っていきたいなぁと思います。

それでは、また!

■最新のiPhoneの購入・機種変更なら店頭より得で、予約しやすいオンラインショップ。
機種の頭金や使わないオプションパックをつけて年間何万円も損していませんか?
オンラインショップなら故障のサポートもしっかりしていて最低限の費用。待たされることもありません。
 → ドコモオンラインショップ
 → auオンラインショップ
 → ソフトバンクオンラインショップ

最新のiPhoneを得して乗り換えるなら、最大6万円のキャッシュバックがある
→ SMARTPHONE STORE
がお得です。