将 table 从一个 redshift 集群复制到另一个 redshift 集群(不使用 s3)
Copying a table from one redshift cluster to another redshift cluster(without using s3)
我们可以直接将 table 从一个 redshift 集群复制到另一个 redshift 集群吗?
我知道table可以使用 s3 作为临时存储来实现复制(即从第一个集群卸载到 s3,然后从 s3 复制到另一个集群)。
所以答案是否定的。
以下是我从 AWS Support 得到的回复。
您好,
非常感谢您联系 AWS Support。使用 Amazon RedShift,我们没有一种机制可以直接将数据从 RedShift 集群中的 table 复制到另一个 RedShift 集群中的另一个 table。获得类似结果的正常程序是:
(1) UNLOAD 到 S3,然后从 S3 COPY
通过这种方法,您可以使用 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) 使用集群快照
另一种方法是创建源集群的快照,然后将快照还原为目标集群。之后,从目标集群中删除不需要的 tables。问题是,如果您只需要目标集群上的一小部分数据(例如,十个 table 中的一个),那么您可能正在使用一个(相对)大的集群来进行(相对)小应用程序。
有关管理 RedShift 集群快照的更多信息,请参阅以下 AWS 文档:
http://docs.aws.amazon.com/redshift/latest/mgmt/managing-snapshots-console.html
总而言之,我们更喜欢 UNLOAD 和 COPY 过程,它非常简单且具有成本效益。
根据您想要复制 table 的原因,现在最好的解决方案可能是使用 Redshift 数据共享:
https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html
假设满足先决条件,这将允许您使 table 可用于在另一个 Redshift 集群中读取。
我们可以直接将 table 从一个 redshift 集群复制到另一个 redshift 集群吗?
我知道table可以使用 s3 作为临时存储来实现复制(即从第一个集群卸载到 s3,然后从 s3 复制到另一个集群)。
所以答案是否定的。 以下是我从 AWS Support 得到的回复。
您好, 非常感谢您联系 AWS Support。使用 Amazon RedShift,我们没有一种机制可以直接将数据从 RedShift 集群中的 table 复制到另一个 RedShift 集群中的另一个 table。获得类似结果的正常程序是:
(1) UNLOAD 到 S3,然后从 S3 COPY
通过这种方法,您可以使用 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) 使用集群快照
另一种方法是创建源集群的快照,然后将快照还原为目标集群。之后,从目标集群中删除不需要的 tables。问题是,如果您只需要目标集群上的一小部分数据(例如,十个 table 中的一个),那么您可能正在使用一个(相对)大的集群来进行(相对)小应用程序。
有关管理 RedShift 集群快照的更多信息,请参阅以下 AWS 文档:
http://docs.aws.amazon.com/redshift/latest/mgmt/managing-snapshots-console.html
总而言之,我们更喜欢 UNLOAD 和 COPY 过程,它非常简单且具有成本效益。
根据您想要复制 table 的原因,现在最好的解决方案可能是使用 Redshift 数据共享: https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html
假设满足先决条件,这将允许您使 table 可用于在另一个 Redshift 集群中读取。