- 카테고리:
집계 함수 (Cardinality Estimation) , 윈도우 함수 구문 및 사용법
DATASKETCHES_HLL_ESTIMATE¶
주어진 스케치에 대한 카디널리티 추정치를 반환합니다.
이 함수는 Apache DataSketches 에서 사용하는 형식의 이진 스케치를 읽을 수 있는 HLL HyperLogLog 함수의 버전입니다. 자세한 내용은 Apache DataSketches 설명서 를 참조하십시오.
DATASKETCHES_HLL_COMBINE 함수로 생성된 스케치는 DATASKETCHES_HLL_ESTIMATE 함수를 사용하여 카디널리티 추정치를 계산하는 데 사용할 수 있습니다.
구문¶
DATASKETCHES_HLL_ESTIMATE( <binary_sketch> )
인자¶
binary_sketch
이진 형식으로 스케치 정보를 포함하는 식입니다.
반환¶
함수는 DOUBLE 형식의 값을 반환합니다.
입력이 비어 있으면 출력은 0.0
입니다.
참고
이 함수는 INTEGER 값을 반환하는 HLL_ESTIMATE 함수와 다른 유형의 값을 반환합니다.
예¶
테이블을 만들고 값을 삽입합니다.
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_ESTIMATE 함수는 누적된 각 스케치에 대한 카디널리티 추정치를 반환합니다.
WITH
accumulated AS (
SELECT g,
DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
FROM datasketches_demo
GROUP BY g)
SELECT g, DATASKETCHES_HLL_ESTIMATE(accumulated_sketches) AS accumulated_estimate
FROM accumulated;
+---+----------------------+
| G | ACCUMULATED_ESTIMATE |
|---+----------------------|
| 1 | 2.000000005 |
| 2 | 3.000000015 |
+---+----------------------+
예제에서 누적된 스케치 값을 DATASKETCHES_HLL_ACCUMULATE 에서 확인할 수 있습니다.
결합된 이진 스케치에 대한 카디널리티 추정치 반환하기¶
다음 예제에서는 다음 작업을 수행합니다.
DATASKETCHES_HLL_ACCUMULATE 함수는 열
v
의 데이터에 대한 두 개의 이진 스케치를 만들고 열g
의 값1
및2
로 그룹화합니다.DATASKETCHES_HLL_COMBINE 함수는 이러한 이진 스케치를 결합하여 통합합니다.
DATASKETCHES_HLL_ESTIMATE 함수는 통합 스케치에 대한 카디널리티 추정치를 반환합니다.
WITH
accumulated AS (
SELECT g,
DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
FROM datasketches_demo
GROUP BY g),
combined AS (
SELECT DATASKETCHES_HLL_COMBINE(accumulated_sketches) AS unified
FROM accumulated)
SELECT DATASKETCHES_HLL_ESTIMATE(unified) AS unified_estimate
FROM combined;
+------------------+
| UNIFIED_ESTIMATE |
|------------------|
| 4.00000003 |
+------------------+
DATASKETCHES_HLL_COMBINE 에서 예제에서 결합된 스케치의 값을 확인할 수 있습니다.