콘텐츠로 이동

연속 집계 (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 버전에 따라 다르므로, 사용 버전 공식 문서를 재확인하세요. (확인 필요)

더 알아보기