Использование defer в dbt Cloud
Defer — это мощная функция, которая позволяет разработчикам строить, запускать и тестировать только те модели, которые они изменили, без необходимости сначала запускать и строить все модели, которые идут перед ними (вышестоящие родительские модели). dbt обеспечивает это, используя манифест продакшена для сравнения и разрешает функцию {{ ref() }}
с помощью вышестоящих продакшен-артефактов.
Как IDE dbt Cloud, так и CLI dbt Cloud позволяют пользователям нативно использовать defer к метаданным продакшена непосредственно в их рабочих процессах разработки.

При использовании --defer
, dbt Cloud будет следовать этому порядку выполнения для разрешения функций {{ ref() }}
.
- Если существует верс ия отложенной связи в разработке, dbt предпочтительно использует местоположение базы данных разработки при разрешении ссылки.
- Если версия разработки не существует, dbt использует промежуточные местоположения родительских связей на основе метаданных из промежуточной среды.
- Если ни версия разработки, ни промежуточная версия не существуют, dbt использует продакшен-местоположения родительских связей на основе метаданных из продакшен-среды.
Примечание: Передача флага --favor-state
всегда будет разрешать ссылки, используя промежуточные метаданные, если они доступны; в противном случае, по умолчанию, будут использоваться продакшен-метаданные, независимо от наличия связи разработки, пропуская шаг №1.
Для чистого начала рекомендуется удалять схему разработки в начале и в конце вашего цикла разработки.
Если вам требуются дополнительные средства контроля над продакшен-данными, создайте Промежуточную среду, и dbt будет использовать её, а не продакшен-среду, для разрешения функций {{ ref() }}
.