• 締切済み

大容量の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」です。 何卒、宜しくお願いします。では、失礼します。

みんなの回答

  • shiren2
  • ベストアンサー率47% (139/295)
回答No.2

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

wakaba1972
質問者

お礼

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

noname#262292
noname#262292
回答No.1

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

wakaba1972
質問者

お礼

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

wakaba1972
質問者

補足

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