
백엔드
쿼리가 아니라 정의를 고치기로 했습니다: Databricks Metric View 도입기
두줄요약
Databricks Metric View로 지표 정의를 한곳에 모아 대시보드와 분석 에이전트가 같은 값을 읽게 했습니다. 정제·집계 반복을 줄여 조회 비용도 함께 낮췄습니다.
문제 상황
- 게임 런칭 직후 대시보드와 분석 쿼리마다 지표 정의가 달라져 같은 승률도 서로 다른 값으로 계산되는 문제
- nested 로그 정제, 소스 통합, 중복 제거 비용이 각 쿼리마다 반복되어 조회 성능 저하
- 분석 에이전트가 지표 기준을 스스로 판단하며 대시보드와 다른 값을 내는 문제
원인 분석
- 지표 산식을 쿼리 내부에 분산해 두어 정의의 일관성 상실
- 가산 지표와 비가산 지표를 구분하지 못해 잘못된 재집계 발생
- 에이전트가 참조할 단일 의미 계층 부재
해결 방법
- Databricks Unity Catalog의 Metric View를 Semantic 레이어로 두고 지표 정의를 YAML로 중앙화
- Silver에서 정제된 데이터를 읽고, Gold는 고정 단위의 빠른 조회에만 사용
- measure comment에 비가산성, 제외 dimension 같은 규칙을 태그로 명시
