最強のKEN_ALL.csv

正規化されてそうで正規化されてないちょっと正規化されたブログ

KEN_ALL.csv のどこがだめなのかまとめてみる

KEN_ALL.csv はだめだとよく言われます。では何がだめなのでしょうか。 Blogや Twitterなどでよく語られているので、その内容を紹介してみたいと思います。

Blog 「ぐるぐる〜 」

まず、かなり網羅的にまとまっていたのが、下記の ブログ「ぐるぐる〜 」のエントリです。

bleis-tift.hatenablog.com

項目としては、下記のようなものが上げられています。あるあるですね…

  1. 単一レコードの複数行分割
  2. 「以下に記載がない場合」、「次のビルを除く」を含むレコード
  3. 「〜」で範囲を示すレコード
  4. 「〜」や「以上」、「以下」を含むレコード
  5. 「以外」「を除く」を含むレコード
  6. 「その他」を含むレコード
  7. 「全域」を含むレコード
  8. 「(丁目)」、「(郡)」、「(番地)」などを含むレコード
  9. 「を含む」を含むレコード
  10. 「地階・階層不明」を含むレコード
  11. 複雑な、としか言い表せないレコード
  12. その他

一番くそだと思うのが、 1. 単一レコードの複数行分割 これに尽きます。 CSVの概念を覆してきます。固定長 CSVかよ。 これがある時点で、CSVを1行ずつ処理して… というのができなくなります。

Blog 「my-hobby」

こちらは、実際に zipnavi というサービスを作るにあたって直面した問題についてまとめられてます。

Blog「Studio JamPack」

郵便番号データについて思ったこと – Studio JamPack

大口事業所はまた別データになってるんですよね(JIGYOSYO.CSV

郵便番号DBを利用するときに考慮すると幸せになれること – Studio JamPack

  • 1つのクエリに2つ以上のレコードが返ってくる
  • 町域がやたら長い(括弧表記されている)
  • 廃止レコードが複数ある
    • 8191131 福岡県
  • 同じ町域でも郵便番号が異なる
    • 8190166 福岡県 福岡市西区 横浜(1~2丁目)
    • 8190366 福岡県 福岡市西区 横浜(3丁目)
  • やたら大量の件数を返す

サイト 「Qiita」

エンジニアのノウハウがつまったサイト Qiita でも時々話題になっています。

qiita.com qiita.com

感想

本当につらいですね。日本郵便さん、元データ、なんとかならないものでしょうか。

世の中には同じような苦労をしてきている方がたくさんいらっしゃいます。その方々の先人の成果がOSSソフトウェアや、サービスとして存在していますので、次にはそのあたりも紹介してみたいと思います。

また、そもそもこの KEN_ALL.csvを使わなければこのような苦労はないわけで、KEN_ALL.csv 以外に、信頼できるデータがないものか、調査してみたいと思います。

KEN_ALL.csv の魅力について

こんにちは、ken_all です。

今日は KEN_ALL.csv の魅力についてお話したいと思います。

KEN_ALL.csv とは

まず、エンジニアであればKEN_ALL.csv をご存知ない方はいらっしゃらないとは思うのですが、簡単に説明しておくと、KEN_ALL.csv は、日本郵便が無料で提供している、日本の郵便番号と住所を網羅したcsvデータになります。

郵便番号データダウンロード - 日本郵便

WEBサービスの住所を入力するフォームで、郵便番号を入力すると住所の欄が自動補填されたり、正しくない郵便番号かどうかをチェックされたりすると思うのですが、その処理を作る際に必要となるデータが KEN_ALL.csv になります。

KEN_ALL.csv のメリット

KEN_ALL.csvは下記のような特徴を持ち、誰でも簡単に使うことができるため、多くのエンジニアが便利に使っています。

  1. 日本全国の郵便番号を網羅
  2. 住所変更に追従
  3. 無料
  4. WEBサイトから誰でもダウンロード可能

KEN_ALL.csv のデメリット

次に KEN_ALL.csv のデメリットですが、

  1. csv の仕様のくせがすごい

これに尽きます。詳しくは他のサイトなどで探せばたくさん出きますので、詳細は他サイトを参照してください。

KEN_ALL.csv の魅力

上記のとおり、KEN_ALL.csv はみんなが欲しがる人気者なのですが、ちょっとドジっ子な性格なのです。

なので、みなさんがちょっと手をかけてみたくなり、いい感じにしてあげることで、「ワシが育てた」感を出すことができる最高の素材であると言えます。

Twitterなどでも、その性格にとりつかれた人々が定期的に話題にして盛り上がっています。

FizzBuzz 問題どや顔で解くひとなんかよりも "KEN_ALL.csv" をうまく扱える人の方が社会的貢献度高い - Togetterまとめ

みなさん KEN_ALL.csv 大好きですね!