pre_clone
- YAML-файл проекта
- YAML-файл свойств
- Конфигурация в SQL-файле
dbt_project.yml
models:
<resource-path>:
+state:
pre_clone: never | if_missing | always
snapshots:
<resource-path>:
+state:
pre_clone: never | if_missing | always
models/<filename>.yml
models:
- name: my_model
config:
state:
pre_clone: never | if_missing | always
snapshots/<filename>.yml
snapshots:
- name: my_snapshot
relation: source('my_source', 'my_table')
config:
state:
pre_clone: never | if_missing | always
models/<filename>.sql
{{ config(
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