분위수 다이제스트 함수

분위수 다이제스트 함수 (Quantile digest functions)

데이터 스케치인 분위수 다이제스트(quantile digest)로 근사 백분위수를 다루는 함수들이에요. 큰 데이터에서 정확한 백분위수 대신 근사값으로 빠르게 계산하고 싶을 때 써요.

출처: 문서

본문

데이터 구조 (Data structures)

분위수 다이제스트는 근사 백분위수 정보를 저장하는 데이터 스케치예요. Trino에서 이 데이터 구조의 타입은 qdigest라고 하며, bigint, double, real 중 하나여야 하는 파라미터를 가져요. 이 파라미터는 qdigest가 받아들일 수 있는 숫자 집합을 나타내요. 정밀도를 잃지 않고 병합할 수 있고, 저장·검색을 위해 VARBINARY로 캐스팅할 수 있어요.

함수 (Functions)

merge(qdigest) → qdigest

입력된 모든 qdigest를 하나의 qdigest로 병합해요.

value_at_quantile(qdigest(T), quantile) → T

0과 1 사이의 숫자 quantile이 주어졌을 때 분위수 다이제스트에서 근사 백분위수 값을 반환해요.

quantile_at_value(qdigest(T), T) → quantile

입력 값이 주어졌을 때 분위수 다이제스트에서 0과 1 사이의 근사 quantile 숫자를 반환해요. 분위수 다이제스트가 비어 있거나 입력 값이 분위수 다이제스트 범위 밖이면 null을 반환해요.

values_at_quantiles(qdigest(T), quantiles) -> array(T)

입력 분위수 다이제스트와 0과 1 사이의 값 배열이 주어졌을 때, 반환할 분위수들을 나타내는 배열로 근사 백분위수 값들을 반환해요.

qdigest_agg(x) -> qdigest([same as x])

x의 모든 입력 값으로 구성된 qdigest를 반환해요.

qdigest_agg(x, w) -> qdigest([same as x])

항목별 가중치 w를 사용해 x의 모든 입력 값으로 구성된 qdigest를 반환해요.

qdigest_agg(x, w, accuracy) -> qdigest([same as x])

항목별 가중치 w와 최대 오차 accuracy를 사용해 x의 모든 입력 값으로 구성된 qdigest를 반환해요. accuracy는 0보다 크고 1보다 작은 값이어야 하며, 모든 입력 행에 대해 상수여야 해요.

더 알아보기 (Learn more)

분위수 다이제스트는 근사 집계의 한 형태예요. Trino의 근사 집계 함수 전반은 집계 함수 문서에서 더 볼 수 있어요.