将 Postgres RDS 模式复制到 Redshift

Copy Postgres RDS schema to Redshift

我是 RedShift 新手。 下面是我的流程:

  1. 在 S3 中创建我的数据库 (Postgres RDS) table 的 CSV 副本。
  2. 使用连接到 redshift 的 sql 客户端的 "create table" 在 RedShift 中创建一些暂存 tables(用于 ETL 目的)。
  3. 使用复制命令将数据从 S3 移动到 RedShift。

问题:

我的暂存 table(将在 ETL 处理后与其他暂存 table 一起删除)与 RDS 的源 table 具有相同的架构。但是每次我构建一个新的阶段 table 时,我都必须编写一个很长的 "create table" 命令,当我有 table 和 100 个功能时,它变得令人沮丧。有没有简单的方法来复制模式?或者我是否需要改变我当前的流程以使其更容易?

我们使用 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

您可以在 ETL 之后 截断 暂存 table 而不是 删除 暂存 table可以设置与 ETL 内联的 Vacuuming 过程,以确保 Redshift 数据卫生以获得良好的性能。