FrequentStringsSketch

FrequentStringsSketch (빈도 sketch - STRING)

FREQUENTSTRINGSSKETCH는 항목의 빈도를 추정하는 데이터-sketch 함수예요. Apache Datasketches 라이브러리를 기반으로 하며, 다른 sketch와 병합할 수 있는 직렬화된 sketch 객체를 반환합니다.

출처: 문서

본문

FREQUENTSTRINGSSKETCH(column, maxMapSize=256) -> Base64 encoded sketch object

  • column (필수): 집계할 컬럼 이름. 'STRING'으로 캐스팅할 수 있는 타입이어야 해요.
  • maxMapSize: 내부 해시 맵의 최대 물리적 길이를 지정하는 값. maxMapSize는 2의 거듭제곱이어야 하며 기본값은 256입니다.

고급 null 처리를 활성화하면 Pinot은 컬럼의 기본 null 값을 항목으로 세는 대신 null 행을 건너뜁니다. 기여하는 행이 없으면 함수는 NULL을 반환해요. 고급 null 처리가 없으면 Pinot은 컬럼의 기본 null 값을 포함합니다. Pinot은 각 처리 블록의 행으로 집계를 제한하므로, 재사용된 내부 버퍼에 남은 값은 다시 세지 않습니다.

사용 예시

select FREQUENTSTRINGSSKETCH(AirlineID, 16) from airlineStats
frequentstringssketch(AirlineID)
BAEKCAUAAAAOAA...

예를 들어 Java에서 다음과 같이 사용할 수 있어요.

byte[] byteArr = Base64.getDecoder().decode(encodedSketch);
ItemsSketch<String> sketch = ItemsSketch.getInstance(Memory.wrap(byteArr), new ArrayOfStringsSerDe());

ItemsSketch.Row[] items = sketch.getFrequentItems(ErrorType.NO_FALSE_NEGATIVES);
for (int i = 0; i < items.length; i++) {
  ItemsSketch.Row item = items[i];
  System.out.printf("Airline: %s, Frequency: %d %n", item.getItem(), item.getEstimate());
}

sketch API에 대한 더 많은 예시는 Datasketches 문서를 참고하세요.

더 알아보기 (Learn more)