As funções HyperLogLog++ são funções de agregação aproximada que deduplicam dados rapidamente e com baixo consumo de memória em grandes volumes, acelerando as consultas. Este tópico descreve as funções relacionadas ao HyperLogLog++.
Informações gerais
O HyperLogLog (HLL) é um algoritmo eficiente de deduplicação aproximada, ideal para cenários que não exigem precisão absoluta, como estatísticas de PV/UV. Ele serve como alternativa leve ao COUNT(DISTINCT). Diferentemente de métodos exatos como Bitmap, o HLL utiliza internamente uma estrutura de dados de tamanho fixo (sketch), cujo consumo de memória não aumenta conforme o volume de dados cresce. Para cada novo dado inserido, basta calcular o hash uma única vez. Em cenários com grandes volumes de dados, a margem de erro da deduplicação por HLL geralmente fica abaixo de 1%, equilibrando eficiência e usabilidade.
Para atender às necessidades básicas de deduplicação aproximada, o MaxCompute oferece a função de agregação APPROX_DISTINCT. Com a diversificação dos cenários de negócios, muitos usuários passaram a precisar não apenas do resultado final da deduplicação, mas também da capacidade de armazenar ou reutilizar a estrutura de dados intermediária do sketch. Por isso, o MaxCompute passou a suportar o conjunto completo de funções HyperLogLog++, com otimizações no algoritmo subjacente. Essas melhorias reduzem o uso de memória e aumentam a precisão das estimativas, oferecendo melhor suporte a cenários analíticos complexos.
A seguir, apresentamos dois cenários típicos de uso do HLL:
Cenários que exigem consultas repetidas por dimensão temporal: Ao persistir os sketches HLL gerados diariamente, os cálculos subsequentes processam apenas os novos dados do dia e os mesclam com os sketches históricos. Isso elimina a necessidade de varrer repetidamente todo o histórico de dados e aumenta significativamente a eficiência das consultas.
Deduplicação conjunta em várias colunas do mesmo tipo: Crie e mantenha sketches individuais para cada coluna e execute operações de merge diretamente no nível do sketch. Essa abordagem permite reutilizar os resultados de deduplicação de forma eficiente e reduz drasticamente a sobrecarga computacional.
Lista de funções
O MaxCompute SQL oferece suporte às seguintes funções HyperLogLog++.
|
Função |
Descrição |
|
Agrega valores do mesmo tipo em um novo sketch HLL++. |
|
|
Combina vários sketches HLL++ do mesmo tipo de armazenamento em um único sketch. |
|
|
Calcula a estimativa de cardinalidade a partir de um sketch HLL++. |
|
|
Mescla vários sketches HLL++ do mesmo tipo de armazenamento em um novo sketch e retorna a estimativa de cardinalidade resultante. |
Considerações
Os dados BINARY utilizados pelas funções HLL_COUNT_EXTRACT, HLL_COUNT_MERGE e HLL_COUNT_MERGE_PARTIAL devem ser gerados exclusivamente pela função HLL_COUNT_INIT. Não utilize dados provenientes de outros sistemas ou obtidos por outros meios.