AI Briefing

[if kakao 2022] 배치 성능을 고려한 최적의 Aggregation

·2022.12.09 20:00

대량 데이터 집계 시 발생하는 DB 부하를 줄이기 위해 복잡한 GroupBy 쿼리 대신 새로운 Aggregation 아키텍처를 제안한다.

통계 데이터를 생성할 때 개발자들은 주로 GroupBy, Sum, Count 구문을 사용해 집계 연산을 DB에 위임하는 방식을 사용한다. 하지만 데이터가 수천만 건 이상으로 늘어나면 이러한 방식은 심각한 성능 문제를 야기한다.

JoinGroupBy를 결합한 복잡한 쿼리는 실행 계획을 예측하기 어렵게 만든다. 인덱스를 설정하더라도 Temporary Table을 생성하거나 Filesort를 유발하여 조회 성능을 급격히 떨어뜨린다.

이러한 쿼리 의존적 방식은 다음과 같은 문제를 일으킨다:

  • 연산 과정이 쿼리에 집중되어 데이터베이스 부하를 가중함
  • 데이터 규모 변화에 따른 쿼리 튜닝 난이도 상승
  • 인덱스 추가 시 쓰기 성능 저하 및 저장 공간 문제 발생

결국 기존의 ItemReader 개선만으로는 한계가 있으며, 복잡한 쿼리를 단순화하고 연산 방식을 근본적으로 바꾸는 새로운 Aggregation 아키텍처가 필요하다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.