1

Postgres テーブルにインポートしようとしている非常に大きな (数百 MB) CSV ファイルがあります。主キー違反 (CSV ファイルの重複レコード) がある場合に問題が発生します。

1 つである場合、それらのレコードを手動で除外できますが、これらのファイルは、1 時間ごとにそのようなデータを生成するプログラムによって生成されます。私のスクリプトは、それをデータベースに自動的にインポートする必要があります。

私の質問は: COPY コマンドまたは Postgres でフラグを設定して、重複レコードをスキップし、ファイルをテーブルにインポートし続けることができる方法はありますか?

4

1 に答える 1

3

私の考えでは、これには次の 2 つの方法でアプローチします。

  1. COPY プロセス中に、このような重複行の「例外レポート」を作成するのに役立つユーティリティを使用します。
  2. 最初に一時テーブルにデータをロードしてワークフローを変更し、重複がないか確認します (ターゲット テーブルと結合し、一時テーブルに存在するすべてのものに dup フラグを付けます)。次に、欠落しているレコードのみをインポートし、重複を例外テーブル。

私は個人的には 2 番目のアプローチを好みますが、それはあなたの場合の特定のワークフローの問題です。

于 2011-04-29T13:48:17.360 に答える