dbt 데이터 마트와 스냅샷 모델 구축

사례 연구: dbt로 전자상거래 데이터 모델 구축

Susan Sun

Freelance Data Scientist

dbt 데이터 마트 모델 소개

데이터 마트는 파이프라인 마지막의 깨끗하고 접근성 높은 데이터 모델입니다.

활용 사례

  • 데이터 사이언스 팀용 피처 스토어
  • 재무 팀용 집계 KPI
  • 엔지니어링 팀용 지연 시간 지표
  • SQL을 코드로 관리하여 반복 감소
사례 연구: dbt로 전자상거래 데이터 모델 구축

Looker 전자상거래 데이터 마트

고객

답하는 질문:

우리의 고객은 누구인가요?

구매 행동은 어떤가요?

데이터 그레인:

고객당 1행

예시 컬럼:

고객 이름, 고객 지출 금액

제품

답하는 질문:

매출, 비용, 이익은 얼마인가요?

데이터 그레인:

제품당 1행

예시 컬럼:

제품 카테고리, 매출, 이익

사례 연구: dbt로 전자상거래 데이터 모델 구축

Looker 전자상거래 데이터 마트

모든 dbt 소스와 모델 및 상호 관계를 보여주는 DAG 다이어그램. 소스는 녹색, 모델과 마트는 파란색으로 표시됩니다.

사례 연구: dbt로 전자상거래 데이터 모델 구축

단계별 빌드

1단계: dbt 외부에서 SQL 로직을 다듬고, 참조를 dbt 문법으로 교체합니다.

CTE가 여러 개 있는 샘플 SQL 로직 파일 스크린샷.

2단계: 데이터 테스트와 문서를 작성합니다

dbt 모델에 대한 테이블·컬럼 설명이 담긴 샘플 dbt models YAML 파일 스크린샷

3단계: 빌드를 테스트합니다! (예: dbt build)

사례 연구: dbt로 전자상거래 데이터 모델 구축

dbt 스냅샷 모델 소개

다섯 가지 주문 상태:

Processing, Shipped, Complete, Cancelled, and Returned

데이터 샘플:

주문 데이터 파일 미리보기. 두 개의 행과 9개 열이 보입니다. 열 이름: order id, user id, status, gender, created at, returned at, shipped at, delivered at, num of items.

사례 연구: dbt로 전자상거래 데이터 모델 구축

주문: 스냅샷 상태 변경

  • orders_snapshot.sql 파일 생성
{% snapshot orders_snapshot %}
{{
    config(target_schema='main',
      unique_key='order_id',
      strategy='timestamp',
      updated_at='created_at')
}}

SELECT * 
FROM 
{{source('looker_ecommerce', 'orders')}}

{% endsnapshot %}
  • 특정 스냅샷 모델 실행
dbt snapshot -s orders_snapshot.sql
  • 모든 스냅샷 모델 실행
dbt snapshot
  • 모든 모델 실행(스냅샷 포함)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
사례 연구: dbt로 전자상거래 데이터 모델 구축

연습해 봅시다!

사례 연구: dbt로 전자상거래 데이터 모델 구축

Preparing Video For Download...