- 締切済み
大容量の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」です。 何卒、宜しくお願いします。では、失礼します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- shiren2
- ベストアンサー率47% (139/295)
私ならPerlか何かでファイルを読み込みつつINSERT、 一定行入れる毎にコミットします。 コードを書くのに5分も掛かりません。
csvファイルを分割して、何回かに分けてインポートしてはいかがでしょうか?
お礼
お礼が遅くなってすみません。 ありがとうございました。
補足
回答ありがとうございます。 そうですか… 色々と調べましたが解決方法が見つかりませんでした。 私もやっぱりCSVファイルを分割するしかないのかと思っていました。 残された方法はこれしかないのでしょうか。 申し訳ありませんが最後にアドバイスいただけませんでしょうか。 宜しくお願いします。
お礼
お礼が遅くなってすみません。 ありがとうございました。