As funções HyperLogLog++ são funções de agregação aproximada. Em cenários com grande volume de dados, elas deduplicam informações rapidamente com baixo consumo de memória e aceleram as consultas. Este tópico descreve as funções HyperLogLog++.
Contexto
O HyperLogLog (HLL) é um algoritmo eficiente de deduplicação aproximada. Ele atende a cenários que não exigem alta precisão, como estatísticas de visualizações de página (PV) e visitantes únicos (UV), e serve como alternativa leve ao COUNT(DISTINCT). Diferentemente de métodos exatos como Bitmap, o HLL usa internamente uma estrutura de dados de tamanho fixo (sketch); portanto, o consumo de memória não aumenta conforme o volume de dados cresce. Quando novos dados chegam, basta executar um único cálculo de hash. Para grandes volumes, o erro de deduplicação do HLL geralmente fica abaixo de 1%, o que equilibra eficiência e usabilidade.
Para atender aos requisitos básicos de deduplicação aproximada, o MaxCompute oferece a função de agregação APPROX_DISTINCT. À medida que os cenários de negócios se diversificam, muitos usuários precisam não apenas obter o resultado final da deduplicação, mas também armazenar ou reutilizar as estruturas intermediárias de sketch. Para suprir essa demanda, o MaxCompute passou a oferecer suporte a um conjunto completo de funções HyperLogLog++ e otimizou o algoritmo subjacente. Essas melhorias reduzem o uso de memória e aumentam a precisão das estimativas, o que proporciona melhor suporte a cenários analíticos complexos.
A seguir, apresentamos dois cenários típicos de uso do HLL:
Consultas recorrentes por dimensão temporal: Ao persistir o sketch HLL gerado diariamente, os cálculos subsequentes processam apenas os novos dados do dia corrente e os mesclam ao sketch histórico. Essa abordagem elimina a necessidade de varrer repetidamente todos os dados históricos e melhora significativamente a eficiência das consultas.
Deduplicação conjunta de várias colunas do mesmo tipo: Crie e mantenha sketches específicos para cada coluna e execute operações de mesclagem diretamente no nível dessas estruturas. Isso permite reutilizar os resultados de deduplicação de forma eficiente e reduz substancialmente a sobrecarga computacional.
Lista de funções
O SQL do MaxCompute oferece suporte às seguintes funções HyperLogLog++.
|
Função |
Descrição |
|
Agrega valores do mesmo tipo em um novo sketch HLL++. |
|
|
Mescla vários sketches HLL++ do mesmo tipo de armazenamento em um novo 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 do sketch resultante. |
Observações
HLL_COUNT_EXTRACT/HLL_COUNT_MERGE/HLL_COUNT_MERGE_PARTIAL Os dados BINARY usados por essas funções devem vir exclusivamente da função HLL_COUNT_INIT. Não use dados provenientes de outros sistemas ou métodos.