Jinja 템플릿

dbt 입문

Mike Metzger

Data Engineer

템플릿이란?

  • 정보를 치환할 수 있는 정해진 형식
  • 보통 텍스트 파일
  • 접근·재사용을 단순화
dbt 입문

Jinja란?

  • 단순한 텍스트 기반 템플릿 언어
  • dbt 외 다양한 도구에서 사용
  • {{ ... }}는 템플릿 치환을 의미
  • dbt 프로젝트에서 많은 Jinja 함수 사용 가능
  • dbt를 더 동적으로 활용 가능
  • for 루프로 코드 단순화 가능
dbt 입문

dbt Jinja 함수

  • 사용 가능한 Jinja 함수 예시
    • ref: 모델을 이름으로 참조
    • config: 구성 설정 접근
    • docs: 문서 정보 접근
    • 계산, 루프 등
dbt 입문

Jinja 예시

  • Jinja 없이
    SELECT
    COALESCE(start_date, '2025-01-01') as start_date,
    COALESCE(update_date, '2025-01-01') as update_date,
    COALESCE(end_date, '2025-01-01') as end_date
    FROM Events
    
  • Jinja 사용
    SELECT
    {% for column in ['start_date', 'update_date', 'end_date'] %}
    COALESCE({{column}}, '2025-01-01') as {{column}}
    {% endfor %}
    FROM Events
    
dbt 입문

연습해 봅시다!

dbt 입문

Preparing Video For Download...