구문
인수
db_name- TimeSeries 테이블이 있는 데이터베이스 이름입니다.time_series_table- TimeSeries 테이블 이름입니다.promql_query- PromQL 구문으로 작성한 쿼리입니다.start_time- 평가 범위의 시작 시간입니다. 밀리초 이상의 정밀도를 사용합니다.end_time- 평가 범위의 종료 시간입니다. 밀리초 이상의 정밀도를 사용합니다.step-start_time부터end_time까지(양 끝 포함) 평가 시간을 순회할 때 사용하는 간격입니다.
반환 값
이 함수가 반환하는 컬럼은promql_query 매개변수에 전달한 쿼리의 결과 타입에 따라 달라집니다.
TimeSeries 테이블에 저장된 값의 타입과 관계없이 반환 값은 항상
Float64입니다. 타임스탬프의 정밀도 S는 테이블에 저장된 타임스탬프의 정밀도를 따르지만
최소 3(밀리초)입니다. start_time과 end_time이 같은 시간대의 DateTime 또는 DateTime64 타입이면 시간대 TZ는 해당 시간대를 따르고,
그렇지 않으면 테이블에 저장된 타임스탬프의 시간대를 따릅니다.
TimeSeries 테이블의 버전이 2 이하이면 samples 컬럼의 이름은 time_series입니다.
지원되는 PromQL 기능
셀렉터
인스턴트 셀렉터, 범위 셀렉터, 레이블 매처(=, !=, =~, !~), offset 수정자, @ 타임스탬프 수정자, 그리고 서브쿼리.
함수
참고:
histogram_quantile은 기존 히스토그램 버킷(le 레이블로 식별됨)에 선형 보간을 사용합니다. 네이티브 히스토그램은 지원되지 않습니다. phi(분위수 수준) 인수는 상수 스칼라여야 합니다. histogram_quantile(time() / 1000, ...)처럼 간격마다 값이 달라지는 표현식은 NOT_IMPLEMENTED 예외와 함께 거부됩니다.
참고: min_of(a, b)와 max_of(a, b)는 두 스칼라 값 중 각각 더 작은 값과 더 큰 값을 반환합니다. 두 인수 모두 스칼라여야 합니다.
참고: min_of, max_of, ts_of_min_over_time, ts_of_max_over_time, ts_of_last_over_time, first_over_time, ts_of_first_over_time, mad_over_time은 Prometheus에서 실험적 함수입니다(Prometheus에서는 --enable-feature=promql-experimental-functions로 활성화). ClickHouse는 해당 flag 없이도 이 함수들을 평가합니다.
연산자
on()/ignoring() 및 group_left()/group_right() 수정자와 함께 사용하는 모든 산술(+, -, *, /, %, ^, atan2), 비교(==, !=, <, >, <=, >=, 선택적 bool 포함) 이항 연산자
on()/ignoring() 수정자와 함께 사용하는 논리 집합 연산자 and, or, unless
단항 연산자 + 및 -.
집계 연산자
sum, avg, min, max, count, count_values, stddev, stdvar, group, quantile, topk, bottomk, limitk — 선택적으로 by() 또는 without() 수정자와 함께 사용할 수 있습니다.