개요
Apache Iceberg의 쿼리 성능을 향상시키는 방법에 대해 다루는 웨비나입니다. Iceberg는 데이터 레이크에서 데이터 웨어하우스와 유사한 기능을 제공하지만, 쿼리 속도가 충분히 빠르지 않으면 그 약속이 깨질 수 있습니다. V3 기능인 삭제 벡터(Deletion Vector)를 소개하고, 일반적인 성능 튜닝 팁과 StarRocks를 활용한 성능 가속화 방법을 설명합니다.
주요 내용
1. Apache Iceberg 느린 쿼리 성능의 영향
현존하는 Data Lake 쿼리 엔진들은 DW에 대응할 수 없도록 구형되어 있으며, Iceberg 테이블에 대한 지원이 부족합니다. 사용자들은 성능 달성을 위해 너무 많은 엔지니어링 리소스를 사용하게 되어, 결국 데이터를 DWH로 복사하여 제공하는 상황이 발생합니다.
2. Iceberg V3의 삭제 벡터
기존 V2의 위치 삭제는 여러 문제점이 있었습니다. 모든 데이터 파일의 위치를 쿼리에 병합하고, 여러 삭제 파일을 생성하며, 전역 정렬 작업이 필요했습니다. 해결책으로 Puffin 파일을 도입하여 삭제 로딩이 10-100배 빠르고, 쓰기는 1.71-2.16배, 읽기는 34-350배 빠른 성능을 달성했습니다.
3. Iceberg 테이블 성능 향상 방법
작은 파일 문제, 메타데이터 파일 관리, 너무 많은 데이터 삭제, 부적절한 파티셔닝이 일반적인 문제 원인입니다. Hidden Partitioning 활용, 파일 사이즈 주기적 관리(100MB-1GB), 위치 삭제 사용 및 삭제 파일 압축, 메타데이터 재작성 및 오래된 스냅샷 삭제, OLAP 분석에는 Parquet 포맷 사용을 권장합니다.
4. StarRocks를 선택해야 하는 이유
StarRocks는 Linux Foundation의 오픈소스 프로젝트로 Data Warehouse 워크로드에 대응할 수 있도록 설계되었습니다. 계층적 캐싱 구조로 메타데이터와 데이터를 캐싱하여 IO 비용을 감축하고, MPP 아키텍처로 메모리 내 셔플링을 지원합니다. C++로 개발되어 CPU 명령어 세트를 최대한 활용하고, 모든 연산자가 벡터화되어 있습니다. 3.2 버전 기준 TPC DS 1TB에서 Trino 대비 평균 4.62배 빠릅니다.
5. 사용 사례
TRM Labs는 Iceberg 도입으로 어플리케이션 데이터를 통합하고 P95 성능 50% 향상, 쿼리 타임아웃 오류 54% 감소를 달성했습니다. Herdwatch는 2-5분 걸리던 시간을 700ms-1.5s로 단축했습니다. RedNote는 100PB 데이터와 일간 3PB 증가 환경에서 Clickhouse보다 나은 성능을 달성했으며, Tencent Games는 PB 수준의 Iceberg Lakehouse를 10초 이내 데이터 신선도로 운영 중입니다.
핵심 포인트
Apache Iceberg V3의 삭제 벡터는 읽기/쓰기 성능을 크게 향상시킵니다. StarRocks는 계층적 캐싱, MPP 아키텍처, 벡터화된 연산으로 Trino 대비 약 5배의 성능을 제공합니다. 네이티브 테이블과 비교해도 12% 차이만 있어 Single Source of Truth 구현이 가능합니다. 적절한 쿼리 엔진 선택과 성능 튜닝을 통해 데이터 레이크하우스 환경에서 쿼리 성능을 최적화하고 비용을 절감할 수 있습니다.