Есть ли способ принудительного позднего связывания при создании представлений в Redshift? - PullRequest
0 голосов
/ 08 июля 2019

Я использую Airflow для организации ETL.Многие из задач имеют предложения drop table, которые не выполняются, когда пользователь создает представление без позднего связывания.Изменение всех задач на drop cascade не вариант.

Есть ли способ принудительного позднего связывания?Либо по разрешениям пользователя, либо по конфигурации Redshift.

Ответы [ 2 ]

1 голос
/ 08 июля 2019

Нет способа форсировать это.

Чтобы создать представление с поздним связыванием, просто добавьте

WITH NO SCHEMA BINDING

См .: СОЗДАТЬ ВИД - Amazon Redshift

0 голосов
/ 08 июля 2019

Нет, нельзя заставить все представления использовать позднюю привязку на уровне кластера или базы данных. Вы можете создать хранимую процедуру, которая использует логику представления v_generate_view_ddl, чтобы получить DDL всех зависимых представлений и автоматически воссоздать их.

FWIW, я рекомендую не выполнять ETL непосредственно в таблицах, обращенных к пользователю, если вы можете этого избежать. Запустите ETL для промежуточной схемы, к которой пользователи не могут получить доступ, а затем «переверните» данные в свои схемы при их загрузке и подготовке. Вы можете использовать ATLER TABLE APPEND для быстрого переворачивания.

...