백분위수 값 추정하기

Snowflake는 데이터 세트에서 백분위수 값을 공간 및 시간 효율적으로 추정하는 방법인 t-Digest 알고리즘의 개선된 버전을 사용합니다.

이 항목의 내용:

개요

Snowflake는 Dunning 및 Ertl이 제안한 t-Digest 알고리즘 논문 에 대한 구현의 개선된 버전을 제공합니다. 이는 함수의 APPROX_PERCENTILE 패밀리를 통해 구현되었습니다.

논문에서와 같이 알고리즘에는 일정한 상대 오차가 있습니다. 이 알고리즘은 상당한 경험적 지원을 제공하지만, 정확성을 보장한다는 엄격한 증거는 없다는 점에 유의하십시오.

SQL 함수

다음 집계 함수 는 t-Digest를 사용하여 백분위수 값을 추정하기 위해 제공됩니다.

  • APPROX_PERCENTILE: 올바른 백분위수 값의 추정치를 반환합니다.

  • APPROX_PERCENTILE_ACCUMULATE: 최종 추정 단계를 건너뛰고, 집계가 끝날 때 중간 t-Digest 상태를 대신 반환합니다.

  • APPROX_PERCENTILE_COMBINE: 여러 개의 입력 상태를 단일 출력 상태로 결합(즉, 병합)합니다.

  • APPROX_PERCENTILE_ESTIMATE: APPROX_PERCENTILE_ACCUMULATE 또는 APPROX_PERCENTILE_COMBINE이 반환한 t-Digest 상태의 백분위 추정치를 계산합니다.

구현 세부 정보

  • 추정에서는 입력의 크기와 관계없이 일정한 양의 공간을 사용합니다.

  • t-Digest 상태는 백분위수 값과 독립적입니다. 이를 통해 t-Digest 상태를 한 번 계산한 후 여러 백분위수 값에 대한 상태를 쿼리할 수 있습니다.