연속 집계 (Continuous Aggregates)¶
TimescaleDB 의 연속 집계는 하이퍼테이블의 실시간 집계 뷰를 자동·점진적으로 유지하는 기능입니다. 레코드가 쌓일 때마다 전체를 재계산하지 않고, 새 구간만 추가 계산해 대용량 시계열의 평균·합계·카운트같은 요약을 빠르게 조회하게 해줍니다.
하이퍼테이블 위에 만드는 집계¶
연속 집계는 보통 하이퍼테이블(시간 파티셔닝 테이블) 위에 생성합니다. 예:
CREATE MATERIALIZED VIEW daily_stats
WITH (timescaledb.continuous) AS
SELECT time_bucket('1 day', ts) AS day, sensor_id,
avg(value), count(*)
FROM readings
GROUP BY day, sensor_id;
time_bucket으로 시간 구간을 나눠 집계합니다.- 생성된 뷰는 새 데이터가 들어오면 정책(policy) 또는 수동
refresh로 마지막 집계 시점 이후만 다시 계산해 최신 상태를 유지합니다.
왜 유용한가¶
- 점진 갱신: 전체 재스캔 없이 새 구간만 반영 → 대규모 시계열에서 비용이 거의 상수 수준으로 작아집니다.
- 실시간(원본)과 요약(집계)을 나눠, 대시보드 쿼리는 집계 뷰를, 상세 조회는 원본을 쓰도록 분리할 수 있습니다.
데이터스케쳐스 실무 관점¶
- 행사·센서 시계열 지표: D-SKET Events 나 실시간 모니터링에서 시계열 데이터의 일별/시간별 집계(평균·합계·참여율)를 대시보드로 노출할 때, 원본은 자세히 남기고 연속 집계 뷰로 조회 지연을 낮춥니다.
- 연속 집계 정책을 설정하면 배치 ETL 없이도 최신 요약이 유지되므로 운영 부담이 줄어듭니다.
확인 필요¶
- 연속 집계의 정책·refresh 구문은 TimescaleDB 버전에 따라 다르므로, 사용 버전 공식 문서를 재확인하세요. (확인 필요)