【问题标题】:Copy Postgres RDS schema to Redshift将 Postgres RDS 模式复制到 Redshift
【发布时间】:2016-06-06 22:50:07
【问题描述】:

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

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

问题:

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

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 感谢您的回复。所以我当前的表将是 S3 中的 CSV 表?
    • 当前表将是一个红移表
    • 创建一次红移表,然后使用create table like
    • 所以我需要第一次使用create table?
    • 谢谢!我会这样做的。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      • 2020-07-19
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      相关资源
      最近更新 更多