- 카테고리:
집계 함수 (Cardinality Estimation) , 윈도우 함수 구문 및 사용법
DATASKETCHES_HLL_COMBINE¶
입력 스케치를 1개의 출력 스케치로 결합(병합)합니다.
이 함수는 Apache DataSketches 에서 사용하는 형식의 이진 스케치를 읽을 수 있는 HLL HyperLogLog 함수의 버전입니다. 자세한 내용은 Apache DataSketches 설명서 를 참조하십시오.
이 함수를 사용하면 동일한 테이블의 수평 파티션에 대해 DATASKETCHES_HLL_ACCUMULATE 함수를 실행하여 각 테이블 파티션에 대한 알고리즘 스케치를 생성하는 시나리오를 사용할 수 있습니다. 나중에 이 함수를 사용하여 이러한 스케치를 결합하여 전체 테이블에 대해 DATASKETCHES_HLL_ACCUMULATE 를 한 번 실행한 것과 동일한 출력 스케치를 생성할 수 있습니다.
구문¶
DATASKETCHES_HLL_COMBINE( [ DISTINCT ] <state> [ , <max_log_k> ] )
필수 인자¶
state
DATASKETCHES_HLL_ACCUMULATE 호출에 의해 생성된 상태 정보를 포함하는 식입니다.
선택적 인자¶
max_log_k
이 결합에 대한 K의 최대값(log2)입니다. 4에서 21 사이의 INTEGER 값을 지정합니다. 자세한 내용은 Apache DataSketches 설명서 를 참조하십시오.
기본값: 12
반환¶
이 함수는 Apache Datasketches 라이브러리와 호환되는 BINARY 값을 반환합니다.
사용법 노트¶
DISTINCT 는 구문적으로 지원되지만, 효과가 없습니다.
예¶
테이블을 만들고 값을 삽입합니다.
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
로 그룹화합니다.DATASKETCHES_HLL_COMBINE 함수는 이러한 이진 스케치를 결합합니다.
WITH
accumulated AS (
SELECT g,
DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
FROM datasketches_demo
GROUP BY g)
SELECT DATASKETCHES_HLL_COMBINE(accumulated_sketches) AS combined_sketches
FROM accumulated;
+--------------------------------------------------+
| COMBINED_SKETCHES |
|--------------------------------------------------|
| 0201070C030804002BF2FB06862FF90D81BC5D067B65E608 |
+--------------------------------------------------+
예제에서 누적된 스케치 값을 DATASKETCHES_HLL_ACCUMULATE 에서 확인할 수 있습니다.