require_fresh_data_from

require_fresh_data_from (신선한 데이터 요구 대상)

require_fresh_data_from 설정은 dbt State가 이 노드를 rebuild 후보로 여기기 전에, 얼마나 많은 직접 부모(direct parent) 노드에 신선한 데이터가 있어야 하는지를 제어해요. any(기본값)와 all 두 값을 받아요.

출처: dbt 공식 문서

본문

설정 방법

프로젝트 YAML 파일

dbt_project.yml

models:
  <resource-path>:
    +state:
      require_fresh_data_from: any | all

프로퍼티 YAML 파일

models/.yml

models:
  - name: my_model
    config:
      state:
        require_fresh_data_from: any | all

SQL 파일 설정

models/.sql

{{ config(
    state={
      "require_fresh_data_from": "any" | "all"
    }
) }}

정의

require_fresh_data_from은 dbt State가 이 노드를 rebuild 후보로 여기기 전에, 얼마나 많은 직접 부모 노드에 신선한 데이터가 있어야 하는지를 제어해요. dbt State는 실제 rebuild를 트리거하기 전에 여전히 재사용할 객체를 찾아봐요.

동작
any (기본값) 어떤 직접 부모라도 신선한 데이터가 있으면 이 노드가 rebuild 후보가 돼요. 더 자주 rebuild되며 비용이 늘어날 수 있어요.
all 모든 직접 부모에 신선한 데이터가 있어야만 이 노드가 rebuild 후보가 돼요. 덜 자주 rebuild되며 비용이 줄어요.

기본값

any예요.

예시

모든 부모에 신선한 데이터 요구하기

여러 소스를 조인하고 모든 업스트림 의존성이 업데이트됐을 때만 rebuild해야 하는 모델에는 all을 사용해요.

models/fct_orders.yml

models:
  - name: fct_orders
    config:
      state:
        require_fresh_data_from: all

프로젝트 전체 기본값 적용하기

dbt_project.yml

models:
  +state:
    require_fresh_data_from: all

더 알아보기 (Learn more)