创建 Redshift 生产的副本,每个表中的 # 条记录有限

Posted

技术标签:

【中文标题】创建 Redshift 生产的副本,每个表中的 # 条记录有限【英文标题】:Create a copy of Redshift production with limited # records in each table 【发布时间】:2018-06-20 13:46:04 【问题描述】:

我有一个生产 Redshift 集群,上面有大量数据。我想创建一个集群的“虚拟”副本,可用于临时开发和测试各种数据管道。该副本将包含所有生产模式/表,但每个表中只有一小部分记录(例如,每个表限制为 10,000 行)。

创建这样的副本并定期刷新它(以防生产模式发生变化)的好方法是什么?有没有办法创建对每个表有限制的集群快照?

到目前为止,我的想法是创建一个新集群并使用定义的一些管理视图here 自动获取模式/表等的 DDL 并编写生成 UNLOAD 语句的脚本(限制记录数) 对于每个表。然后我可以使用这些来填充我的开发集群。但是我觉得必须有一个更清洁的解决方案。

【问题讨论】:

【参考方案1】:

我认为您的基本目标是节省成本。这需要与行政工作(您的时间有多贵?)进行平衡。

生成集群的完整副本(从备份恢复)可能会更便宜,但在晚上/周末关闭它以节省资金。如果您将恢复过程自动化,您甚至可以安排它在您上班之前开始。

这样,您将拥有生产系统的完整副本,有效地零管理开销(一旦您编写了几个脚本来创建/删除集群)并且您可以节省 75% 的成本(每周 168 小时中的 40 小时)。此外,每次创建新集群时,它都会包含来自快照的最新数据,因此无需让它们“同步”。

最简单的解决方案往往是最好的。

【讨论】:

好主意@johnrotenstein,我有类似的情况,我可以试试这个。 我们有类似的情况,我们有大约 100 个节点,所以恢复快照的过程非常繁重,还有其他想法吗? @lelabo_m 你最好提出一个新问题。请提供有关为什么需要 100 个节点的信息——可能是由于数据量。使用 Amazon Redshift Spectrum 可能是减少加载到 Redshift 中的数据量的一种选择。

以上是关于创建 Redshift 生产的副本,每个表中的 # 条记录有限的主要内容,如果未能解决你的问题,请参考以下文章

Redshift 副本不会将数据插入我的表中

amazon datapipeline 中 redshift 副本的 sqlactivity 不会为文件名选择通配符

Redshift 副本从分析创建不同的压缩编码

CREATE TABLE...LIKE 不保留 Redshift 中的主键

Redshift中的存储过程将数据加载到表中

RedShift 临时表中的编码