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)에서도 사용할 수 있어요.

더 알아보기 (Learn more)