在Redshift中创建视图时,是否有任何方法可以强制后期绑定?

时间:2019-07-08 08:43:04

标签: postgresql permissions amazon-redshift late-binding

我正在使用Airflow来协调ETL。许多任务具有drop table子句,这些子句在用户创建没有后期绑定的视图时会失败。不能将所有任务都更改为drop cascade

有什么方法可以强制后期绑定?通过用户权限或Redshift配置。

2 个答案:

答案 0 :(得分:1)

没有办法强制这样做。

要创建后期绑定视图,只需添加

WITH NO SCHEMA BINDING

请参阅:CREATE VIEW - Amazon Redshift

答案 1 :(得分:0)

否,您不能强制所有视图在集群或数据库级别使用后期绑定。您可以创建使用v_generate_view_ddl视图逻辑的存储过程,以获取所有从属视图的DDL并自动重新创建它们。

FWIW,如果可能的话,我建议不要直接在面向用户的表中执行ETL。针对用户无法访问的登台模式运行ETL,然后在加载和准备好数据后将数据“翻转”到其模式中。您可以使用* def testCall = call read('this:feature1.feature') 快速进行翻转。