从 RDS / postgres 加载一个 table 到 Redshift

loading one table from RDS / postgres into Redshift

我们有一个 Redshift 集群,需要来自我们的 RDS/postgres 数据库之一的 table。我不太确定导出和导入数据的最佳方式,具体步骤应该是什么。

在拼凑各种博客和文章时,共识似乎是使用 pg_dump 将 table 复制到 csv 文件,然后将其复制到 S3 存储桶,然后从那里使用 Redshift COPY 命令将其引入新的 table-- 这是我的高级理解,但我不确定命令行开关应该是什么,或者实际细节。目前有没有人这样做,如果有的话,我在 'recommended' 方法之上有什么方法可以一次性导入 Redshift?

您似乎想要:

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

来自Exporting data from an RDS for PostgreSQL DB instance to Amazon S3 - Amazon Relational Database Service

You can query data from an RDS for PostgreSQL DB instance and export it directly into files stored in an Amazon S3 bucket. To do this, you use the aws_s3 PostgreSQL extension that Amazon RDS provides.

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

然后您可以使用 Amazon Redshift COPY 命令将此 CSV 文件加载到现有的 Redshift table。

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