1. HOME
  2. ブログ
  3. IT技術
  4. どんなCSVも楽々DBに取り込めるようにしてみた
どんなCSVも楽々DBに 取り込めるようにしてみた

どんなCSVも楽々DBに取り込めるようにしてみた

ものすごく簡単に

どんなCSVも楽々DBに取り込めるようにしてみました。

ものすごく簡単にです。

たぶんですけど。

とりあえず動作確認してみたい方はこちらから諸々参照して試してみてください。

ちなみにPythonで実装、DBはMySQL限定となってます。

あしからず。

ざっくり説明すると、

  1. 取り込みたいCSVファイルの情報を定義して、
  2. CSVファイルを所定のディレクトリに置いて、
  3. pythonを実行する

となります。

create文とかinsert文とかの作成は要りません。

あらやだ、簡単ですね。

まずは動作検証結果からご紹介(検証はMacでしてます)。

検証1: 郵便番号CSVをぱぱっと取り込んでみる

日本郵便 のサイトからCSVを取得。

折角なので(?)全国一括を取り込んでみます。

DLしたCSVの情報を調べて定義を追加します(詳細は GithubのReadme を参照)。

で、DLしたCSVを↑で定義したディレクトリに置いて実行。

実行開始!

しかし全然終わらない。

うーん、12.3MB。

おわたー。約8分。

ではMySQL確認。

テーブル作成されてる。

ちなみに、項目は設定したプレフィックス+連番、型はTEXT(ええ、全部TEXT型です)、CSVファイル1行目がヘッダ項目ならそれを項目コメントに設定(郵便番号CSVはヘッダ項目無しなので無し)。

約12万件。

本社(福岡)の郵便番号で検索してみる。

いいですね(いいんですよね?)。

なんでだろう、世田谷にあこがれる。

グッド。

次。

検証2: 駅データのCSVをさささっと取り込んでみる

駅データ.jp  からCSVをダウンロード(無料ですが要会員登録)。

郵便番号と同じ要領でDLしたCSVの情報を調べて定義を追加して実行。

1万件は1分弱。

MySQL検証。

テーブル作成OK。

駅CSVはヘッダ行有りなので項目コメントにその値がセットされてる。

駅って日本にそんなにあるですねー?

とか思ったですが、どうやら駅と沿線でユニークとなるデータの模様。

ので、駅名と都道府県CDでグルーピングして件数カウントしてみる。

それでも9265駅ってゆー。

コトコトことでん!

沿線数が多い駅Top10!

ほう、岡山。こんどうんちくしよーっと。

とまぁ、だいたいこんな感じです。

処理の概要について

では処理の概要についてざっくり説明します!と思ったですが、ちょっと長くなっちゃったのと、説明も長くなりそうなので、別途別記事で説明させていただきますね。

すみません。

※ こちら上記の Githubのリンク です

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア