execute

execute

execute는 parse(파싱) 단계에서는 false를, 노드가 실제로 데이터베이스에 대해 실행되는 단계(모델 컴파일·머티리얼라이즈)에서는 true를 반환하는 부울 변수예요. 주로 데이터베이스 연결이 필요한 연산(예: run_query, load_result)을 {% if execute %}로 감싸서 파싱 중에 실행되지 않게 할 때 사용해요.

출처: 문서

본문

예를 들어 run_query는 데이터베이스에 실제로 쿼리를 실행하므로, 실행 단계에서만 동작해야 해요. 이를 {% if execute %}로 보호할 수 있어요.

{% if execute %}
  {% set results = run_query('select 1 as id') %}
{% endif %}

이렇게 하면 dbt parse처럼 데이터베이스가 필요 없는 단계에서 매크로가 잘못 실행되는 것을 막을 수 있어요. executethis, target 등과 함께 dbt 컨텍스트의 일부로 제공돼요.

더 알아보기 (Learn more)