将Postgres RDS架构复制到Redshift

时间:2016-06-06 22:50:08

标签: amazon-web-services amazon-s3 amazon-redshift

我是RedShift的新手。 以下是我的流程

  1. 在S3中创建我的数据库(Postgres RDS)表的CSV副本。
  2. 使用" create table"在RedShift中创建一些临时表(用于ETL)。从连接到redshift的sql客户端。
  3. 使用“复制”命令将数据从S3移动到RedShift。
  4. 问题:

    我的临时表(在ETL进程与其他临时表之后将被删除)与RDS中的源表具有相同的模式。但每次我建立一个新的临时表时,我都要写一个很长的"创建表"命令,当我拥有100个功能的表格时,它变得令人沮丧。有没有简单的方法来复制架构?或者我是否需要使用当前流程更改某些内容以使其更容易?

2 个答案:

答案 0 :(得分:1)

我们使用Redshift' CREATE TABLE LIKE'命令。看起来像是:create table staging_table (like current_table);。它有一个缺点,它不会继承current_table的主键和外键属性,但我们可以忍受它。

查看文档以获取更多详细信息:http://docs.aws.amazon.com/redshift/latest/dg/performing-a-deep-copy.html

答案 1 :(得分:0)

而不是删除 Stagging表,您可以在ETL之后截断 Stagging表,并且可以设置与ETL内联的吸尘过程,以确保Redshift数据卫生得到表现不错。