

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# HyperLogLog 함수
<a name="hyperloglog-functions"></a>

다음으로 Amazon Redshift에서 지원하는 SQL용 HyperLogLog 함수에 대한 설명을 찾아볼 수 있습니다.

**Topics**
+ [HLL 함수](r_HLL_function.md)
+ [HLL\$1CREATE\$1SKETCH 함수](r_HLL_CREATE_SKETCH.md)
+ [HLL\$1CARDINALITY 함수](r_HLL_CARDINALITY.md)
+ [HLL\$1COMBINE 함수](r_HLL_COMBINE.md)
+ [HLL\$1COMBINE\$1SKETCHES 함수](r_HLL_COMBINE_SKETCHES.md)

# HLL 함수
<a name="r_HLL_function"></a>

HLL 함수는 입력 표현식 값의 HyperLogLog 카디널리티를 반환합니다. HLL 함수는 HLLSKETCH 데이터 형식을 제외한 모든 데이터 형식에서 작동합니다. HLL 함수는 NULL 값을 무시합니다. 테이블에 행이 없거나 모든 행이 NULL이면 결과 카디널리티는 0입니다.

## 구문
<a name="r_HLL_function-synopsis"></a>

```
HLL (aggregate_expression)
```

## 인수
<a name="r_HLL_function-argument"></a>

 *aggregate\$1expression*   
열 이름과 같이 집계에 값을 제공하는 모든 유효 표현식입니다. 이 함수는 HLLSKETCH, GEOMETRY, GEOGRAPHY 및 VARBYTE를 제외한 모든 데이터 유형을 입력으로 지원합니다.

## 반환 타입
<a name="r_HLL_function-return-type"></a>

HLL 함수는 BIGINT 또는 INT8 값을 반환합니다.

## 예제
<a name="r_HLL_function-examples"></a>

다음 예에서는 테이블 `a_table`에 있는 열 `an_int`의 카디널리티를 반환합니다.

```
CREATE TABLE a_table(an_int INT);
INSERT INTO a_table VALUES (1), (2), (3), (4);

SELECT hll(an_int) AS cardinality FROM a_table;
cardinality
-------------
4
```

# HLL\$1CREATE\$1SKETCH 함수
<a name="r_HLL_CREATE_SKETCH"></a>

HLL\$1CREATE\$1SKETCH 함수는 입력 표현식 값을 캡슐화하는 HLLSKETCH 데이터 형식을 반환합니다. HLL\$1CREATE\$1SKETCH 함수는 모든 데이터 형식에서 작동하며 NULL 값을 무시합니다. 테이블에 행이 없거나 모든 행이 NULL이면 결과 스케치에 인덱스-값 페어(예: `{"version":1,"logm":15,"sparse":{"indices":[],"values":[]}}`)가 없습니다.

## 구문
<a name="r_HLL_CREATE_SKETCH-synopsis"></a>

```
HLL_CREATE_SKETCH (aggregate_expression)
```

## 인수
<a name="r_HLL_CREATE_SKETCH-argument"></a>

 *aggregate\$1expression*   
열 이름과 같이 집계에 값을 제공하는 모든 유효 표현식입니다. NULL 값은 무시됩니다. 이 함수는 HLLSKETCH, GEOMETRY, GEOGRAPHY 및 VARBYTE를 제외한 모든 데이터 유형을 입력으로 지원합니다.

## 반환 타입
<a name="r_HLL_CREATE_SKETCH-return-type"></a>

HLL\$1CREATE\$1SKETCH 함수는 HLLSKETCH 값을 반환합니다.

## 예제
<a name="r_HLL_CREATE_SKETCH-examples"></a>

다음 예에서는 테이블 `a_table`의 열 `an_int`에 대한 HLLSKETCH 형식을 반환합니다. JSON 객체는 스케치를 가져오거나 내보내거나 인쇄할 때 희소 HyperLogLog 스케치를 나타내는 데 사용됩니다. 문자열 표현(Base64 형식)은 고밀도 HyperLogLog 스케치를 나타내는 데 사용됩니다.

```
CREATE TABLE a_table(an_int INT);
INSERT INTO a_table VALUES (1), (2), (3), (4);

SELECT hll_create_sketch(an_int) AS sketch FROM a_table;
sketch
-------------------------------------------------------------------------------------------------------
{"version":1,"logm":15,"sparse":{"indices":[20812342,20850007,22362299,47158030],"values":[1,2,1,1]}}
(1 row)
```

# HLL\$1CARDINALITY 함수
<a name="r_HLL_CARDINALITY"></a>

HLL\$1CARDINALITY 함수는 입력 HLLSKETCH 데이터 형식의 카디널리티를 반환합니다.

## 구문
<a name="r_HLL_CARDINALITY-synopsis"></a>

```
HLL_CARDINALITY (hllsketch_expression)
```

## 인수
<a name="r_HLL_CARDINALITY-argument"></a>

 *hllsketch\$1expression*   
열 이름과 같이 HLLSKETCH 형식으로 평가되는 모든 유효한 표현식입니다. 입력 값은 HLLSKETCH 데이터 형식입니다.

## 반환 타입
<a name="r_HLL_CARDINALITY-return-type"></a>

HLL\$1CARDINALITY 함수는 BIGINT 또는 INT8 값을 반환합니다.

## 예제
<a name="r_HLL_CARDINALITY-examples"></a>

다음 예에서는 테이블 `hll_table`에 있는 열 `sketch`의 카디널리티를 반환합니다.

```
CREATE TABLE a_table(an_int INT, b_int INT);
INSERT INTO a_table VALUES (1,1), (2,1), (3,1), (4,1), (1,2), (2,2), (3,2), (4,2), (5,2), (6,2);

CREATE TABLE hll_table (sketch HLLSKETCH);
INSERT INTO hll_table select hll_create_sketch(an_int) from a_table group by b_int;

SELECT hll_cardinality(sketch) AS cardinality FROM hll_table;
cardinality
-------------
6
4
(2 rows)
```

# HLL\$1COMBINE 함수
<a name="r_HLL_COMBINE"></a>

HLL\$1COMBINE 집계 함수는 모든 입력 HLLSKETCH 값을 결합하는 HLLSKETCH 데이터 형식을 반환합니다.

둘 이상의 HyperLogLog 스케치 조합은 각 입력 스케치가 나타내는 고유 값의 조합에 대한 정보를 캡슐화하는 새로운 HLLSKETCH입니다. 스케치를 결합한 후 Amazon Redshift는 둘 이상의 데이터 집합 조합의 카디널리티를 추출합니다. 여러 스케치를 결합하는 방법에 대한 자세한 내용은 [예: 여러 스케치를 결합하여 HyperLogLog 스케치 반환](r_HLL-examples.md#hll-examples-multiple-sketches) 섹션을 참조하세요.

## 구문
<a name="r_HLL_COMBINE-synopsis"></a>

```
HLL_COMBINE (hllsketch_expression)
```

## 인수
<a name="r_HLL_COMBINE-argument"></a>

 *hllsketch\$1expression*   
열 이름과 같이 HLLSKETCH 형식으로 평가되는 모든 유효한 표현식입니다. 입력 값은 HLLSKETCH 데이터 형식입니다.

## 반환 타입
<a name="r_HLL_COMBINE-return-type"></a>

HLL\$1COMBINE 함수는 HLLSKETCH 형식을 반환합니다.

## 예제
<a name="r_HLL_COMBINE-examples"></a>

다음 예에서는 테이블 `hll_table`에 결합된 HLLSKETCH 값을 반환합니다.

```
CREATE TABLE a_table(an_int INT, b_int INT);
INSERT INTO a_table VALUES (1,1), (2,1), (3,1), (4,1), (1,2), (2,2), (3,2), (4,2), (5,2), (6,2);

CREATE TABLE hll_table (sketch HLLSKETCH);
INSERT INTO hll_table select hll_create_sketch(an_int) from a_table group by b_int;

SELECT hll_combine(sketch) AS sketches FROM hll_table;
sketches
----------------------------------------------------------------------------------------------------------------------------
{"version":1,"logm":15,"sparse":{"indices":[20812342,20850007,22362299,40314817,42650774,47158030],"values":[1,2,1,3,2,1]}}
(1 row)
```

# HLL\$1COMBINE\$1SKETCHES 함수
<a name="r_HLL_COMBINE_SKETCHES"></a>

HLL\$1COMBINE\$1SKETCHES는 두 개의 HLLSKETCH 값을 입력으로 받고 단일 HLLSKETCHE로 결합하는 스칼라 함수입니다.

둘 이상의 HyperLogLog 스케치 조합은 각 입력 스케치가 나타내는 고유 값의 조합에 대한 정보를 캡슐화하는 새로운 HLLSKETCH입니다.

## 구문
<a name="r_HLL_COMBINE_SKETCHES-synopsis"></a>

```
HLL_COMBINE_SKETCHES (hllsketch_expression1, hllsketch_expression2)
```

## 인수
<a name="r_HLL_COMBINE_SKETCHES-argument"></a>

 *hllsketch\$1expression1* 및 *hllsketch\$1expression2*   
열 이름과 같이 HLLSKETCH 형식으로 평가되는 모든 유효한 표현식입니다.

## 반환 타입
<a name="r_HLL_COMBINE_SKETCHES-return-type"></a>

HLL\$1COMBINE\$1SKETCHES 함수는 HLLSKETCH 형식을 반환합니다.

## 예제
<a name="r_HLL_COMBINE_SKETCHES-examples"></a>

다음 예에서는 테이블 `hll_table`에 결합된 HLLSKETCH 값을 반환합니다.

```
WITH tbl1(x, y)
     AS (SELECT Hll_create_sketch(1),
                Hll_create_sketch(2)
         UNION ALL
         SELECT Hll_create_sketch(3),
                Hll_create_sketch(4)
         UNION ALL
         SELECT Hll_create_sketch(5),
                Hll_create_sketch(6)
         UNION ALL
         SELECT Hll_create_sketch(7),
                Hll_create_sketch(8)),
     tbl2(x, y)
     AS (SELECT Hll_create_sketch(9),
                Hll_create_sketch(10)
         UNION ALL
         SELECT Hll_create_sketch(11),
                Hll_create_sketch(12)
         UNION ALL
         SELECT Hll_create_sketch(13),
                Hll_create_sketch(14)
         UNION ALL
         SELECT Hll_create_sketch(15),
                Hll_create_sketch(16)
         UNION ALL
         SELECT Hll_create_sketch(NULL),
                Hll_create_sketch(NULL)),
     tbl3(x, y)
     AS (SELECT *
         FROM   tbl1
         UNION ALL
         SELECT *
         FROM   tbl2)
SELECT Hll_combine_sketches(x, y)
FROM   tbl3;
```