

 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-overview"></a>

이 주제에서는 Amazon Redshift에서 HyperLogLog 스케치를 사용하는 방법을 설명합니다. HyperLogLog는 데이터세트의 고유한 요소 수에 근접하는 카운트 구분 문제를 위한 알고리즘입니다. HyperLogLog 스케치는 데이터세트에 대한 고유 데이터의 배열입니다.

*HyperLogLog*는 다중 집합의 카디널리티를 추정하는 데 사용되는 알고리즘입니다. *카디널리티*는 다중 집합에서 고유한 값의 수를 나타냅니다. 예를 들어 \$14,3,6,2,2,6,4,3,6,2,2,3\$1 집합에서 카디널리티는 4, 3, 6, 2의 고유한 값을 갖는 4입니다.

HyperLogLog 알고리즘의 정밀도(m 값이라고도 함)는 예상 카디널리티의 정확도에 영향을 줄 수 있습니다. 카디널리티 추정 중 Amazon Redshift는 기본 정밀도 값 15를 사용합니다. 이 값은 더 작은 데이터 집합의 경우 최대 26일 수 있습니다. 따라서 평균 상대 오차 범위는 0.01\$10.6%입니다.

다중 집합의 카디널리티를 계산할 때 HyperLogLog 알고리즘은 HLL 스케치라는 구문을 생성합니다. *HLL 스케치*는 다중 집합의 고유 값에 대한 정보를 캡슐화합니다. Amazon Redshift 데이터 형식 HLLSKETCH는 이러한 스케치 값을 나타냅니다. 이 데이터 형식은 Amazon Redshift 테이블에 스케치를 저장하는 데 사용할 수 있습니다. 또한 Amazon Redshift는 HLLSKETCH 값에 집계 및 스칼라 함수로 적용할 수 있는 작업을 지원합니다. 이러한 함수를 사용하여 HLLSKETCH의 카디널리티를 추출하고 여러 HLLSKETCH 값을 결합할 수 있습니다.

HLLSKETCH 데이터 형식은 큰 데이터 집합에서 카디널리티를 추출할 때 상당한 쿼리 성능 이점을 제공합니다. HLLSKETCH 값을 사용하여 이러한 데이터 집합을 사전 집계하고 테이블에 저장할 수 있습니다. Amazon Redshift는 기본 데이터 집합에 액세스하지 않고 저장된 HLLSKETCH 값에서 직접 카디널리티를 추출할 수 있습니다.

HLL 스케치를 처리할 때 Amazon Redshift는 스케치의 메모리 공간을 최소화하고 추출된 카디널리티의 정밀도를 최대화하는 최적화를 수행합니다. Amazon Redshift는 HLL 스케치에 대해 희소 및 밀집의 두 가지 표현을 사용합니다. HLLSKETCH는 희소 형식으로 시작합니다. 새 값이 삽입되면 크기가 증가합니다. 크기가 밀집 표현의 크기에 도달하면 Amazon Redshift가 자동으로 스케치를 희소에서 밀집으로 변환합니다.

Amazon Redshift는 스케치가 희소 형식일 때 HLLSKETCH를 JSON으로 가져오고 내보내고 인쇄합니다. Amazon Redshift는 스케치가 밀집 형식일 때 HLLSKETCH를 Base64 문자열로 가져오고 내보내고 인쇄합니다. UNLOAD에 대한 자세한 내용은 [HLLSKETCH 데이터 형식 언로드](r_UNLOAD.md#unload-usage-hll) 섹션을 참조하세요. 텍스트 또는 쉼표로 구분된 값(CSV) 데이터를 Amazon Redshift로 가져오려면 COPY 명령을 사용합니다. 자세한 내용은 [HLLSKETCH 데이터 형식 로드](copy-usage_notes-hll.md) 섹션을 참조하세요.

HyperLogLog와 함께 사용되는 함수에 대한 자세한 내용은 [HyperLogLog 함수](hyperloglog-functions.md) 섹션을 참조하세요.

**Topics**
+ [고려 사항](hyperloglog-functions-usage-notes.md)
+ [제한 사항](hyperloglog-functions-limitations.md)
+ [예제](r_HLL-examples.md)