[pgsql-jp: 37723] Re: INDEX を残したまま大量データを高速に挿入したい

河本陽一 komoto.yoichi @ kcc.co.jp
2006年 11月 24日 (金) 18:18:41 JST


こうもとです。

Daisuke Yamazaki さんの書いたこと:
> >  元のデータは、複数のテキストファイルです。
> >  各ファイル500M程度あるので、これを加工とかは難しいです。
> >  このファイルの形式を変えることはできません。
> 
> 最近のマシンは非常に高性能なので,500M程度のファイルだったら
> 結構リーズナブルな時間で処理できちゃったりします.

 実際には、ソートではなく特定文字列の取り出しなのですが、行の加工も
現実的な速度が出そうですね。
 今まで考えていたのは、[pgsql-jp: 37716]にならい、VIEWでのカラムに
関数を指定しようとしていましたが、次の理由により、いったんファイルを
加工することにしました。

・同じ関数を含むVIEWが二つあり、同じ処理が走るのが無駄になる。
・元のテキストファイルにはない情報(ディレクトリ名)をレコードに反映さ
  せる必要がある(前処理の段階で情報を追加してやる必要がありそう)。
・ごく一部(0.0001%程度)のフォーマットエラーをはじく必要がある。
・最終的にはCSVの生のデータも必要。

 本テーブルへの追加を、一時テーブルからにするか、一度ファイルに吐き
出してCOPYするかは、性能を比較してやってみようと思います。


======================================================================
河本陽一(こうもとよういち)
mailto:komoto.yoichi @ kcc.co.jp




pgsql-jp メーリングリストの案内