将表从一个红移群集复制到另一个红移群集(不使用s3)

时间:2015-05-05 08:20:50

标签: amazon-redshift

我们可以直接将表从一个红移群集复制到另一个红移群集吗?

我知道可以使用s3作为临时存储来实现表复制(即从第一个集群卸载到s3,然后从s3复制到另一个集群)。

1 个答案:

答案 0 :(得分:23)

所以答案是否定的。 以下是我从AWS Support获得的回复。

您好, 非常感谢您与AWS Support联系。使用Amazon RedShift,我们没有一种机制可以将数据从RedShift集群中的表直接复制到另一个RedShift集群中的另一个表。实现类似结果的正常程序是:

(1)卸载到S3,然后从S3复制

使用此方法,您可以使用S3作为中间存储。首先,将源数据集中的数据卸载到S3,然后从目标集群上的S3复制数据。这是您熟悉的方法,也是我们推荐的方法。 RedShift旨在与S3配合使用,并且可以以相对较低的成本实现高效率。有关RedShift中UNLOADD和COPY操作的更多信息,请参阅以下AWS文档:

http://docs.aws.amazon.com/redshift/latest/dg/t_Unloading_tables.html http://docs.aws.amazon.com/redshift/latest/dg/t_loading-tables-from-s3.html

(2)使用群集快照

另一种方法是创建源群集的快照,然后将快照还原为目标群集。之后,从目标群集中删除不必要的表。问题是,如果您只需要目标集群上的一小部分数据(例如,十个表中的一个),那么您可能正在为(相对)小型应用程序使用(相对)大型集群。

有关管理RedShift群集快照的更多信息,请参阅以下AWS文档:

http://docs.aws.amazon.com/redshift/latest/mgmt/managing-snapshots-console.html

总之,我们更喜欢UNLOAD和COPY流程,这是一个非常直接且具有成本效益的流程。