在 Cassandra 中,我习惯了 upserts 的
USING TTL
子句,它设置了几秒后更新插入的数据将被删除。
Oracle有这样的功能吗?我还没找到任何相关信息。
有多种方法可以实现此功能,但我不相信它是内置的。最简单的方法是在表中添加一个
CreatedAt
列,用于指定何时插入行。然后,创建一个视图来获取最新的行,因此对于最近的一天:
create view v_table as
select t.*
from table t
where t.CreatedAt >= sysdate - 1;
这修复了数据访问端。要实际删除行,您需要一项额外的工作来定期删除表中的旧行。
我认为这取决于你所说的“Oracle”是什么意思。
Oracle 关系数据库没有开箱即用的功能。我们通常安排一个存储过程来执行此类任务。
生存时间 (TTL) 是一种允许您自动使表行过期的机制。 TTL 表示允许数据在存储中保留的时间量。已达到过期超时值的数据将无法再检索,并且不会出现在任何商店统计信息中。数据是否从存储中物理删除是由用户无法控制的内部机制决定的。
Oracle工作人员建议,为了管理比ttl更全面(也更复杂)的数据生命周期,我们可以使用信息生命周期管理(ILM)