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 • Equip 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?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat