HLL
HLL
HyperLogLog을 사용해 입력의 고유 카디널리티(distinct cardinality) 근사값을 반환해요. 즉 HLL(col1, col2, ... )는 COUNT(DISTINCT col1, col2, ... )의 근사값을 반환해요.
HyperLogLog에 대한 자세한 내용은 고유 값 수 추정 문서를 참고하세요.
별칭: APPROX_COUNT_DISTINCT
본문
구문
집계 함수
HLL( [ DISTINCT ] <expr1> [ , ... ] )
HLL(*)
윈도우 함수
HLL( [ DISTINCT ] <expr1> [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )
HLL(*) OVER ( [ PARTITION BY <expr2> ] )
인자
expr1
- 고유 값 수를 알고 싶은 표현식이에요.
expr2
- 행을 파티션으로 묶는 데 사용하는 선택적 표현식이에요.
반환 값
반환되는 값의 데이터 타입은 INTEGER예요.
사용 시 참고 사항
- DISTINCT를 인자로 포함할 수 있지만 효과는 없어요.
- NULL 값과 집계 함수에 대한 정보는 집계 함수와 NULL 값 문서를 참고하세요.
- 이 함수를 윈도우 함수로 호출할 때는 다음을 지원하지 않아요. OVER 절 안의 ORDER BY 절. 명시적 윈도우 프레임.
예시
이 예시는 HLL과 그 별칭인 APPROX_COUNT_DISTINCT를 사용하는 방법을 보여줘요. 이 예시는 COUNT(DISTINCT i)와 APPROX_COUNT_DISTINCT(i)를 모두 호출해서, 이 두 함수의 결과가 항상 정확히 일치하지는 않음을 강조해요.
다음 쿼리의 정확한 출력은 APPROX_COUNT_DISTINCT()가 정확한 값이 아니라 근사값을 반환하므로 달라질 수 있어요.
SELECT COUNT(i), COUNT(DISTINCT i), APPROX_COUNT_DISTINCT(i), HLL(i)
FROM sequence_demo;
+----------+-------------------+--------------------------+--------+
| COUNT(I) | COUNT(DISTINCT I) | APPROX_COUNT_DISTINCT(I) | HLL(I) |
|----------+-------------------+--------------------------+--------|
| 1024 | 1024 | 1007 | 1007 |
+----------+-------------------+--------------------------+--------+
더 알아보기
- Aggregate functions — 집계 함수 모음
- HLL_ACCUMULATE — HLL 상태 누적
- HLL_COMBINE — HLL 상태 결합
- HLL_ESTIMATE — HLL 상태에서 고유 값 수 추정