在Redshift中,有一个STL_QUERY
表,用于存储过去5天内运行的查询。我正试图找到一种方法来保存超过5天的记录。以下是我考虑过的一些事情:
STL_QUERY
表吗?我可以,所以这是一个选择。不幸的是,我必须给管道一些EC2实例来运行这项工作。每天有一个实例坐在这张桌子上,这似乎是一种浪费。我还缺少其他选择/想法吗?我更喜欢其他一些不涉及我专用EC2实例的选项,即使这意味着要支付额外的服务(假设它比我在其中使用的EC2实例更便宜)。
答案 0 :(得分:1)
保持简单,在Redshift中完成所有操作。
首先,使用“CREATE TABLE ... AS”将所有当前历史记录保存到永久表中。
CREATE TABLE admin.query_history AS SELECT * FROM stl_query;
其次,使用psql
来运行它,在您控制的计算机上安排作业,以便每天运行它。
INSERT INTO admin.query_history SELECT * FROM stl_query WHERE query > (SELECT MAX(query) FROM admin.query_history);
完成。 :)
注意:
psql
的8.x版本。