- 카테고리:
집계 함수 (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 에서 예제에서 결합된 스케치의 값을 확인할 수 있습니다.