我正在尝试创建一种将批量日期查询转换为增量查询的方法。例如,如果查询的 where 条件指定为
WHERE date > now()::date - interval '365 days' and date < now()::date
如果今天执行,这将获取一年的数据。现在,如果明天执行相同的查询,将再次获取 365 天的数据。但是,我已经拥有上一次运行的最后 364 天数据。我只想获取一天的数据,并从系统中删除一天的数据,这样我就可以得到性能更好的 365 天数据。此数据将存储在单独的临时表中。
为此,我创建了一个增量查询,它将在下次运行时执行。但是,当“日期”列不在 SELECT 子句中但在 WHERE 条件中出现时,删除单个日期数据被证明是棘手的,因为临时表架构将没有“日期”列。
所以我想到了分块执行批量查询并为该块分配一个ID。这样,我可以删除一个块并添加一个块,其他数据不受影响。
有没有办法在 postgres 或 greenplum 中实现相同的目标?就像一些内置功能一样。我浏览了整个文档,但找不到任何文档。
另外,如果没有,是否有更好的解决方案来解决这个问题。