amazon-redshift - Redshift 中时间序列表的保留管理
问题描述
我有一张表,我使用 DMS 从 Aurora 迁移到 Redshift。该表仅按时间戳插入大量数据。我想在红移中对该表进行修剪版本。
想法是在其上使用分区并使用保留脚本将其保留在过去 2 个月内。然而,在 Redshift 中没有分区,我在那里发现的时间序列表听起来是一样的。如果我理解正确,我的表格应该如下所示:
create table public."bigtable"(
"id" integer NOT NULL DISTKEY,
"date" timestamp,
"name" varchar(256)
)
SORTKEY(date);
但是,我没有找到如何管理保留的良好文档。想要任何更正和建议:)
解决方案
这通常在 Redshift 中通过几种方式完成。
对于中小型表,可以只删除数据并将表 VACUUM(通常是仅删除真空)。Redshift 非常擅长处理大量数据,并且对于非常大的表,这可以正常工作。删除和清理有一些开销,但如果这些被安排在下班时间,它工作得很好而且很简单。
当有问题的表变得非常大或执行删除和清理的工作量时间不短时,人们为他们的数据设置“月”表并使用 UNION ALL 将这些表放在一起的视图。然后“删除”一个月只是重新定义视图并删除不需要的表。这对 Redshift 来说执行起来非常简单,但设置起来有点复杂。您的传入数据需要按月份放入正确的表中,因此它不再只是来自 Aurora 的副本。此过程还简化了将旧表卸载到 S3 以进行历史记录。
推荐阅读
- c++ - 取消引用指针时出现 SIGSEGV 分段错误
- c++ - 获取临时对象的内部数组的地址
- reactjs - 使用本地 json 数据的反应查询无限滚动
- angular - 使用泳道折线图时出现控制台错误:错误:属性 x:预期长度,“NaN”
- python - Slack 事件适配器没有被触发
- nest-device-access - RTSP 流分辨率
- django - 如何在模态中使用 django 的 urlize 标签?
- asp.net-core - 在下拉列表中更改值时重新加载整个表单页面
- http - 我如何从私有 GitHub 存储库执行 ESP32 HTTPupdate
- pandas - pandas read_csv 不适用于分号分隔符