입수는 Datalake로! (feat. Iceberg)
조승완 · 토스 · 토스 기술 블로그
소개
오늘은 데이터 효율성을 높이기 위해 도입한 ‘Iceberg’에 대해 이야기해 보려고 합니다. Iceberg의 기본적인 정보는 다른 곳에서도 쉽게 찾아볼 수 있지만, 저는 특히 유지보수와 운영 측면에 집중해서 이야기하려 합니다.
AI 핵심 요약
Kafka와 CDC 데이터를 처리하던 기존 파이프라인은 시간 단위 배치, Kudu 적재 지연, 파티션·스키마 변경의 복잡성, 수동 운영 부담을 안고 있었습니다. 토스 데이터 플랫폼팀은 Kafka Connect 기반 입수와 Iceberg를 도입해 준실시간 조회·수정, 스키마 및 파티션 진화, 트랜잭션 지원을 갖춘 데이터 레이크를 구축했습니다. 메타데이터 지표와 알림을 자동화하고 스냅샷·데이터 파일 정리 작업을 운영에 포함해, 약 천 개의 입수 파이프라인을 세 명이 관리하는 체계를 만들었습니다. 운영 경험을 통해 유지보수 작업의 실행 시점과 파티션 타입, 쓰기 분산 설정을 데이터 특성에 맞게 관리하는 것이 성능과 안정성에 중요하다고 설명합니다.
- 스냅샷이 누적되면 `expire_snapshots`와 `rewrite_manifests`로 메타데이터를 정리하고, 최근 스냅샷은 복구를 위해 보존하세요.
- `remove_orphan_files`는 쓰기 작업과 겹치면 파일을 잘못 제거할 수 있으므로 실행 시점을 신중히 잡아야 합니다.
- 대규모 테이블의 `write.distribution-mode`는 데이터 특성에 따라 `hash`와 `range`를 비교해 선택하고, 실제 환경에서 성능을 검증하세요.
- 파티션 프루닝을 활용하려면 파티션 컬럼과 쿼리 조건의 데이터 타입을 일치시켜야 합니다.
- CDC 테이블에서 삭제 파일을 정리할 때는 입수를 잠시 중단해 쓰기와 재작성 작업의 동시 실행을 피하는 편이 안전합니다.
비슷한 학습 자료
[팀네이버 컨퍼런스 DAN25] 데이터 활용을 수 십 배 빠르게! KREAM의 데이터 Lakehouse 구축기
DAN 2025 · YouTube
Iceberg Low-Latency Queries with Materialized Views (feat. 실시간 거래 리포트)
엔지니어링데이 2025 · YouTube
토스ㅣSLASH 21 - 토스 데이터의 흐름과 활용
SLASH · YouTube
토스플레이스 데이터봇 ‘판다(PANDA)’를 소개합니다 : 모든 팀원이 데이터 전문가처럼 일하는 방법
김윤아/정이을 · 토스 기술 블로그
고객은 절대 기다려주지 않는다: 빠른 데이터 서빙으로 고객 만족도를 수직 상승 시키는 법
이세찬 · 토스 기술 블로그
토스증권 Iceberg 적용기 #1: CDC 환경은 왜 제대로 동작하지 않을까?
김용우 · 토스 기술 블로그