El problema de COUNT(DISTINCT) en Postgres y la solución con HLL

Descubre cómo HyperLogLog HLL reemplaza COUNT DISTINCT en PostgreSQL para estimar usuarios únicos a gran escala. Aprende instalación de la extensión, parámetros de precisión, ventajas y casos prácticos de DAU y dashboards con buenas prácticas de Q2BSTUDIO.

31 ago 2025 • 6 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

El problema COUNT DISTINCT en Postgres y como HLL lo soluciona. Las consultas exactas con COUNT DISTINCT pueden saturar Postgres a gran escala. HyperLogLog HLL ofrece conteos de distintos ultrarrápidos, diminutos y componibles con un error cercano al 1 por ciento, ahorrando tiempo, CPU y almacenamiento. En Q2BSTUDIO, donde diseñamos aplicaciones a medida y pipelines analíticos de alto rendimiento, hemos adoptado HLL para acelerar métricas como usuarios únicos diarios, conservando precisión práctica y reduciendo costes.

Por que falla el enfoque exacto. Imagina una tabla events con miles de millones de filas y la métrica diaria de usuarios activos DAU. COUNT DISTINCT por grupo necesita ordenar o mantener un hash de todas las claves por ventana, lo que con alta cardinalidad provoca desbordes de memoria y ordenaciones en disco. Incluso con índices, el exacto es costoso a gran escala. Si quieres métricas de tendencia rápidas y aceptas un pequeño error de 0.8 a 2 por ciento, el conteo aproximado es el equilibrio ideal.

Que es HyperLogLog HLL. HLL es una estructura probabilística de cardinalidad que estima el numero de elementos distintos de un conjunto. Es de tamaño fijo, se puede fusionar union y es muy veloz. En Postgres se usa mediante la extensión hll. Ventajas clave: almacenamiento diminuto cientos de bytes a pocos KB por grupo, posibilidad de unir esbozos para sumar días en meses sin datos crudos, y un error predecible y configurable.

Regla de precisión. Error aproximado 1.04 dividido por la raíz cuadrada de m, con m igual a 2 elevado a log2m. Con log2m 14 m 16384, el error es cercano a 0.81 por ciento. Es una configuración muy usada por su excelente relación precisión tamaño.

Instalación. Basta con crear la extensión hll en la base de datos. Asegúrate de instalarla en todos los nodos si usas particionado o sharding.

Funciones básicas en Postgres. 1 hll hash para convertir valores a un hash de 64 bits por ejemplo hll hash text o hll hash integer. 2 hll add agg para agregar muchos hash en un mismo esbozo HLL. 3 hll union y hll union agg para fusionar esbozos. 4 hll cardinality para recuperar el conteo estimado de distintos. 5 hll empty log2m regwidth expthresh sparseon para crear un esbozo vacío con parámetros elegidos.

Un conteo aproximado puntual. En una consulta, calcula hll cardinality de hll add agg aplicada a hll hash text del user id. Es un único paso de agregación que evita ordenar y que usa memoria acotada.

Materializa únicos diarios recomendado. Crea una tabla con day como clave primaria y un campo sketch tipo hll. Para cada día agrega hll add agg de los user id del rango y upsertea. Si el día ya existe, usa hll union entre el esbozo almacenado y el nuevo para mantener consistencia. Consultar DAU es inmediato con hll cardinality del sketch. Los totales mensuales surgen al agrupar por mes con hll union agg sin reescanear eventos crudos.

Elección de parámetros precisión vs tamaño. log2m controla la precisión y el tamaño via numero de registros 2 elevado a log2m. Ejemplos prácticos: log2m 14 m 16384 ofrece error cercano a 0.81 por ciento y tamaño típico alrededor de 1.5 KB. log2m 12 m 4096 ofrece error cercano a 1.6 por ciento y tamaño aproximado de 384 a 512 B. Si necesitas inicializar explícitamente, usa hll empty con log2m 14 regwidth 5 expthresh 0 y sparseon 1 para el modo HLL plus plus con mejor rendimiento en cardinalidades pequeñas. Importante todas las uniones de esbozos requieren la misma configuración de parámetros, mantenla estable en tus tablas.

Actualizaciones incrementales. En flujos de eventos en tiempo real, agrupa por día entrante y haz upsert donde sketch se actualiza con hll union. Alternativamente, usa una vista materializada y refresco concurrente en ventanas horarias. Este patrón permite DAU casi en tiempo real con coste fijo.

Exactitud en la practica. Con log2m 14 obtendrás error relativo cercano a 0.8 por ciento. Para conjuntos muy pequeños la variante HLL plus plus usa modo disperso y conteo lineal manteniendo buena exactitud. Puedes validar empíricamente tomando días de muestra y comparando con COUNT DISTINCT exacto para estimar el error real en tu distribución de datos.

Rendimiento y ahorro de almacenamiento. Las tablas de esbozos son muy pequeñas con reducciones de mas del 90 por ciento frente a agregados crudos. Las consultas sobre HLL son ligeras en CPU y evitan grandes ordenaciones y hashes. Las agregaciones por día semana o mes requieren solo hll union agg sin re agregación de eventos. En entornos de data warehouse son comunes aceleraciones de 10x o mas y ahorros de almacenamiento de un orden de magnitud depende de tu esquema y hardware mide siempre.

Errores comunes a evitar. 1 Consistencia no cambies parámetros de HLL una vez en producción. 2 Hashing siempre hashea el identificador estable por ejemplo user id no atributos mutables. 3 Grupos pequeños en conjuntos diminutos el COUNT DISTINCT exacto puede ser suficiente y exacto. 4 Comunicación explica que son métricas aproximadas y documenta el error esperado para alinear a los equipos.

Pre agregación desde Go opcional. Puedes enviar eventos crudos y dejar a Postgres la agregación, o construir esbozos HLL en Go por partición. Si pre agregas, guarda el sketch como bytea o conviértelo a tipo hll en la ingesta. Esto reduce tráfico y CPU en la base pero complica el pipeline, evalúa según tu caso.

Como lo aplicamos en Q2BSTUDIO. En proyectos de analítica y plataformas de datos para clientes que requieren software a medida y aplicaciones a medida, incorporamos HLL en Postgres para métricas de usuarios únicos, funnels y deduplicación a gran escala. Además, integramos estos datos en tableros de servicios inteligencia de negocio con power bi y plataformas de reporting avanzadas. Si te interesa un enfoque integral de dato a dashboard, visita nuestras soluciones de inteligencia de negocio en Power BI y Business Intelligence. Y si necesitas una capa de captura y procesamiento adaptada a tu caso de uso, te ayudamos con software a medida y aplicaciones a medida.

Mas alla del conteo. Nuestro equipo también diseña soluciones con inteligencia artificial ia para empresas y agentes IA, estrategias de ciberseguridad y pentesting, y arquitecturas de servicios cloud aws y azure, conectando datos transaccionales con analítica operativa y analítica avanzada. Esta visión holística nos permite escalar desde un simple DAU hasta modelos de atribución y pronósticos, manteniendo costes bajo control y cumpliendo requisitos de seguridad.

Conclusión. COUNT DISTINCT exacto es perfecto hasta que llega la escala. HLL te permite cambiar un poco de precisión por enormes ganancias en rendimiento y coste, manteniendo consultas simples y métricas componibles. En nuestra experiencia, pasar métricas de únicos a HLL transforma consultas lentas en operaciones ligeras y predecibles, aptas para cuadros de mando en tiempo real. Si te enfrentas al mismo límite, HLL puede salvar tu base de datos y tu presupuesto.

Palabras clave recomendadas para tu estrategia de posicionamiento aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat