

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Esboços do HyperLogLog
<a name="hyperloglog-overview"></a>

Este tópico descreve como utilizar esboços do HyperLogLog no Amazon Redshift. O HyperLogLog é um algoritmo destinado ao problema de contagem distinta que aproxima o número de elementos distintos em um conjunto de dados. Os esboços do HyperLogLog são matrizes de dados exclusivos sobre um conjunto de dados.

*HyperLogLog* é um algoritmo usado para estimar a cardinalidade de um multiconjunto. *Cardinalidade* refere-se ao número de valores distintos em um multiconjunto. Por exemplo, no conjunto de \$14,3,6,2,2,6,4,3,6,2,2,3\$1, a cardinalidade é 4 com valores distintos de 4, 3, 6 e 2. 

A precisão do algoritmo HyperLogLog (também conhecido como valor m) pode afetar a precisão da cardinalidade estimada. Durante a estimativa de cardinalidade, o Amazon Redshift usa um valor de precisão padrão de 15. Esse valor pode ser de até 26 para conjuntos de dados menores. Assim, o erro relativo médio varia entre 0,01 a 0,6%.

Ao calcular a cardinalidade de um multiconjunto, o algoritmo HyperLogLog gera uma construção chamada esboço HLL. Um *esboço HLL* encapsula informações sobre os valores distintos em um multiconjunto. O tipo de dados HLLSKETCH do Amazon Redshift representa esses valores de esboço. Esse tipo de dados pode ser usado para armazenar esboços em uma tabela do Amazon Redshift. Além disso, o Amazon Redshift oferece suporte a operações que podem ser aplicadas a valores HLLSKETCH como funções agregadas e escalares. Você pode usar essas funções para extrair a cardinalidade de um HLLSKETCH e combinar vários valores HLLSKETCH. 

O tipo de dados HLLSKETCH oferece benefícios significativos de performance de consulta ao extrair a cardinalidade de grandes conjuntos de dados. Você pode pré-agregar esses conjuntos de dados usando valores HLLSKETCH e armazená-los em tabelas. O Amazon Redshift pode extrair a cardinalidade diretamente dos valores HLLSKETCH armazenados sem acessar os conjuntos de dados subjacentes.

Ao processar esboços HLL, o Amazon Redshift executa otimizações que minimizam o espaço de memória do esboço e maximizam a precisão da cardinalidade extraída. O Amazon Redshift usa duas representações para esboços HLL, esparsos e densos. Um HLLSKETCH é iniciado em formato esparso. À medida que novos valores são inseridos nele, seu tamanho aumenta. Depois que seu tamanho atingir o tamanho da representação densa, o Amazon Redshift converte automaticamente o esboço de esparso para denso.

O Amazon Redshift importa, exporta e imprime um HLLSKETCH como JSON quando o esboço está em um formato esparso. O Amazon Redshift importa, exporta e imprime um HLLSKETCH como uma string Base64 quando o esboço está em um formato denso. Para obter mais informações sobre UNLOAD, consulte [Descarregar o tipo de dados HLLSKETCH](r_UNLOAD.md#unload-usage-hll). Para importar dados de valores separados por vírgula (CSV) para o Amazon Redshift, use o comando COPY. Para obter mais informações, consulte [Carregando o tipo de dados HLLSKETCH](copy-usage_notes-hll.md).

Para obter informações sobre funções usadas com HyperLogLog, consulte [Funções HyperLogLog](hyperloglog-functions.md).

**Topics**
+ [Considerações](hyperloglog-functions-usage-notes.md)
+ [Limitações](hyperloglog-functions-limitations.md)
+ [Exemplos](r_HLL-examples.md)