2016-07-19 143 views
2

RedshiftはPostgreSQLをベースにしているので、S3からredshiftへのコピー中にテーブルのデータを上書きまたは追加するオプションはありますか?Amazon Redshiftで追加して上書きする

私が持っているのは、トリガーの使用だけですが、引数を受け入れません。

すべてデータがすでにテーブルにある場合は、引数をyes/no(または類似)とするスクリプトを記述する必要があります。

答えて

2

COPYコマンドを使用して、Amazon S3からAmazon Redshiftにデータをロードするとき、データはがターゲット表に追加されます。データはです。

Redshift には、「上書き」オプションがありません。あなたがロードされているデータと既存のデータを置き換えたい場合は、可能性:

  • は、一時テーブルに受信データと一致し、メインテーブル内の
  • 削除行、例えばデータのロードID INは(一時テーブルからIDを選択)WHERE

    、メインテーブルにメインテーブルから一時テーブルから

  • コピー行を削除する例:Tから

    SELECT *メインテーブルINTO EMP-テーブル

参照:Updating and Inserting New Data

1

Redshiftでは、他のSQLデータベースのようなトリガやイベントを作成することはできませんが、私が見つけた解決策は、Pythonや他の言語を使用してcrontabタスクでスケジュールすることもできますが、update(SQLクエリ)

関連する問題