핵심 요약
사내 데이터 레이크(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. 비용 효과
| 항목 | Before | After | |
|---|---|---|---|
| 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