首页 > 解决方案 > 将一张表从 RDS / postgres 加载到 Redshift

问题描述

我们有一个 Redshift 集群,它需要来自我们的 RDS / postgres 数据库之一的一张表。我不太确定导出数据并将其引入的最佳方法,确切的步骤应该是什么。

在拼凑各种博客和文章时,共识似乎是pg_dump用来将表复制到 csv 文件,然后将其复制到 S3 存储桶,然后使用 RedshiftCOPY命令将其引入新表——这是我的最高境界水平的理解,但我不确定命令行开关应该是什么,或者实际的细节。目前是否有人这样做,如果是这样,我是否有超越“推荐”的方式来一次性导入 Redshift?

标签: postgresqlamazon-web-servicesamazon-redshiftamazon-rds

解决方案


您似乎想要:

  • 从 Amazon RDS PostgreSQL 导出
  • 导入 Amazon Redshift

将数据从 RDS for PostgreSQL 数据库实例导出到 Amazon S3 - Amazon Relational Database Service

您可以从 RDS for PostgreSQL 数据库实例中查询数据并将其直接导出到存储在 Amazon S3 存储桶中的文件中。为此,您使用aws_s3Amazon RDS 提供的 PostgreSQL 扩展。

这会将 CSV 文件保存到 Amazon S3 中。

然后,您可以使用 Amazon RedshiftCOPY命令将此 CSV 文件加载到现有的 Redshift 表中。

您将需要某种方式来编排这些操作,这将涉及对 RDS 数据库运行命令,等待它完成,然后在 Redshift 数据库中运行命令。这可以通过一个 Python 脚本来完成,该脚本psycopg2依次连接到每个数据库(例如 via )并运行命令。


推荐阅读