Amazon web services 如何保持5天以上';有多少查询日志?
在Redshift中,有一个Amazon web services 如何保持5天以上';有多少查询日志?,amazon-web-services,amazon-redshift,Amazon Web Services,Amazon Redshift,在Redshift中,有一个STL_QUERY表存储过去5天内运行的查询。我正试图找到一种方法来保存超过5天的记录。以下是我考虑过的一些事情: 有红移设置吗?看来不会 我可以用扳机吗?触发器在红移中不可用,因此这是不允许的 我可以创建一个Amazon数据管道作业来定期“刮取”STL\U查询表吗?我可以,所以这是一个选择。不幸的是,我必须给管道一些EC2实例来运行这项工作。每天有一个实例坐在旁边刮桌子,这似乎是一种浪费 我可以用一个简单的亚马逊工作流程来刮桌子吗?我可以,但它和3有着同样的问题 我
STL_QUERY
表存储过去5天内运行的查询。我正试图找到一种方法来保存超过5天的记录。以下是我考虑过的一些事情:
我还缺少其他选择/想法吗?我更喜欢其他一些不需要我专门使用EC2实例的选项,即使这意味着要支付额外的服务费用(前提是它比我使用的EC2实例便宜)。保持简单,用红移键完成所有操作 首先,使用“createtable…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);
完成。:)
注:
- 如果尚未设置,则需要8.x版本的
psql
- 即使您的作业在几天内没有运行,stl\U查询也会保存足够的历史记录,以供您查看
- 根据您的评论,使用starttime而不是query作为条件可能更安全
query
字段是否保证递增?我应该改用starttime
?第二:我不喜欢让它在我的笔记本电脑上运行。问题的焦点是把这个东西放在哪里。我会让它继续一天,但如果没有其他人回答,而你删除了“笔记本电脑”部分,我会接受你的回答。好的,我删除了对笔记本电脑的引用。我怀疑您控制的机器中至少有一台是全天候运行的。一个cron作业就可以了。您可以查看类似于AWS数据管道的内容,以便按计划运行脚本,但对于这个用例来说,这似乎有些过分。