О переменной контекста selected_resources
Переменная контекста selected_resources
содержит список всех узлов,
выбранных текущей командой dbt.
В настоящее время эта переменная недоступна при использовании команды run-operation
.
dbt активно строит граф во время фазы парсинга
при выполнении проектов dbt, поэтому переменная контекста selected_resources
будет
пустой во время парсинга. Пожалуйста, прочитайте информацию на этой странице, чтобы эффективно использовать эту переменную.
Использование
Переменная контекста selected_resources
представляет собой список всех ресурсов, выбранных
текущим селектором команды dbt. Ее значение зависит от использования параметров, таких как
--select
, --exclude
и --selector
.
Для данного запуска она будет выглядеть следующим образом:
["model.my_project.model1", "model.my_project.model2", "snapshot.my_project.my_snapshot"]
Каждое значение соответствует ключу в объекте nodes
в переменной контекста graph.
Ее можно использовать в макросах в pre-hook
, post-hook
, on-run-start
или on-run-end
,
чтобы оценить, какие узлы выбраны, и запустить различную логику в зависимости от того, выбран ли конкретный узел.
/*
Проверьте, выбран ли данный модель, и выполните другое действие в зависимости от результата
*/
{% if execute %}
{% if 'model.my_project.model1' in selected_resources %}
{% do log("model1 включен на основе текущего выбора", info=true) %}
{% else %}
{% do log("model1 не включен на основе текущего выбора", info=true) %}
{% endif %}
{% endif %}
/*
Пример вывода при запуске кода в on-run-start
при выполнении `dbt build`, включая все узлы
---------------------------------------------------------------
model1 включен на основе текущего выбора
Пример вывода при запуске кода в on-run-start
при выполнении `dbt run --select model2`
---------------------------------------------------------------
model1 не включен на основе текущего выбора
*/