DATASKETCHES_HLL_ACCUMULATE
DATASKETCHES_HLL_ACCUMULATE
DATASKETCHES_HLL_ACCUMULATE() 함수는 집계가 끝날 때의 스케치(sketch)를 반환해요.
이 함수는 Apache DataSketches가 사용하는 형식의 바이너리 스케치를 읽을 수 있는 HLL(HyperLogLog) 함수 버전이에요. 자세한 내용은 Apache DataSketches 문서를 참고하세요.
DATASKETCHES_HLL은 최종 카디널리티 추정값이 반환될 때 중간 상태를 버려요. 대량 로드 중 증분 카디널리티 추정 같은 고급 사용 사례에서는 중간 상태를 유지하고 싶을 수 있어요. 그 중간 상태는 나중에 다른 중간 상태와 결합(병합)하거나 외부 도구로 내보낼 수 있어요.
DATASKETCHES_HLL과 달리 DATASKETCHES_HLL_ACCUMULATE는 카디널리티 추정값을 반환하지 않아요. 대신 최종 추정 단계를 건너뛰고 알고리즘 상태 자체를 반환해요. 자세한 내용은 고유 값 수 추정을 참고하세요.
본문
문법
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 |
+---+------------------------------------------+