IPアドレス・ネットマスクの変換・チェック・統合・除外を簡単に。

Google or AdMax Promotion (ipvtop)

「基本3情報」データのMySQLインポート(国税庁法人番号公表サイトデータ)

登記された法人名に対して付与される法人コードは、国税庁のサイトで検索する事ができ、
またWebAPIも公開されている為、誰でもすぐに調べることができます。
都度、法人コードから法人名などを取得する場合にはAPIで十分だと思いますが、
場合によっては自データベースに格納して参照したい場合もあるかもしれません。
ここでは「法人の基本3情報のデータ(法人番号)」のインポート等についてご紹介します。

本記事はデータそのものを提供する趣旨ではありません。
400万レコードを超えるデータですので、各自が取り込むコツをご紹介するものです。
そもそも公式WebAPIがありますので、
事情がない限りは自分でインポートする必要もないはずです。

「基本3情報」データのMySQLインポート・国税庁法人番号公表サイト

プロモーション

Google or AdMax Promotion (ipvpos)

2018/7/8に国税庁法人番号公表サイトでダウンロードができたCSVデータを元にして、
データベースへ全データをインポートして集計した結果が以下のようになりました。

レコード合計が「4,633,737」レコードです。
463万レコードですので、結構なデータ数です。

レンタルサーバーのDBに取り込むのは、
さすがにエラーになっちゃうんでしょ?ってレベルですが、大丈夫取り込めます。
※容量などサーバーの仕様・制限が満たす必要はあり。SSHは不要。(XSERVERで実績)

都道府県
コード
都道府県名 レコード数
1 北海道 196,509
2 青森県 33,995
3 岩手県 29,864
4 宮城県 69,515
5 秋田県 27,277
6 山形県 30,212
7 福島県 64,659
8 茨城県 79,197
9 栃木県 65,254
10 群馬県 66,004
11 埼玉県 213,975
12 千葉県 185,778
13 東京都 1,018,714
14 神奈川県 298,632
15 新潟県 67,548
16 富山県 31,549
17 石川県 37,859
18 福井県 27,033
19 山梨県 30,169
20 長野県 69,611
21 岐阜県 62,295
22 静岡県 108,111
23 愛知県 229,350
24 三重県 47,247
25 滋賀県 35,566
26 京都府 91,303
27 大阪府 371,088
28 兵庫県 165,137
29 奈良県 33,273
30 和歌山県 26,597
31 鳥取県 17,467
32 島根県 20,307
33 岡山県 62,558
34 広島県 96,330
35 山口県 37,179
36 徳島県 27,174
37 香川県 34,205
38 愛媛県 45,791
39 高知県 22,783
40 福岡県 168,779
41 佐賀県 20,849
42 長崎県 36,571
43 熊本県 59,243
44 大分県 40,938
45 宮崎県 33,073
46 鹿児島県 50,034
47 沖縄県 46,472
なし 海外 663
合計 4,633,737

※2018/6/29付けデータを元に算出。将来的に自動更新予定。

正直なところ、様々な制約のあるレンタルサーバーのデータベースに対して、

CSV又はXMLによって提供されるデータをこのレコード数突っ込むのは苦労しました。
普通はあまりやらないと思います。

が、これ。

「できるけど、やらない」というのと「そもそも、できない」ではやはり雲泥の違いがあると思います。

SSHが利用できないようなレンタルサーバーでphpMyAdminのインポート機能などに頼らず、
1県程度のデータ数なら瞬殺でインポートできる、非常に強力なアプローチなのです。

400万レコード突っ込んだという経験はサイト運営のバックアップ・リストアなどにおいても、
引き出しの一つとして、きっと役に立つスキルではあると思います。(mysqldump使えとか)

 

国税庁「法人の基本3情報のデータ(法人番号)」の提供形式の選択とダウンロード

国税庁「法人の基本3情報のデータ(法人番号)」データは、
以下に書かれている通り、Shift-JISエンコード、Unicodeエンコードによるデータが公開されています。

それぞれ自分の環境にあったものを選択するといいでしょう。

ファイル形式・文字コード

 ファイル形式は、CSV及びXML形式の2種類、文字コードは「Shift-JIS(JIS第一・第二水準)」と「Unicode(JIS第一~第四水準)」の2種類に対応しています。
ファイル形式との組合せで「CSV・Shift-JIS」、「CSV・Unicode」及び「XML・Unicode」の3種類のファイルを用意しています。

(概要)基本3情報ダウンロード|国税庁法人番号公表サイト

 

CSV形式・Unicodeの選択

ダウンロードとするファイルは、今回Unicode形式のCSVを選択しましたが、
Shift-JISとUnicode双方の取り込みの流れでご紹介していきます。

以下のページからダウンロードできます。

(データ元)全件データのダウンロード(各都道府県別)|国税庁法人番号公表サイト

いつもこういうマスタ系の公開データを頂くときに思うのですが、
「二次利用させたくない」という思惑が垣間見えてきます。
公開しているのに、どうしてこういう仕様になるのかなぁ・・・という。

個々のファイルのURLは公開されておらず、
Web画面からクリックすることによるJavaScript経由でダウンロードが開始されます。

要は、cURLやftpなどで定期的にデータを取得して、
自前のデータベースの更新処理を定期実行するといった方法を取りづらくしてくれています。
取り込んだはいいけど、これ、その後毎日手でダウンロードして更新するの?

ITは便利と言われますが、私は全然便利だと思わない。
誰かの為になにかを公開するにしても、簡単に二次利用できる方法は提供しない。
苦労して苦労して、使えるようにできるなら、すれば?みたいな意地悪さを常に感じるのです。
まぁ、受注した業者の御意向もあるでしょうけども・・・。

 

全件データ一括の場合は、メディアによる受け取りが必要となるので、
やむを得ずですが、全都道府県のデータをポチポチとダウンロードします。(今後自動化はする)

 

ダウンロードデータの取り込み先準備(テーブル作成)

ダウンロードしたファイルは、一旦はローカル(PC上)に保存しますが、
ローカルで取り込み確認ができたら、

レンタルサーバー上のディレクトリへFTPでアップロードし、
レンタルサーバー上のMySQLへインポートします。

その準備段階として、MySQLに対してテーブル作成を行います。
以下で紹介しているSQLを実行して、サクッとテーブルを作成します。

 

CSVデータの取り込み

今回47都道府県(+海外1)に分割されたデータを、1テーブルに突っ込むという想定です。

例えば、最初のファイル北海道で、196,419レコード。
一番ファイルサイズの大きな東京都で、1,014,062レコードです。

そして、全データを取り込むと460万レコードに達します。

これは、MySQLWorkBenchでテーブルに対して1つのCSVを指定してインポートしても、
おそらく北海道のデータレベルで、応答が無くなってしまう事でしょう。(実際応答なし)

それではレンタルサーバー上のデータベースに格納するなど夢のまた夢という事になります。

そこで今回はファイルを事前にFTP経由でアップロードしておき、
ファイルを指定して読み込みを行っていきます。

 

データ取込後の外字表示確認

データのインポートが行えたら、
インポート後のデータが正しく取り込めて、外字の表示が行えているかを確認します。

 

外字の影響を受ける法人名、所在地に関する情報

上記でも確認に利用していますが、
上記では手始めに「北海道」の抽出でテストを行っていた際のものです。

最終的には全国データを取り込んで、その表示を確認する事になるはずです。
その際には、以下でご紹介している法人コードでSQL抽出を行うと、
外字の表示確認が楽になるかもしれません。

 

インポートがうまくいかない時のポイントについて

正直、サクッとインポートができたなら、そもそも記事にしていないです。

ここのサイトは「IPアドレス」のサイトですし、
MySQLでも、国税庁も法人コードも全く絡みのないサイトなのです。

それでも、やっぱり記事にしておこうかなと思ったのは、やはり苦戦したから。

コピペでそのまま読んでくれた方がうまくいけばいいんですが、
おそらくは、環境によってそのままではうまくいかなかったり、
それぞれにご苦労はおありだと思います。

最後に、自分が気づくまでに時間がかかってしまった点などを以下でご紹介しています。

 


AdMax Promotion

公開日:
最終更新日:2018/07/12

QRコードからもこのURLを開けます。
リンク先URL: http://ipvx.info/everyones-db/corp_code-nta/


AdMax Promotion

サイト内コンテンツ
すべて展開 | すべて省略

Google or AdMax Promotion (ipvlink)