full_refresh
Конфигурация full_refresh позволяет управлять тем, будет ли ресурс всегда или никогда выполнять полное обновление. Эта конфигурация переопределяет флаг командной строки --full-refresh.
- Models
- Seeds
models:
<resource-path>:
+full_refresh: false | true
{{ config(
full_refresh = false | true
) }}
select ...
seeds:
<resource-path>:
+full_refresh: false | true
Описание
Конфигурация full_refresh позволяет опционально задать, будет ли ресурс всегда или никогда выполнять полный пересчёт (full refresh). Эта конфигурация является переопределением флага командной строки --full-refresh, который используется при запуске команд dbt.
Вы можете задать конфигурацию full_refresh в файле dbt_project.yml или в конфигурации конкретного ресурса.
| Loading table... |
Примечание
- Флаг
--full-refreshтакже поддерживает короткую форму-f. - В макросе
should_full_refresh()реализована соответствующая логика.
Использование
Инкрементные модели
Seeds
Рекомендация
-
Устанавливайте
full_refresh: falseдля моделей с особенно большими наборами данных, которые вы никогда не хотели бы, чтобы dbt полностью удалял и пересоздавал. -
Вы не можете переопределить уже заданный параметр
full_refresh. Чтобы изменить его поведение в определённых случаях, необходимо удалить логику конфигурации или обновить её с использованием переменных, чтобы при необходимости поведение можно было переопределять. Например, если у вас есть инкрементальная модель со следующей конфигурацией:{{ config(
materialized = 'incremental',
full_refresh = var("force_full_refresh", false)
) }}Тогда вы можете переопределить параметр
full_refresh, установив его вtrue, с помощью флага--vars:
dbt run --vars '{"force_full_refresh": true}'.