Redshift 中时间序列 table 的保留管理

Retention management for time-series table in Redshift

我有一个 table,我使用 DMS 从 Aurora 迁移到 Redshift。此 table 仅按时间戳插入大量数据。 我想在 redshift 中有一个 table 的修剪版本。

我们的想法是对其使用分区并使用保留脚本将其保留在最近 2 个月内。但是在 Redshift 中没有分区,我在那里发现的时间序列 table 听起来是一样的。如果我理解正确的话,我的 table 应该是这样的:

create table public."bigtable"(
"id" integer  NOT NULL DISTKEY,
"date" timestamp,
"name" varchar(256) 
)
 SORTKEY(date);

但是我没有找到关于如何管理保留的好文档。想要任何更正和建议:)

这通常在 Redshift 中完成的几种方法。

对于中小型 tables 数据可以只被删除和 table VACUUMed(通常是只删除真空)。 Redshift 非常擅长处理大量数据,对于 table 非常大的数据,这很好用。删除和清理有一些开销,但如果这些被安排在下班时间,它工作得很好而且很简单。

当所讨论的 table 变得非常大或执行删除和清理的工作负载时间不低时,人们会为他们的数据设置“月”table 并使用视图UNION ALL 将这些 table 组合在一起。那么“去掉”一个月只是重新定义视图,去掉不需要的table。这对 Redshift 来说执行起来非常简单,但设置起来有点复杂。您的传入数据需要根据月份放入正确的 table 中,这样它就不再只是来自 Aurora 的副本。此过程还简化了将旧 table 卸载到 S3 以进行历史记录的过程。