Usar esboços do HyperLogLog no Amazon Redshift - Amazon Redshift

Usar esboços do HyperLogLog no Amazon Redshift

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 {4,3,6,2,2,6,4,3,6,2,2,3}, 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. Para importar dados de valores separados por vírgula (CSV) para o Amazon Redshift, use o comando COPY. Para ter mais informações, consulte Carregando o tipo de dados HLLSKETCH.

Para obter informações sobre funções usadas com HyperLogLog, consulte Funções HyperLogLog.