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

full_refresh

Конфигурация full_refresh позволяет управлять тем, будет ли ресурс всегда или никогда выполнять полное обновление. Эта конфигурация переопределяет флаг командной строки --full-refresh.

dbt_project.yml
models:
<resource-path>:
+full_refresh: false | true
models/<modelname>.sql

{{ config(
full_refresh = false | true
) }}

select ...

Описание

Конфигурация full_refresh позволяет опционально задать, будет ли ресурс всегда или никогда выполнять полный пересчёт (full refresh). Эта конфигурация является переопределением флага командной строки --full-refresh, который используется при запуске команд dbt.

Вы можете задать конфигурацию full_refresh в файле dbt_project.yml или в конфигурации конкретного ресурса.

Значение full_refreshПоведение
Если установлено в trueРесурс всегда выполняет полный пересчёт, независимо от того, передаёте ли вы флаг --full-refresh в команде dbt.
Если установлено в falseРесурс никогда не выполняет полный пересчёт, независимо от того, передаёте ли вы флаг --full-refresh в команде dbt.
Если установлено в none или не указаноРесурс следует поведению флага --full-refresh. Если флаг используется, ресурс выполнит полный пересчёт; в противном случае — нет.
Loading table...

Примечание

  • Флаг --full-refresh также поддерживает короткую форму -f.
  • В макросе should_full_refresh() реализована соответствующая логика.

Использование

Инкрементные модели

Seeds

Колонки моего seed изменились, и теперь я получаю ошибку при выполнении команды `seed`, что мне делать?

Рекомендация

  • Устанавливайте 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}'.

Справочная документация

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

0
Loading