카테고리:

집계 함수 (Cardinality Estimation) , 윈도우 함수 구문 및 사용법

DATASKETCHES_HLL_COMBINE

입력 스케치를 1개의 출력 스케치로 결합(병합)합니다.

이 함수는 Apache DataSketches 에서 사용하는 형식의 이진 스케치를 읽을 수 있는 HLL HyperLogLog 함수의 버전입니다. 자세한 내용은 Apache DataSketches 설명서 를 참조하십시오.

이 함수를 사용하면 동일한 테이블의 수평 파티션에 대해 DATASKETCHES_HLL_ACCUMULATE 함수를 실행하여 각 테이블 파티션에 대한 알고리즘 스케치를 생성하는 시나리오를 사용할 수 있습니다. 나중에 이 함수를 사용하여 이러한 스케치를 결합하여 전체 테이블에 대해 DATASKETCHES_HLL_ACCUMULATE 를 한 번 실행한 것과 동일한 출력 스케치를 생성할 수 있습니다.

참고 항목:

DATASKETCHES_HLL_ACCUMULATE

구문

DATASKETCHES_HLL_COMBINE( [ DISTINCT ]  <state> [ , <max_log_k> ] )
Copy

필수 인자

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;
Copy

다음 예제에서는 다음 작업을 수행합니다.

  1. DATASKETCHES_HLL_ACCUMULATE 함수는 열 v 의 데이터에 대한 두 개의 이진 스케치를 만들고 열 g 의 값 12 로 그룹화합니다.

  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;
Copy
+--------------------------------------------------+
| COMBINED_SKETCHES                                |
|--------------------------------------------------|
| 0201070C030804002BF2FB06862FF90D81BC5D067B65E608 |
+--------------------------------------------------+

예제에서 누적된 스케치 값을 DATASKETCHES_HLL_ACCUMULATE 에서 확인할 수 있습니다.