Перейти к основному содержимому

pre_clone

dbt_project.yml
models:
<resource-path>:
+state:
pre_clone: never | if_missing | always

snapshots:
<resource-path>:
+state:
pre_clone: never | if_missing | always

Определение​

pre_clone определяет, будет ли dbt State предварительно заполнять инкрементальные модели и снимки в вашей среде разработки, клонируя их аналоги из рабочей среды перед запуском, и когда это будет происходить.

ЗначениеПоведение
neverНикогда не выполнять предварительное клонирование. Инкрементальные модели и снимки используют в качестве исходного состояния то, что уже существует в среде разработки. Если соответствующего объекта ещё нет, он создаётся с нуля.
if_missing (по умолчанию)Клонировать только в том случае, если целевая таблица ещё не существует в среде разработки. После первого клонирования последующие запуски инкрементально обновляют клонированные данные.
alwaysКлонировать перед каждым запуском независимо от того, существует ли уже таблица в среде разработки. Гарантирует, что при каждом запуске исходное состояние для инкрементального обновления в среде разработки соответствует рабочей среде.
примечание

Неинкрементальные материализации никогда не клонируются предварительно. Эта настройка на них не влияет.

Примеры​

Всегда синхронизировать среду разработки с рабочей средой​

Используйте always, если хотите, чтобы перед каждым запуском среда разработки отражала текущее состояние рабочей среды:

models/fct_orders.yml
models:
- name: fct_orders
config:
state:
pre_clone: always

Изолировать состояние среды разработки от рабочей среды​

Используйте never, если хотите, чтобы среда разработки была полностью независима от рабочей среды:

dbt_project.yml
models:
+state:
pre_clone: never

Связанная документация​

Нашли ошибку?

0
Loading