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/
models:
- name: my_model
config:
state:
require_fresh_data_from: any | all
SQL 파일 설정
models/
{{ 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