본문 바로가기
DB2026년 5월 30일3분 읽기

dbt-core 1.10 + Apache Iceberg — modern data stack 정착 6개월

YS
김영삼
조회 865
dbt-core 1.10 + Apache Iceberg — modern data stack 정착 6개월

핵심 요약

dbt-core 1.10에서 Iceberg 1차 지원. 사내 dbt 프로젝트 1개(모델 420개)를 Snowflake-only에서 Snowflake + Iceberg 하이브리드로 전환. compute 비용 월 $8.2K → $3.9K, 쿼리 호환 95%, 마이그레이션 ~3개월.

1. dbt + Iceberg 핵심

-- models/staging/orders.sql
{{ config(
    materialized='table',
    file_format='iceberg',
    location_root='s3://datalake/staging/',
    catalog='polaris',
    table_properties={ 'write.format.default': 'parquet' }
) }}
SELECT * FROM {{ source('raw', 'orders') }}

materialized 옵션에 iceberg 추가. catalog 지정 시 Polaris·Tabular·Glue 자동 등록.

2. 워크로드 분리 전략

계층위치이유
Bronze(raw)Iceberg저장 비용 압도
Silver(staging)Icebergdbt 변환 자유
Gold(mart, BI)Snowflake native쿼리 성능 + BI 호환

3. 비용 효과

  • Snowflake storage: $14K → $2.4K (Bronze/Silver 이전)
  • Snowflake compute: $24K → $14K (변환은 Iceberg + Spark)
  • S3 + Iceberg metadata: +$3.8K
  • 순 절감: 월 $25K → $20K (-20%) 단순 비용. 단 PoC·ad-hoc 분석 자유도 증가가 더 큰 가치

4. 다중 엔진 — Iceberg의 진가

같은 Iceberg 테이블을 Snowflake·Trino·Spark·DuckDB·Polars로 동시 읽기. ad-hoc 분석은 DuckDB(로컬), 큰 배치는 Spark(EMR), BI는 Snowflake. 데이터 복제 0.

5. 함정

  • Snowflake → Iceberg COPY 인서트 비용 — 마이그레이션 1회성 $3K 발생
  • Time travel 정책 — Snowflake 90일 default, Iceberg는 snapshot 무한, 정기 expire snapshot 필요
  • dbt incremental — Iceberg의 upsert 미지원 일부 패턴, merge 직접 작성
  • Catalog 권한 — Polaris의 RBAC와 Snowflake의 grant 통합 안 됨, 두 곳 동기화

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록