DISTINCTCOUNTCPCSKETCH
DISTINCTCOUNTCPCSKETCH
DISTINCTCOUNTCPCSKETCH 함수는 CPC sketch를 사용해 근사 고유 개수를 계산해요.
압축 확률 계수(CPC) Sketch는 매우 공간 효율적인 카디널리티 추정을 가능하게 해요. 저장된 CPC sketch는 비슷한 정확도의 HLL sketch보다 약 40% 적은 공간을 사용합니다. Pinot은 여러 기존 CPC sketch를 함께 집계해 전체 고유 개수를 얻거나, raw 값에서 직접 추정할 수 있어요.
정확한 고유 개수가 필요하다면 DISTINCTCOUNT를 참고하세요.
출처: 문서
본문
distinctCountCpcSketch(**<cpcSketchColumn>, <cpcSketchParams>**) -> Long
cpcSketchColumn(필수): 집계할 컬럼 이름.cpcSketchParams(필수): 중간 CPC sketch를 구성하기 위한 세미콜론으로 구분된 파라미터 문자열.- 지원 파라미터:
nominalEntries: sketch 생성에 사용할 nominal entries. (기본 4096)accumulatorThreshold: 병합 전 메모리에 유지할 sketch 수. (기본 2)
사용 예시
이 예시들은 배치 퀵스타트를 기반으로 해요.
select distinctCountCpcSketch(teamID) AS value
from baseballStats
| value |
|---|
| 150 |
select distinctCountCpcSketch(teamID, 'nominalEntries=256;accumulatorThreshold=10') AS value
from baseballStats
| value |
|---|
| 150 |
더 복잡한 사용 사례를 위해 cpcSketchUnion으로 CPC sketch를 결합해 추정값을 추출할 수도 있어요.
select
getCpcSketchEstimate(
cpcSketchUnion(
distinctCountRawCpcSketch(teamID) FILTER (WHERE yearID = 2004),
distinctCountRawCpcSketch(teamID) FILTER (WHERE league = 'NL')
)
) AS value
from baseballStats
| value |
|---|
| 58 |
이 함수는 다중 스테이지 엔진(MSE)에서도 사용할 수 있어요.