[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 メーリングリストの案内