Postgresql に大量のデータを取り込む方法
2016/01/15
めちゃくちゃ多くはないだろうけど、うん十万件のデータを一気に Postgresql に突っ込みたいときに、はじめはINSERT分で行おうとしていて、メモリ不足で怒られた。
チマチマ入れていくしかないかなぁなんて、アホ丸出しで思ってたところCOPYコマンドというものを発見した。
COPY FROMコマンドを利用すると、ファイルからテーブルにデータをコピーしてくれるとのこと。
COPY テーブル名 FROM ファイルのパス WITH CSV;
このCOPY FROMコマンドを利用したところ、40万件ぐらいのデータが30秒ほどで入った。
試してはないけど、HEADERオプションを使えば CSV ファイルの先頭行にテーブルと同じカラム名のヘッダー行を用意することで
テーブルとうまくマッピングしてくれるんじゃなかろうかと思う。
※参考
http://www.postgresql.jp/document/9.2/html/sql-copy.html