execute_hooks_on_any_reuse
- YAML-файл проекта
- YAML-файл свойств
- Конфигурация в SQL-файле
dbt_project.yml
models:
<resource-path>:
+state:
execute_hooks_on_any_reuse: true | false
models/<filename>.yml
models:
- name: my_model
config:
state:
execute_hooks_on_any_reuse: true | false
models/<filename>.sql
{{ config(
state={
"execute_hooks_on_any_reuse": true | false
}
) }}
Определение
Когда dbt State пропускает узел, поскольку он всё ещё актуален, pre- и post-хуки этого узла по умолчанию не выполняются. Это соответствует стандартному поведению dbt: если узел не выполнялся, его хуки не запускаются.
Установите execute_hooks_on_any_reuse: true, если у вас есть хуки аудита или другие хуки, которые должны запускаться при каждом запуске задания независимо от того, был ли узел перестроен или использован повторно.
| Значение | Поведение |
|---|---|
false (по умолчанию) | Хуки пропускаются, когда узел используется повторно без перестроения. |
true | Хуки запускаются, даже когда узел используется повторно. |
Хуки всегда выполняются, когда dbt State клонирует узел из другого окружения, поскольку на этапе клонирования в хранилище данных создаётся новый объект.
Пример
Всегда запускать хуки аудита
Используйте execute_hooks_on_any_reuse: true для узлов с хуками аудита или отслеживания происхождения данных, которые должны выполняться при каждом запуске задания:
models/fct_orders.yml
models:
- name: fct_orders
config:
state:
execute_hooks_on_any_reuse: true
post-hook:
- "INSERT INTO audit_log VALUES ('{{ model.name }}', CURRENT_TIMESTAMP())"
Связанная документация
Нашли ошибку?
0