反正有没有在红移表中只保留一周的数据

Posted

技术标签:

【中文标题】反正有没有在红移表中只保留一周的数据【英文标题】:Is there anyway to keep only one week data in redshift table 【发布时间】:2020-03-26 11:32:31 【问题描述】:

我有一个来源,每天都会填充日常文件,并且每天都会将其加载到红移表中 但我只想在一周后在表中保留一周的数据,它应该删除较旧的数据。

建议一种方法。

【问题讨论】:

【参考方案1】:

常用的方法是:

将每天的数据加载到单独的表格中 使用CREATE VIEW 创建过去一周表格的组合视图

例如:

CREATE VIEW data
AS
SELECT * FROM monday_table
UNION ALL
SELECT * FROM tuesday_table
UNION ALL
SELECT * FROM wednesday_table
...etc

您的用户可以简单地将视图用作普通表。

然后,每天有新数据到达时,DROPTRUNCATE 最旧的表并加载新数据 要么将新数据加载到与删除/截断的同名表中,要么重新创建视图以包含此新表而不是删除的表

没有自动执行上述步骤的过程,但您可以将其作为运行加载过程的脚本的一部分

【讨论】:

以上是关于反正有没有在红移表中只保留一周的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在红移中获取过去 X 周的数据?

从红移表中获取上次更新时间戳

我们可以使用复制命令使用访问密钥和秘密密钥将数据从 S3 加载到红移表中吗(不使用 IAM 角色)

红移表中的更新

仅向红移表添加新的或修改的数据

向红移表添加行而不是替换表