从redshift表获取最后更新时间戳

时间:2017-05-17 21:13:55

标签: amazon-redshift dynamic-sql

我想通过设置一个查询来查看Redshift中每个表的最后一次写入来监视我们的数据是如何变得陈旧的。每个表都有一个created_at字段,我可以通过pg_table_def提取所有表名,但是没有办法在Redshift中设置动态sql(例如SELECT max(created_at) FROM {table})

我浏览了其他管理表和视图,但似乎没有解决这个问题。我确定这是一个已经解决的问题,但是,任何人都有一个如何将它们放在一起的提示吗?

1 个答案:

答案 0 :(得分:0)

我有类似的要求,在每个表中使用LAST_UPDATED列更新表的上次访问时间。以下是我完成它的方法:

UPDATE UPDATION_RECORD_TABLE SET LAST_MODIFIED = (SELECT MAX(LAST_UPDATED) FROM %s) WHERE TABLE_NAME = '%s';

此处,UPDATION_RECORD_TABLE是一个包含两列的表,表的名称及其上次更新日期。使用Python代码(使用pyscopg2)执行上述SQL查询时,值 %s 可以在循环查看表列表后替换为表名,我将已使用SELECT table_name FROM information_schema.tables

获取

希望这有帮助。