Ken
원문: Self-Service Data Analytics for Microsoft's Biggest Web Properties with ClickHouse
Microsoft의 WebXT 팀은 Bing, Edge Browser, MSN, Microsoft Advertising, Maps 등 회사의 핵심 웹 자산을 책임지고 있습니다. 이들 서비스에서 매일 생성되는 페타바이트 규모의 데이터를 직원들이 직접 "셀프서비스"로 분석할 수 있도록 만든 내부 도구가 바로 Titan입니다. 이 글에서는 Microsoft가 어떻게 ClickHouse를 핵심 데이터 엔진으로 선택했고, 어떤 최적화를 통해 페타바이트 규모를 초 단위로 분석할 수 있게 되었는지 살펴봅니다.
규모의 문제
WebXT 팀이 처리해야 하는 데이터의 규모는 다음과 같습니다:
- 페타바이트 규모의 일일 로그 및 이벤트 데이터
- 2,500명 이상의 Microsoft 직원이 매월 Titan 사용
- 매일 10만 건 이상의 쿼리 처리
- Bing처럼 다양하고 비싼 쿼리를 위해 수백 대의 머신으로 구성된 클러스터 운영
Adobe Analytics와 Scuba를 대체하기까지
Microsoft는 기존에 Adobe Analytics와 Interana(내부적으로 "Scuba"라 부름) 같은 3rd party 도구를 사용했습니다. 도구는 잘 동작했지만, 다음과 같은 한계가 있었습니다:
- 자사의 빠른 혁신 속도를 따라잡기 어려움
- 라이선스 비용 부담
- 사내에서 자유롭게 확장·커스터마이즈할 수 없는 구조
"We needed something we could build in-house, so that we could innovate faster." — Satish Manivannan, Senior Director of Data and Analytics
ClickHouse + Superset 조합으로 전환한 결과 수백만 달러의 라이선스 비용을 절감했습니다.
Titan의 핵심 요구사항
- 셀프서비스: 데이터 엔지니어 도움 없이 직접 슬라이스 & 다이스
- 응답 시간: 초 단위 인터랙티브 분석
- 커스터마이징: 메트릭, 필터, 컬럼 자유 구성
- 고급 분석: User Analytics, Cohort 분석, A/B 테스트
- 유연한 데이터 보존 정책
- 확장성, 성능, 고가용성 기반 인프라
ClickHouse 선택 이유
Manivannan은 ClickHouse가 위 요구사항 대부분을 충족했다고 평가합니다:
1. 속도와 비용 효율성
- "Faster and cheaper" — Titan의 모토를 그대로 구현
- 자체 최적화를 더해 페타바이트 규모를 초 단위 응답으로
2. 오픈소스 — 경쟁 우위
- Microsoft 내부 기술뿐 아니라 오픈소스 커뮤니티 적극 수용
- "치열한 경쟁자들과 맞서기 위해 오픈소스에서 금맥을 찾았다"
3. 풍부한 내장 텔레메트리
- 데이터 사용량과 스토리지 모니터링이 용이
- 운영 관점에서 가시성 확보
Titan 아키텍처
Lin Tang(Principal Software Engineering Manager) 발표 기반:
- 데이터 소스 엔진: Cosmos, Azure, 실시간 스트리밍 시나리오
- API 계층:
- 인증 처리
- 백엔드 DB 보호 (요청 폭주 방지)
- Microsoft 내부 API 연동 (실험/A/B 시나리오 메타데이터)
- 저부하 시간대 사전 캐싱으로 대시보드 즉시 표시
- 시각화: Apache Superset 기반 커스터마이징 (쿼리 빌더, 시각화, 샘플링 토글)
- 클러스터 관리: ZooKeeper로 ClickHouse 클러스터 운영
기술적 돌파구: 자체 옵티마이저
WebXT 팀은 ClickHouse 위에 자체 쿼리 옵티마이저들을 구축했습니다.
1. Joiner Optimizer
- 대규모 빅데이터 조인 처리 최적화
- 쿼리 성능 10배 개선
2. Condition Optimizer
- WHERE 조건을 먼저 적용해 처리 데이터 크기 감소
- 후속 연산 성능 향상
3. Time Zone Optimizer
- 데이터 범위를 먼저 선택한 후 타임스탬프 적용
- 시간 범위 쿼리 성능 개선
4. 저장 최적화
- Role-based return and deletion: 시스템 성능에 영향 없이 효율적 삭제
- ZSTD 압축: 일부 테이블에서 50%의 저장 공간 절감 (다만 쿼리 성능과의 트레이드오프 존재)
- 다양한 인코딩 옵션 활용
Microsoft Clarity와의 시너지
같은 행사에서 소개된 Microsoft Clarity는 웹사이트 소유자에게 무료로 제공되는 행동 분석 도구입니다. Clarity 역시 ClickHouse를 기반으로 페타바이트 규모의 사용자 행동 데이터를 처리하고 있어, ClickHouse가 Microsoft 내부의 다양한 분석 제품에 깊이 자리잡고 있음을 보여줍니다.
교훈과 시사점
오픈소스 + 자체 최적화의 결합
Microsoft 같은 거대 기업조차도 모든 것을 내부 기술로만 해결하지 않습니다. ClickHouse와 Superset 같은 오픈소스를 적극 채택하고, 그 위에 자사 도메인에 특화된 옵티마이저와 캐싱 레이어를 더해 최고의 결과를 만들어냈습니다.
셀프서비스가 진짜 가치를 만든다
2,500명이 매일 직접 데이터를 다루고 10만 건의 쿼리가 발생한다는 사실은, 단순한 "데이터 수집·저장"이 아니라 누구나 빠르게 인사이트를 얻을 수 있는 환경이 조직의 의사결정 속도를 결정한다는 것을 보여줍니다.
결론
Microsoft WebXT 팀의 Titan 사례는 "오픈소스 + 자체 도메인 최적화"가 어떻게 페타바이트 규모의 분석을 초 단위로, 그리고 수백만 달러를 절감하면서 가능하게 하는지를 보여줍니다. ClickHouse는 Bing부터 Microsoft Clarity까지 회사의 가장 큰 웹 자산들을 떠받치는 핵심 분석 엔진으로 자리 잡았습니다.