我正在尝试将完整的数据库转储加载到 Redshift 中。是否有一个命令可以将 s3 上的 pg_dump 中的数据恢复到 Redshift 中?如果没有,解决这个问题的最佳步骤是什么?
谢谢
最佳答案
如果您有一个非压缩 pg_dump,这应该可以使用 psql 命令实现(您可能需要手动编辑以获得正确的语法,具体取决于您的版本和选项集)。 然而,这是一种非常低效且缓慢的加载 Redshift 的方式,我不推荐它。如果您的表很大,可能需要几天或几周的时间!
您需要做的是:
- 根据源表在 redshift 上创建目标表,但是 考虑排序键和分布。
- 使用 postgres 将 postgres 源表卸载到 csv 文件中 “复制”命令
- 如果源 csv 文件非常大(例如超过 100MB), 考虑将它们拆分成单独的文件,因为它们将加载 更快( Redshift 将并行化)
- gzip csv 文件(推荐但非必需)
- 将这些 csv 文件上传到 s3,每个表都有一个单独的文件夹
- 使用 redshift 副本将数据从 s3 加载到 redshift 命令
关于amazon-s3 - 将 s3 的 pg_dump 加载到 redshift 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47564334/