검증 사례 · 금융 고객
미래에셋금융서비스 영업 지원 BI 리포트 성능 개선
미래에셋금융서비스의 영업 지원 BI 솔루션(Sales Support BI Solution)에서 리포트 질의를 고객의 실제 데이터로 검증했습니다. 기존 PostgreSQL에서 20만 건에 229초 걸리던 리포트 질의를, GritDB는 50배인 1,000만 건에서 8.8초에 끝냈습니다.
기존 PostgreSQL20만 건
229초
GritDB1,000만 건 · 50배
8.8초
- 1칸: 20만 건
- 오른쪽 숫자: 같은 리포트 질의를 실행한 시간
결과
영업 지원 BI 솔루션은 영업 실적 리포트를 업무용 PostgreSQL에서 바로 분석해서 느렸습니다. 리포트의 분석 질의만 GritDB 분석계로 옮기자, 50배 많은 데이터에서도 리포트 질의가 8.8초에 끝났습니다.
1 리포트가 느렸다
전 · 업무용 PostgreSQL에서 분석
백엔드가 테이블 전체를 읽어 와 메모리에서 분석했습니다. 행 단위로 저장하는 PostgreSQL은 몇 개 열만 집계해도 행을 통째로 읽습니다.
20만 건 리포트 질의에 229초가 걸렸습니다. 데이터가 늘수록 더 느려지고 메모리를 많이 썼습니다.
2 분석 질의는 GritDB가
GritDB 분석계 · 열 기반 분석 엔진
열로 저장 · 진한 열: 리포트가 읽는 열
리포트의 분석 질의를 GritDB가 실행합니다. 필요한 열만 읽고 여러 CPU 코어로 나눠 집계합니다. 백엔드는 분석 결과만 받아 최종 결과를 만듭니다.
업무용 PostgreSQL의 변경은 PostgreSQL 내장 복제로 받습니다.
3 50배 데이터도 8.8초
후 · 영업 지원 BI 리포트
두 시간 모두 데이터베이스가 리포트 질의를 실행한 시간입니다. GritDB 쪽 데이터가 50배 많습니다.
문제와 개선
문제
백엔드가 테이블 전체를 읽어 와 메모리에서 분석했습니다. 데이터가 늘수록 응답이 느려지고 메모리를 많이 썼습니다.
GritDB로 개선
분석 질의를 GritDB가 실행하고, 백엔드는 분석 결과만 받아 최종 결과를 만듭니다. 메모리를 지나치게 많이 쓰던 문제를 없앴습니다.
문제
리포트 질의 자체도 느렸습니다. 기존 PostgreSQL은 데이터를 행 단위로 저장해, 몇 개 열만 집계하는 질의도 행을 통째로 읽습니다. 20만 건 리포트 질의에 229초가 걸렸습니다.
GritDB로 개선
GritDB는 분석 질의를 열 기반 분석 엔진에서 실행합니다. 필요한 열만 읽고 여러 CPU 코어에서 나눠 처리해서, 50배 많은 1,000만 건에서도 리포트 질의를 8.8초에 끝냈습니다.
구성
전: 업무용 PostgreSQL에서 분석
업무용 PostgreSQL행 저장후: GritDB 분석계를 붙임
업무용 PostgreSQL업무 처리- 업무용 PostgreSQL은 그대로 업무를 처리하고, 변경을 PostgreSQL 내장 복제(publication · subscription)로 GritDB 분석계에 보냅니다.
- 영업 지원 BI의 백엔드는 리포트의 분석 질의를 GritDB 분석계에 보내고, 분석 결과만 받아 최종 결과를 만듭니다.
- 검증: 고객의 실제 데이터로 같은 리포트 질의를 실행해 시간을 쟀습니다 (기존 PostgreSQL 20만 건 · GritDB 1,000만 건).
진행 과정 보기진행 과정 접기
- 1
성능 시험
백엔드와 데이터베이스 구조를 분석해, 테이블 전체를 읽어 오는 방식에서 병목을 찾았습니다.
- 2
백엔드 분석 개선
리포트와 분석을 만드는 백엔드에서 분석 부분을 고쳤습니다.
- 3
GritDB로 분석 질의 실행
분석 질의를 GritDB가 실행하고, 백엔드는 최종 결과만 만들도록 바꿨습니다.
두 엔진의 구성은 아키텍처에 있습니다. 같은 검증을 원하시면 도입 문의를 남겨 주세요.
미래에셋금융서비스 로고는 미래에셋금융서비스 또는 그 계열사의 상표입니다. Postgres · PostgreSQL · Slonik 로고는 PostgreSQL Community Association of Canada의 상표 또는 등록 상표이며, 허락을 받아 사용합니다.
GritDB를 직접 확인해 보세요
사전 상담이나 PoC를 요청하시면 담당자가 연락드립니다.
