04 실시간 집계 · 강사용
증분 MV의 동작과 중간가의 의미를 분명하게 설명합니다.
macOS terminal: Run workshop commands in Terminal using zsh or bash.
진행 시간
20분.
강의 스크립트
- MV는 삽입된 블록을 처리합니다. 대시보드를 새로 고칠 때마다 히스토리를 다시 스캔하지 않습니다.
State함수는 부분 집계 상태를 저장하고, 짝이 되는Merge함수가 이를 최종화합니다.- OHLC는 오직 호가 중간가입니다. 주문 단위의 변경 가격과 마지막 거래가를 섞으면 차트가 의미를 잃습니다.
- 컬렉터가 MV보다 먼저 중복을 제거합니다. 사후에
ReplacingMergeTree를 붙여도 집계의 이중 계산은 되돌릴 수 없습니다.
자주 발생하는 장애
- 집계 결과가 비어 있음: 원본 중간가 행이 존재하는지, 그리고 MV가 데이터 수집보다 먼저 생성되었는지 확인합니다.
- MV를 늦게 생성함: 생성 후 fixture 모드를 재시작하거나, 새로 들어오는 행만 대상으로 인정합니다.
- 최신 분(minute)이 오래됨: SQL을 디버깅하기 전에 컬렉터 헬스를 확인합니다.
초기화
원본 데이터를 지우지 않고 집계만 새로 만들려면, 대상 테이블과 MV를 다시 생성한 뒤 새 이벤트가
채워지도록 두세요. OPTIMIZE TABLE FINAL은 실행하지 마세요.