在两个环境之间复制表 - Redshift

Posted

技术标签:

【中文标题】在两个环境之间复制表 - Redshift【英文标题】:Copy tables between two environments - Redshift 【发布时间】:2018-07-13 18:44:19 【问题描述】:

我需要在 redshift 中两个不同实例的表之间复制数据。

第一个是开发环境,第二个是舞台环境。

要求是将表从 dev 复制到 stage。

Instance 1: Dev
URL      :  link1
username : userdev
password: passdev
schema  : schema1
tablename: table1

Instance 2: Stage
URL:        link2
username:  userstage
password:  passstage
schema:   schema2
tablename: table2

有没有办法在这些实例之间进行复制?

我不想使用复制实用程序。我需要一个脚本。

【问题讨论】:

卸载到s3然后从s3复制是你需要走的路线 好的。它是复制实用程序吗?请告诉我步骤和代码。 Copying a table from one redshift cluster to another redshift cluster(without using s3)的可能重复 你可以参考下面的链接,它详细讨论了数据从一个环境移动到另一个环境的最佳实践,***.com/questions/48719339/… 【参考方案1】:

请查看卸载/复制实用程序:https://github.com/awslabs/amazon-redshift-utils/tree/master/src/UnloadCopyUtility

该实用程序会自动执行您在上面描述的过程。

【讨论】:

【参考方案2】:

如果有一次可以使用copy command。

首先将数据从实例 1 复制到 S3。 然后从 S3 到 instance-2。

如果您需要每天执行此操作,请使用带有 JDBC 连接的 AWS Lambda,以 S3 作为中介。

【讨论】:

以上是关于在两个环境之间复制表 - Redshift的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从一个表复制到位于不同 Redshift 实例中的另一个表?

在 Redshift 中,如何复制表、添加 dist 和排序键以及保留列编码?

在 aws redshift 中自动化跨区域复制表

将数据从本地复制到 S3 到 Redshift 表时出现问题

Redshift:如何将连接表的副本复制到集群中的每个切片上?

将 s3 文件复制到带有 IDENTITY 列且不带 EXPLICIT_IDS 的 Redshift 表