캐시
캐시 (Cache)
dbt는 실행 시작 시 리소스를 materialize할 수 있는 모든 스키마의 모든 객체에 대한 메타데이터를 캐시해요. 이 문서에서는 관계형 캐시를 채우는 방법과 캐시 이벤트 로깅에 대해 다뤄요.
출처: 문서
본문
캐시 채우기
실행 시작 시 dbt는 리소스(예: 모델)를 materialize할 수 있는 모든 스키마의 모든 객체에 대한 메타데이터를 캐시해요. 기본적으로 dbt는 프로젝트와 관련된 모든 스키마의 정보로 관계형 캐시를 채워요.
이 동작을 선택적으로 수정하는 방법은 두 가지가 있어요:
POPULATE_CACHE(기본값:True): 캐시를 채울지 여부. 캐시 채우기를 완전히 건너뛰려면--no-populate-cache플래그를 쓰거나 (dbt v1.11 이상)DBT_ENGINE_POPULATE_CACHE: False를 사용해요. 이는 캐시를 비활성화하지 않는다는 점을 유의해요; 누락된 캐시 조회는 쿼리를 실행하고 이후 캐시를 업데이트해요.CACHE_SELECTED_ONLY(기본값False): 캐시 채우기를 현재 실행에서 선택된 리소스로만 제한할지 여부. 큰 프로젝트의 작은 부분집합을 실행할 때 상당한 속도 향상을 제공하면서도 캐시를 미리 채우는 이점을 유지할 수 있어요.
예를 들어 데이터베이스 메타데이터나 인스펙션 쿼리가 필요 없는 모델을 빠르게 컴파일하려면:
dbt compile --no-populate-cache --select my_model_name
또는 전용 스키마에 materialize되는 Salesforce 모델 개발에 집중하면서 속도와 성능을 개선하려면 그 모델들을 선택하고 cache-selected-only 플래그를 전달할 수 있어요:
dbt run --cache-selected-only --select salesforce
관계형 캐시 이벤트 로깅
LOG_CACHE_EVENTS 구성은 관계형 캐시에 대한 상세 로깅을 허용하며, 기본적으로 비활성화돼 있어요.
dbt compile --log-cache-events
더 알아보기 (Learn more)
- 플래그(글로벌 구성) 소개 — cache 관련 전역 플래그
- Logs — log-cache-events