在Amazon Redshift中附加和覆盖

Fre*_*man 4 postgresql amazon-s3 amazon-redshift

由于Redshift基于PostgreSQL,它是否可以在从S3复制到redshift时覆盖或附加表中的数据?

我得到的只是使用触发器,但他们不接受任何参数.

所有我需要编写一个脚本,如果数据已经在表中,则该参数将参数设置为yes/no(或类似).

Joh*_*ein 7

使用该COPY命令将数据从Amazon S3加载到Amazon Redshift时,会将数据附加到目标表.

Redshift 没有"覆盖"选项.如果您希望用正在加载的数据替换现有数据,您可以:

  • 将数据加载到临时表中
  • 删除主表中与传入数据匹配的行,例如:

    DELETE FROM main-table WHERE id IN(来自temp-table的SELECT id)

  • 将行从临时表复制到主表,例如:

    SELECT*FROM temp-table INTO主表

请参阅:更新和插入新数据