메인 콘텐츠로 건너뛰기
ClickHouse에서는 표준 SQL 집계와 윈도우 함수를 사용해 시계열 분석을 수행할 수 있습니다. 시계열 데이터를 다룰 때는 일반적으로 다음과 같은 3가지 주요 메트릭 타입을 접하게 됩니다.
  • 시간에 따라 단조롭게 증가하는 Counter 메트릭(예: 페이지 조회 수, 전체 이벤트 수)
  • 특정 시점의 측정값을 나타내며 증가하거나 감소할 수 있는 Gauge 메트릭(예: CPU 사용량, 온도)
  • 관측값을 샘플링해 버킷별로 집계하는 히스토그램(예: 요청 지속 시간, 응답 크기)
이러한 메트릭의 일반적인 분석 패턴으로는 기간별 값 비교, 누적 합계 계산, 변화율 산정, 분포 분석 등이 있습니다. 이 모든 작업은 집계, sum() OVER와 같은 윈도우 함수, 그리고 histogram()과 같은 특화 함수를 조합해 수행할 수 있습니다.

기간별 변화

시계열 데이터를 분석할 때는 시간 범위 간 값이 어떻게 변하는지 파악해야 하는 경우가 많습니다. 이는 Gauge 및 Counter 메트릭 모두에서 중요합니다. lagInFrame 윈도 함수는 이전 기간의 값에 접근하여 이러한 변화를 계산할 수 있게 해줍니다. 다음 쿼리는 “Weird Al” Yankovic의 Wikipedia 페이지 조회수에 대한 일별 변화를 계산하는 방법을 보여줍니다. trend 컬럼은 이전 날과 비교해 트래픽이 증가했는지(양수 값) 또는 감소했는지(음수 값)를 보여주며, 활동의 비정상적인 급증이나 급감을 식별하는 데 도움이 됩니다.

누적 값

Counter 메트릭은 시간이 지남에 따라 자연스럽게 누적됩니다. 이러한 누적 증가를 분석하려면 윈도우 함수를 사용해 누적 합계를 계산할 수 있습니다. 다음 쿼리는 sum() OVER 절을 사용해 이를 보여줍니다. 이 절은 누적 합계를 생성합니다. bar() 함수는 증가 추이를 시각적으로 나타냅니다.

발생률 계산

시계열 데이터를 분석할 때는 단위 시간당 이벤트 발생률을 파악하는 것이 유용한 경우가 많습니다. 이 쿼리는 시간별 합계를 1시간의 초 수(3600)로 나누어 초당 페이지 조회 수를 계산합니다. 막대 시각화는 활동이 가장 많은 피크 시간을 식별하는 데 도움이 됩니다.

히스토그램

시계열 데이터의 일반적인 활용 사례 중 하나는 추적된 이벤트를 기반으로 히스토그램을 만드는 것입니다. 총 hits 수에 따른 페이지 수의 분포를 파악하려고 하며, hits가 10,000회를 초과하는 페이지만 포함한다고 가정해 보겠습니다. 이 경우 histogram() 함수를 사용해 bin 개수에 따라 적응형 히스토그램을 자동으로 생성할 수 있습니다.
그런 다음 arrayJoin()을 사용해 데이터를 다듬고 bar()로 시각화할 수 있습니다:
마지막 수정일 2026년 6월 19일