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

execute_hooks_on_any_reuse

dbt_project.yml
models:
<resource-path>:
+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
Loading