본문으로 바로가기
본문으로 바로가기

uniqHLL12

uniqHLL12

도입 버전: v1.1

HyperLogLog 알고리즘을 사용하여 서로 다른 인수 값의 개수를 근사적으로 계산합니다.

참고

이 함수의 사용은 권장하지 않습니다. 대부분의 경우 uniq 또는 uniqCombined 함수를 사용하십시오.

Details

구현 세부 사항 이 함수는 집계에 포함된 모든 인수에 대해 해시 값을 계산한 후, 해당 값을 계산에 사용합니다. HyperLogLog 알고리즘을 사용하여 서로 다른 인수 값의 개수를 근사합니다.

2^12개의 5비트 셀을 사용합니다. 상태 크기는 2.5 KB를 약간 상회합니다. 작은 데이터 세트(<10K 개 요소)에 대해서는 결과의 정확도가 높지 않습니다(오차 약 ~10%). 그러나 높은 카디널리티를 가진 데이터 세트(10K-100M)에 대해서는 최대 약 ~1.6% 오차로 비교적 정확한 결과를 제공합니다. 100M 이상부터는 추정 오차가 증가하며, 매우 높은 카디널리티(1B+ 개 요소)를 가진 데이터 세트에 대해서는 매우 부정확한 결과를 반환합니다.

결정적 결과를 제공합니다(쿼리 처리 순서에 의존하지 않습니다).

구문

uniqHLL12(x[, ...])

인자

반환 값

서로 다른 인자 값의 근사 개수를 나타내는 UInt64 타입의 숫자를 반환합니다. UInt64

예시

기본 사용법

CREATE TABLE example_hll
(
    id UInt32,
    category String
)
ENGINE = Memory;

INSERT INTO example_hll VALUES
(1, 'A'), (2, 'B'), (3, 'A'), (4, 'C'), (5, 'B'), (6, 'A');

SELECT uniqHLL12(category) AS hll_unique_categories
FROM example_hll;
┌─hll_unique_categories─┐
│                     3 │
└───────────────────────┘

참고 항목