← dbt 모듈로

Learn · Glossary

dbt 용어 사전

총 33개 용어

3계층 프로젝트 구조

staging(원천 1:1 경량 변환)-intermediate(중간 비즈니스 로직)-marts(최종 소비 테이블)로 나누는 dbt 프로젝트 조직 패턴.
환경 격리·Deferral·시크릿 관리와 프로젝트 구조화 · Section 5: Production & Deployment, Q44-Q50 및 FAQ 'How do you debug a failing dbt model?' (pp.14-18)

DAG (dbt)

프로젝트 전체의 ref()·source() 호출로 구축되는 방향성 비순환 그래프. dbt가 모델 실행 순서와 병렬화를 결정하는 근거다.
ref()·source()와 DAG, 프로젝트 설정 파일 · Section 1: dbt Fundamentals, Q4-Q10 (pp.2-4)

dbt_utils.generate_surrogate_key

여러 컬럼 값을 구분자로 연결한 뒤 NULL-안전하게 해시해 결정론적 서로게이트 키를 생성하는 dbt-utils 매크로. 옛 이름은 surrogate_key였다.
Jinja와 매크로, run_query(), dbt 패키지 · Section 4: Macros, Packages & Advanced, Q29-Q33 (pp.9-11)

Deferral

재빌드가 필요 없는 모델에 대해 dev/CI 실행이 프로덕션 테이블을 참조하도록 하는 기능. --defer --state로 활성화하며 dbt Core에도 존재한다.
환경 격리·Deferral·시크릿 관리와 프로젝트 구조화 · Section 5: Production & Deployment, Q44-Q50 및 FAQ 'How do you debug a failing dbt model?' (pp.14-18)

Ephemeral 모델

독립된 오브젝트로 구체화되지 않고, 이를 참조하는 모델의 컴파일된 SQL 안에 CTE로 인라인되는 모델.
dbt란 무엇인가 — 모델과 Materialization · Section 1: dbt Fundamentals, Q1-Q3 (pp.1-2)

Exposure

대시보드, ML 모델, 리버스 ETL 잡 등 dbt 모델의 다운스트림 소비자를 YAML로 선언해 리니지 그래프에 표시하는 문서화 단위.
소스 프레시니스, 문서 사이트, Exposures · Section 2: Testing & Documentation, Q16-Q18 (pp.5-6)

generate_schema_name

모델의 custom schema 설정이 최종적으로 어떤 스키마 이름으로 귀결될지 결정하는 dbt 내장 매크로. 기본값은 타겟 스키마와 커스텀 스키마를 이어붙인다.
Pre/Post 훅, 스키마 오버라이드, 태그, var() · Section 4: Macros, Packages & Advanced, Q34-Q38 (pp.11-12)

incremental_strategy

증분 모델이 신규/변경 행을 어떤 SQL 패턴(append/merge/delete+insert/insert_overwrite/microbatch)으로 반영할지 결정하는 설정.
증분 모델의 내부 동작과 incremental_strategy · Section 3: Incremental Models & Performance, Q19-Q21 (pp.6-7)

is_incremental()

모델이 이미 테이블로 존재하고 --full-refresh가 아닐 때 True를 반환하는 매크로. 조건부 WHERE 필터를 추가하는 데 쓴다.
증분 모델의 내부 동작과 incremental_strategy · Section 3: Incremental Models & Performance, Q19-Q21 (pp.6-7)

manifest.json / catalog.json

dbt docs generate가 만드는 산출물. 프로젝트의 모델·테스트·소스·컴파일된 SQL 전체를 기술해 문서 사이트와 상태 기반 선택의 근거가 된다.
소스 프레시니스, 문서 사이트, Exposures · Section 2: Testing & Documentation, Q16-Q18 (pp.5-6)

Materialization

dbt가 모델의 SELECT문을 실제 웨어하우스 오브젝트(뷰/테이블 등)로 만드는 방식. 모델의 config(materialized=...)로 설정한다.
dbt란 무엇인가 — 모델과 Materialization · Section 1: dbt Fundamentals, Q1-Q3 (pp.1-2)

Materialized View (dbt)

dbt-core 1.6부터 일부 어댑터가 지원하는 materialization. 웨어하우스가 네이티브로 제공하는 자동 갱신 매터리얼라이즈드 뷰를 dbt가 관리하도록 한다.
dbt란 무엇인가 — 모델과 Materialization · Section 1: dbt Fundamentals, Q1-Q3 (pp.1-2)

microbatch

dbt-core 1.9부터 추가된 incremental_strategy. event_time·batch_size·lookback 설정만으로 시간 구간별 배치 처리와 재처리 범위를 자동화한다.
증분 모델의 내부 동작과 incremental_strategy · Section 3: Incremental Models & Performance, Q19-Q21 (pp.6-7)

pre-hook / post-hook

모델 실행 직전/직후에 dbt가 실행하는 SQL. 권한 부여, 통계 갱신, 감사 로깅 등에 쓰이며 웨어하우스의 트랜잭션 지원 여부에 따라 롤백 동작이 달라진다.
Pre/Post 훅, 스키마 오버라이드, 태그, var() · Section 4: Macros, Packages & Advanced, Q34-Q38 (pp.11-12)

profile

대상 환경(웨어하우스 종류, 자격증명, 데이터베이스, 스키마)의 접속 정보. dbt Core는 ~/.dbt/profiles.yml에, dbt Cloud는 UI에 저장한다.
ref()·source()와 DAG, 프로젝트 설정 파일 · Section 1: dbt Fundamentals, Q4-Q10 (pp.2-4)

ref()

다른 dbt 모델을 가리키며 동시에 DAG에 의존성을 등록하는 Jinja 함수. 하드코딩된 테이블명 대신 항상 이것을 사용해야 한다.
ref()·source()와 DAG, 프로젝트 설정 파일 · Section 1: dbt Fundamentals, Q4-Q10 (pp.2-4)

run_query()

컴파일 타임에 SQL을 웨어하우스에 실행해 결과를 Agate 테이블 객체로 반환하는 dbt 함수. 동적 SQL 생성에 쓰이지만 실행 지연을 유발한다.
Jinja와 매크로, run_query(), dbt 패키지 · Section 4: Macros, Packages & Advanced, Q29-Q33 (pp.9-11)

SCD Type 2

차원 테이블에서 행이 변경될 때 이전 값을 삭제하지 않고 새 버전을 추가해 전체 변경 이력을 보존하는 설계 패턴.
지연 도착 데이터, 스냅샷(SCD Type 2), {{ this }} · Section 3: Incremental Models & Performance, Q26-Q28 (pp.8-9)

Source Freshness

원천 테이블의 최신 적재 시각(loaded_at_field)이 설정한 임계값보다 오래되지 않았는지 검사하는 dbt 기능.
소스 프레시니스, 문서 사이트, Exposures · Section 2: Testing & Documentation, Q16-Q18 (pp.5-6)

state:modified

현재 프로젝트를 이전 manifest와 비교해 변경된 모델만 골라내는 dbt 선택 문법. +를 붙이면 다운스트림도 포함한다.
dbt Core vs Cloud, Airflow 연동, 상태 기반 CI/CD · Section 5: Production & Deployment, Q39-Q43 (pp.12-14)

매크로 (macro)

macros/ 디렉터리의 .sql 파일에 저장되는 재사용 가능한 Jinja 함수. 모델에서 {{ 매크로명(...) }}로 호출한다.
Jinja와 매크로, run_query(), dbt 패키지 · Section 4: Macros, Packages & Advanced, Q29-Q33 (pp.9-11)