Las funciones de HyperLogLog++ son funciones de agregación aproximadas. Cuando el volumen de datos es grande, deduplican la información rápidamente con un consumo mínimo de memoria y aceleran las consultas. En este tema se describen las funciones de HyperLogLog++.
Contexto
HyperLogLog (HLL) es un algoritmo eficiente de deduplicación aproximada. Resulta adecuado para escenarios donde no se requiere alta precisión, como las estadísticas de vistas de página (PV) y visitantes únicos (UV). Además, funciona como una alternativa ligera a COUNT(DISTINCT). A diferencia de los métodos de deduplicación exacta como Bitmap, HLL utiliza internamente una estructura de datos de tamaño fijo (sketch), por lo que su consumo de memoria no aumenta con el volumen de datos. Cuando ingresan datos nuevos, solo se requiere un cálculo de hash. Para grandes volúmenes de datos, el error de deduplicación de HLL suele mantenerse en 1 % o menos, lo que equilibra la eficiencia y la usabilidad.
Para cubrir los requisitos básicos de deduplicación aproximada, MaxCompute proporciona la función de agregación APPROX_DISTINCT. Conforme los escenarios de negocio se diversifican, más usuarios buscan no solo obtener el resultado final de la deduplicación, sino también almacenar o reutilizar las estructuras de datos sketch intermedias. Para atender esta necesidad, MaxCompute admite ahora un conjunto completo de funciones de HyperLogLog++ y optimizó el algoritmo subyacente. Esto reduce el consumo de memoria y mejora la precisión de las estimaciones, lo que facilita la compatibilidad con escenarios analíticos complejos.
A continuación se presentan dos escenarios típicos de HLL:
Escenarios que requieren consultas repetidas por dimensión temporal: Al conservar el sketch de HLL generado diariamente, los cálculos posteriores solo procesan los datos nuevos del día actual y los fusionan con el sketch histórico. Así se evita escanear repetidamente todos los datos históricos y se mejora notablemente la eficiencia de las consultas.
Escenarios que requieren la deduplicación conjunta de varias columnas del mismo tipo: Construya y conserve los sketches correspondientes para cada columna; luego, ejecute operaciones de fusión directamente sobre ellos. Esto permite reutilizar de forma eficiente los resultados de la deduplicación y reduce significativamente la sobrecarga computacional.
Lista de funciones
MaxCompute SQL admite las siguientes funciones de HyperLogLog++.
|
Función |
Descripción |
|
Agrega valores del mismo tipo en un nuevo sketch de HLL++. |
|
|
Fusiona varios sketches de HLL++ del mismo tipo de almacenamiento en un nuevo sketch. |
|
|
Calcula la estimación de cardinalidad a partir de un sketch de HLL++. |
|
|
Fusiona varios sketches de HLL++ del mismo tipo de almacenamiento en un nuevo sketch y devuelve la estimación de cardinalidad del sketch resultante. |
Notas
HLL_COUNT_EXTRACT/HLL_COUNT_MERGE/HLL_COUNT_MERGE_PARTIAL Los datos BINARY que utilizan estas funciones deben provenir de la función HLL_COUNT_INIT. No pueden originarse en otros sistemas ni generarse mediante otros métodos.