こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

大容量のCSVファイルをインポートするには。

お世話になります。
Windows版のPostgreSQLをインストールしてCSVファイルを読み込ませようとしていますが途中でエラーが発生してしまい困っています。
取り込んでいるCSVファイルの件数は約65万件です。
その際に実行している下記のコマンドは以下の通りです。
SET client_encoding TO 'SJIS';
COPY T_SAMPLE FROM 'C:\test.csv' WITH CSV;

また途中で発生したエラーの内容は以下の通りです。
ERROR: メモリ不足です
DETAIL: 1073708532バイトを持つ文字列バッファを65534バイト多く、大きくすることができません。
CONTEXT: T_SAMPLEのCOPY。行番号 231916

どのようにしたら大容量のCSVファイルをデータベースにインポートする事ができるのでしょうか。
大変、申し訳ありませんがどうか私を助けて下さい。
些細な事でも何でも構いませんのでアドバイスいただけませんでしょうか。

私の環境のOSは「Windows Vista Ultimate」でPostgreSQLは「PostgreSQL 9.5.4」です。
何卒、宜しくお願いします。では、失礼します。

投稿日時 - 2016-08-28 05:58:19

QNo.9221251

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

私ならPerlか何かでファイルを読み込みつつINSERT、
一定行入れる毎にコミットします。
コードを書くのに5分も掛かりません。

投稿日時 - 2016-08-28 12:09:32

お礼

お礼が遅くなってすみません。
ありがとうございました。

投稿日時 - 2016-08-30 00:38:30

ANo.1

csvファイルを分割して、何回かに分けてインポートしてはいかがでしょうか?

投稿日時 - 2016-08-28 09:27:33

補足

回答ありがとうございます。
そうですか…
色々と調べましたが解決方法が見つかりませんでした。
私もやっぱりCSVファイルを分割するしかないのかと思っていました。
残された方法はこれしかないのでしょうか。
申し訳ありませんが最後にアドバイスいただけませんでしょうか。
宜しくお願いします。

投稿日時 - 2016-08-28 10:00:28

お礼

お礼が遅くなってすみません。
ありがとうございました。

投稿日時 - 2016-08-30 00:38:14

あなたにオススメの質問