質問: ### 前提・実現したいこと 複数のCSVをpostgreSQLで次の順で読み込みたいと考えております 1各CSVをcopy文で読み込む 2読み込んだものを統合する なお、先にCSVをwindowsのコマンドで統合し読み込むことはできたのですが、 100個程度計30GbのCSVを統合するのに半日以上かかり、 もう少し負荷を減らせないかと思い上記の方法を考えております。 ※質問を分けたほうがいい場合はお申し付けください。 ### 元データ moji1.csv NO,komoji,omoji 1,a,A moji2.csv NO,komoji,omoji 2,b,B moji3.csv NO,komoji,omoji 3,c,C 実現したいもの ------- テーブルMOJI NO|komoji|omoji 1|a|A 2|b|B 3|c|C 自作コード ----- 不明な部分は/* 不明(理由) */と表記 --格納するテーブル create table MOJI( no,int komoji,text omoji,text ); --ループ開始 --forでcsv読み込み for i in 1..3 loop --一時テーブル作成 create temp table mojitemp( no,int komoji,text omoji,text ); --csv読み込み copy mojitemp from E'C:\\~\\/* 不明(ファイル名をどう表記するかわかりません) */.csv' with csv header; --統合先へ insert into MOji select * from mojitemp; --iを1増やす 1=i+1; end loop; ――loopおわり ### 補足情報(言語/FW/ツール等のバージョンなど) windows10 PostgreSQL 9.6.5
回答: csvファイルのデータ形式は共通しているようですから、 [PostgreSQL]DB に大量データ インポートしてみた PostgreSQL編 ~ まとめ感想 の記事にあるような方法でcsvファイルを直接postgreSQLにインポートする方法が簡単なように思えます。 postgreSQLに入れる前に30GBものcsvファイルを生成する手間が減りますから。