메인 콘텐츠로 건너뛰기

설명

State 조합자는 avg 함수에 적용할 수 있으며, 평균값에 대해 지정된 타입이 T일 때 AggregateFunction(avg, T) 타입의 중간 상태를 생성합니다.

사용 예시

이 예시에서는 AggregateFunction 유형과 avgState 함수를 함께 사용하여 웹사이트 트래픽 데이터를 집계하는 방법을 살펴봅니다. 먼저 웹사이트 트래픽 데이터를 위한 소스 테이블을 생성하세요:
평균 응답 시간을 저장할 집계 테이블을 생성합니다. avg는 복잡한 상태(합계와 카운트)가 필요하므로 SimpleAggregateFunction 유형을 사용할 수 없습니다. 따라서 AggregateFunction 유형을 사용합니다:
새 데이터에 대한 삽입 트리거로 작동하며 중간 상태 데이터를 위에서 정의한 대상 테이블에 저장하는 증분형 materialized view를 생성합니다:
소스 테이블에 초기 데이터를 삽입하여 디스크에 파트를 생성합니다:
디스크에 두 번째 파트(part)를 생성하기 위해 데이터를 추가로 삽입합니다:
대상 테이블 page_performance를 확인하십시오:
avg_response_time 컬럼의 타입이 AggregateFunction(avg, UInt32)이며 중간 상태 정보를 저장한다는 점에 주목하십시오. 또한 avg_response_time의 행 데이터는 실질적으로 의미가 없으며, �, n, F, }와 같은 알 수 없는 문자가 표시됩니다. 이는 터미널이 바이너리 데이터를 텍스트로 출력하려 할 때 나타나는 현상입니다. AggregateFunction 타입은 효율적인 저장 및 연산을 위해 최적화된 바이너리 형식으로 상태를 저장하기 때문에, 사람이 읽을 수 있는 형태로는 표시되지 않습니다. 이 바이너리 상태에는 평균을 계산하는 데 필요한 모든 정보가 포함되어 있습니다. 이를 활용하려면 Merge 컴비네이터를 사용하십시오:
이제 올바른 평균값을 확인할 수 있습니다:

관련 항목

마지막 수정일 2026년 7월 2일