View 红移视图将继续恢复到以前的定义

View 红移视图将继续恢复到以前的定义,view,amazon-redshift,View,Amazon Redshift,我在Redshift中创建了一个视图,将两个查询合并在一起,效果非常好。我们已经想到了第三个值得添加的查询。乙二醇 CREATE VIEW stem_alumni as SELECT name, email FROM students WHERE graduated < 2019 AND major = 'Engineering' UNION SELECT name, email FROM alumni WHERE current_employer = 'Google' 它可能会持续

我在Redshift中创建了一个视图,将两个查询合并在一起,效果非常好。我们已经想到了第三个值得添加的查询。乙二醇

CREATE VIEW stem_alumni as
SELECT name, email
FROM students
WHERE graduated < 2019 AND major = 'Engineering'

UNION 
SELECT name, email
FROM alumni
WHERE current_employer = 'Google'
它可能会持续一个小时,但随后会恢复为原始查询

我已运行创建或替换视图。。。和删除/重新创建并获得相同的结果

如何获得更新的视图定义以保持

添加更多上下文


我使用DBeaver创建了视图,DBeaver是一个本地SQL客户端,使用我特定的红移凭据。该视图由Periscope调用,Periscope是我们使用共享凭证的基于云的BI工具。在潜望镜或单独的DBeaver窗口中查询视图最终会将视图还原为其原始定义。

红移不应具有可还原到的视图先前DDL的“内存”。我倾向于同意这样的评论,即在提交视图的DDL更新后,其他内容正在覆盖这些更新

通过查询stl_查询表,您应该能够查看是否有内容正在覆盖视图:

根据,此表仅包含2-5天内的最新查询信息,因此,如果您在该时间范围内未从视图中体验到此行为,则可能需要强制再次发生此行为,以便对更改DDL的人员/内容进行故障排除


此外,如果视图被您以外的用户覆盖,则默认情况下,您需要使用超级用户帐户查询stl_查询,非超级用户只能查看他们自己执行的查询的信息。

Redshift不会自行将对象还原为以前的定义,因为它没有任何以前定义的记录。我猜某些外部进程正在覆盖您的更改,或者您可能在不同的架构(例如public)中有多个同名视图,并且用户/会话/工具的默认架构不同。Redshift不会这样做。其他内容正在覆盖此视图。
UNION
SELECT name, email
FROM professors
WHERE department = 'Engineering'
SELECT q.starttime
     , u.usename
     , q.querytxt
FROM pg_user u
  JOIN stl_query q ON u.usesysid = q.userid
WHERE POSITION('<view_name>' IN q.querytxt) > 0
ORDER BY q.starttime DESC
;