2017-02-06 15 views
2

ROLLBACKCOPY Redshiftでの操作は可能ですか?データが追加されたテーブルのCOPY操作の一部としてのみ挿入された行だけを削除するのに最適な方法はありますか?赤いシフトROLLBACK for COPY

+1

「コピー」を実行する前に自動コミットを無効にすることは可能ですが、「ロールバック」は**すべて**をロールバックします。 'copy'は単一のトランザクションで行われます –

+0

難しいのは自動コミットだと思いますが、新しいテーブルにデータをコピーしてからマイナスを使って古いデータを削除することができます(重複している行がなければ正常です) – user3600910

+0

@a_horse_with_no_nameそれがどのように行われたかを示すことができますか? –

答えて

0

copyは、トランザクション内でロールバックすることができます。トランザクション内。 copyをコミットした場合は、ロールバックできません。

2番目の質問では、これはアプリケーション層が管理する必要があるものです。例:

  • copy-idなどの追加のマーカー列をデータに追加するためにファイルを事前処理します。したがって、copyによってロードされたデータを削除する必要がある場合は、copy-idに対応するすべての行を削除します。
  • データが毎日1回ロードされる場合、time-series tablesを作成できます。そのため、特定の日に実行されたcopyをロールバックすると、対応するテーブルが切り捨てられます。ユースケースに応じて、1週間に1つのテーブルを作成することも考えられます。
関連する問題