将 s3 的 pg_dump 加载到 redshift

loading a pg_dump off of s3 into redshift

我正在尝试将完整的数据库转储加载到 Redshift 中。是否有一个命令可以将数据从生活在 s3 上的 pg_dump 恢复到 Redshift?如果不是,解决这个问题的最佳步骤是什么?

谢谢

如果你有非压缩 pg_dump 这应该可以使用 psql 命令(你可能需要手动编辑以获得正确的语法,这取决于你的版本和选项集)。 然而,这是一种非常低效且缓慢的加载 redshift 的方式,我不推荐它。如果您的 table 很大,可能需要几天或几周的时间!

你需要做的是:

  1. 根据源 table 在 redshift 上创建目标 table,但是 考虑排序键和分布。
  2. 使用 postgres 将您的 postgres 源 tables 卸载到 csv 文件中 "copy" 命令
  3. 如果源 csv 文件非常大(例如超过 100MB), 考虑将它们拆分成单独的文件,因为它们将加载 更快(红移将并行化)
  4. gzip csv 文件(推荐但不是必需的)
  5. 将这些 csv 文件上传到 s3,每个 table
  6. 有一个单独的文件夹
  7. 使用 redshift 副本将数据从 s3 加载到 redshift 命令