DATASKETCHES_HLL_ACCUMULATE

DATASKETCHES_HLL_ACCUMULATE

DATASKETCHES_HLL_ACCUMULATE() 함수는 집계가 끝날 때의 스케치(sketch)를 반환해요.

이 함수는 Apache DataSketches가 사용하는 형식의 바이너리 스케치를 읽을 수 있는 HLL(HyperLogLog) 함수 버전이에요. 자세한 내용은 Apache DataSketches 문서를 참고하세요.

DATASKETCHES_HLL은 최종 카디널리티 추정값이 반환될 때 중간 상태를 버려요. 대량 로드 중 증분 카디널리티 추정 같은 고급 사용 사례에서는 중간 상태를 유지하고 싶을 수 있어요. 그 중간 상태는 나중에 다른 중간 상태와 결합(병합)하거나 외부 도구로 내보낼 수 있어요.

DATASKETCHES_HLL과 달리 DATASKETCHES_HLL_ACCUMULATE는 카디널리티 추정값을 반환하지 않아요. 대신 최종 추정 단계를 건너뛰고 알고리즘 상태 자체를 반환해요. 자세한 내용은 고유 값 수 추정을 참고하세요.

출처: Snowflake SQL Reference

본문

문법

DATASKETCHES_HLL_ACCUMULATE( [ DISTINCT ] <expr> [ , <max_log_k> ] )

필수 인자

expr — 스케치를 만들 표현식이에요.

선택 인자

max_log_k — 스케치 크기 매개변수예요.

반환

이 함수는 Apache DataSketches 라이브러리와 호환되는 BINARY 값을 반환해요.

사용 메모

  • DISTINCT는 문법적으로 지원되지만 효과는 없어요.
  • 이 함수는 다음 데이터 타입의 값인 인자를 지원해요. 다른 데이터 타입의 값은 지원되지 않아요. 예를 들어 VARIANT와 ARRAY 값은 지원되지 않아요.

예제

테이블을 만들고 값을 삽입해요.

CREATE OR REPLACE TABLE datasketches_demo(v INT, g INT);

INSERT INTO datasketches_demo SELECT 1, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 1, 2;
INSERT INTO datasketches_demo SELECT 1, 2;
INSERT INTO datasketches_demo SELECT 4, 2;
INSERT INTO datasketches_demo SELECT 4, 2;
INSERT INTO datasketches_demo SELECT 5, 2;

DATASKETCHES_HLL_ACCUMULATE 함수를 사용해 컬럼 v의 데이터(컬럼 g의 값 1, 2로 그룹화)에 대한 바이너리 스케치 2개를 만들어요.

SELECT g,
       DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
  FROM datasketches_demo
  GROUP BY g;
+---+------------------------------------------+
| G | ACCUMULATED_SKETCHES                     |
|---+------------------------------------------|
| 1 | 0201070C030802002BF2FB06862FF90D         |
| 2 | 0201070C030803002BF2FB0681BC5D067B65E608 |
+---+------------------------------------------+

더 알아보기