개요
Fanatics의 데이터 엔지니어링 담당 Balo와 스태프 엔지니어 Alexey가 비용 효율적인 분석 스택 구축 사례를 공유한 웨비나입니다. Apache Iceberg와 StarRocks를 활용하여 복잡한 분석 에코시스템을 간소화하고 Snowflake 사용률을 25%로 줄이며 90% 비용 절감을 달성했습니다.
주요 내용
1. Fanatics 데이터 환경
Fanatics는 10개 리그(NFL, NBA, NHL, 골프, 축구, WWE 등)의 스포츠 상품을 판매하며, 1억 명의 관광객 데이터베이스를 보유하고 있습니다. 900개 웹사이트와 1,400만 개 제품을 지원하며, 10개 도메인에 걸쳐 120만 개의 데이터셋을 보유하고 있습니다. 매일 100만 개의 이벤트를 수집하며 데이터 규모는 6테라바이트에 달합니다.
2. 기존 시스템의 문제점
기존에는 분산된 데이터 웨어하우스 구조(Redshift, Snowflake)를 사용했으며, 실시간 데이터 처리에 Druid를 사용했습니다. 웨어하우스 비용이 지속적으로 증가하고, 쿼리 응답 시간이 30초 이상으로 느렸습니다. 데이터 트랜스포메이션 메커니즘 부족과 중앙 집중적 소유권 부재로 "데이터 스파게티" 현상이 발생했습니다.
3. 새로운 아키텍처
2022-2023년에 Apache Iceberg를 핵심 테이블 포맷으로 채택하고, StarRocks를 통합 쿼리 레이어로 활용했습니다. 실시간 대시보드와 데이터 분석을 지원하며, Apache Superset을 시각화 도구로, DBT를 데이터 변환 도구로 채택했습니다. Glue Catalog와의 통합으로 데이터 카탈로그화 및 관리가 개선되었습니다.
4. Kafka 데이터 수집 방법
Kafka에서 StarRocks로 데이터를 수집하는 세 가지 방법이 소개되었습니다. Streaming Load는 REST API를 활용하며 프로토타이핑에 적합합니다. Routine Load는 Kafka 컨슈머 역할을 하며 여러 이벤트 타입을 처리할 수 있습니다. Broker Load는 S3 파일을 네이티브 테이블로 로드합니다.
5. 데이터 모델링 및 쿼리 최적화
테이블 타입은 Primary Key 테이블과 Duplicate Key 테이블 두 가지가 있습니다. JSON 데이터 처리 시 구조화된 필드 사용을 권장하며, 테이블 사이즈 최적화와 AMV(Asynchronous Materialized Views) 활용이 중요합니다. 쿼리 성능 향상을 위해 데이터 셔플링에 주의해야 합니다.
핵심 포인트
Fanatics는 Apache Iceberg + StarRocks + Apache Superset 아키텍처를 통해 단일 클러스터로 수백만 개의 테이블을 관리하게 되었습니다. Snowflake 사용률이 25%로 감소하고 90% 비용 절감을 달성했으며, 대시보드 생성 시간이 대폭 단축되어 1분 이내에 5개 대시보드 생성이 가능해졌습니다.
Q&A
기술 도입 시 정치적 도전은 기존 플랫폼으로는 불가능한 새로운 기능을 제시하여 해결했습니다. StarRocks와 Trino 비교는 데이터 볼륨과 용도에 따라 선택합니다. 환경은 EC2에서 운영하며 EBS 볼륨을 활용합니다. Apache Iceberg 테이블과 StarRocks 네이티브 테이블 간에는 5-10초 정도의 성능 차이가 있습니다.
향후 계획
AI 기능 확장, 다양한 BI 도구 통합(Tableau, Power BI, MicroStrategy 등), 클러스터 관리 최적화가 계획되어 있습니다.