본문 바로가기
DB2026년 5월 27일2분 읽기

Iceberg + DuckDB로 만든 사내 self-serve 분석 — 3개월 운영

YS
김영삼
조회 1225
Iceberg + DuckDB로 만든 사내 self-serve 분석 — 3개월 운영

핵심 요약

사내 데이터 레이크(Iceberg on S3)를 DuckDB-wasm으로 브라우저에서 직접 쿼리. 비개발자 30명이 SQL 작성, Snowflake 동시 사용량 -68%, 비용 월 -$8K. 3개월 운영 사후.

1. 아키텍처

  • Iceberg 테이블 S3에 ~ 12PB
  • REST catalog(Polaris)에서 권한 + 메타데이터 제공
  • 사내 도구: DuckDB-wasm 임베드한 SQL 노트북
  • 사용자는 브라우저에서 SQL → DuckDB가 S3에서 직접 Parquet 읽음

2. 사용자 흐름

-- 노트북에서
ATTACH 'rest://catalog.our.com/sales' AS sales;
SELECT region, SUM(amount) FROM sales.orders_2026
WHERE region IN ('KR', 'JP')
GROUP BY region;

3. 성능 & 한계

  • 브라우저 RAM 4GB → 1억 row까지 OK
  • 큰 데이터 — partition pruning + filter pushdown으로 처리
  • 복잡 join(3개 table 10억 row) — Snowflake로 fallback

4. 비용 효과

항목BeforeAfter
Snowflake credits$14K$4.5K
S3 GET requests-+$420
순 절감-$9K

5. 함정

  • 권한 — REST catalog의 row-level security로 제어, 잘못 설정하면 전 부서 데이터 노출
  • 사용자가 큰 쿼리 — S3 GET 폭증, query timeout + 비용 capping 둘 다
  • 브라우저 OOM — 클라이언트별 메모리 제한, DuckDB-wasm 옵션 명시
  • 교육 — SQL 안 써본 사용자에 LLM-assisted SQL 컴포넌트 추가 필수

댓글 0

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