首页 > 解决方案 > Redshift 中时间序列表的保留管理

问题描述

我有一张表,我使用 DMS 从 Aurora 迁移到 Redshift。该表仅按时间戳插入大量数据。我想在红移中对该表进行修剪版本。

想法是在其上使用分区并使用保留脚本将其保留在过去 2 个月内。然而,在 Redshift 中没有分区,我在那里发现的时间序列表听起来是一样的。如果我理解正确,我的表格应该如下所示:

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

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

标签: amazon-redshift

解决方案


这通常在 Redshift 中通过几种方式完成。

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

当有问题的表变得非常大或执行删除和清理的工作量时间不短时,人们为他们的数据设置“月”表并使用 UNION ALL 将这些表放在一起的视图。然后“删除”一个月只是重新定义视图并删除不需要的表。这对 Redshift 来说执行起来非常简单,但设置起来有点复杂。您的传入数据需要按月份放入正确的表中,因此它不再只是来自 Aurora 的副本。此过程还简化了将旧表卸载到 S3 以进行历史记录。


推荐阅读