ClickHouse — el motor de analítica en tiempo real de la plataforma
El stack de 4buildsite incluye ClickHouse, una base de datos columnar creada específicamente para el análisis de grandes volúmenes. Sobre ella construimos el módulo de estadísticas de tráfico y ventas de la plataforma (en desarrollo): los datos siguen siendo tuyos, la recogida de datos va separada de la entrega de tus páginas, porque así está diseñada la arquitectura.
Qué es ClickHouse y por qué lo usamos
ClickHouse es una base de datos columnar de tipo OLAP (análisis en línea), creada en Yandex para Yandex.Metrica —uno de los mayores sistemas de analítica web del mundo— y publicada como código abierto en 2016 bajo licencia Apache 2.0. Está construida para una sola cosa, que hace de forma excepcional: agregaciones rápidas sobre volúmenes enormes de datos. En la arquitectura de 4buildsite, ClickHouse es el motor elegido para la capa de estadísticas: cada visita, clic y pedido se convierte en un evento analizable.
El secreto está en el almacenamiento por columnas: en lugar de leer cada «fila» entera, ClickHouse lee solo las columnas que el informe necesita y las procesa de forma vectorizada, en bloques grandes. Por eso una pregunta como «cuántos visitantes tuve ayer, por página y por fuente» se responde en menos de un segundo incluso sobre millones de eventos, algo que una base de datos clásica orientada a filas resuelve con mucha más dificultad.
No es una tecnología de nicho: Cloudflare la usa para analizar el tráfico HTTP a escala global, y Uber, eBay y Spotify la emplean para analítica y procesamiento de registros con volúmenes enormes. En 4buildsite, ese mismo motor forma parte del stack de la plataforma, sin que tengas que contratar un equipo de ingeniería de datos.
Estadísticas en tiempo real, sin ralentizar tu web: cómo está diseñado el módulo
El módulo de estadísticas de la plataforma está en desarrollo y su arquitectura es sencilla: los eventos de tráfico se recogen de forma asíncrona y se escriben en ClickHouse, completamente separados de los servidores que sirven las páginas. No hay un script pesado de seguimiento de terceros en la página: la recogida es mínima y de origen propio.
Los informes de panel.4buildsite.net se calcularán directamente en ClickHouse: tráfico por página, fuentes de visitantes, conversiones y ventas por producto. Las agregaciones frecuentes se precalculan mediante vistas materializadas en cada escritura, así que el panel no lanza un cálculo pesado cada vez que lo miras.
- Tráfico en vivo: visitas, páginas, fuentes y dispositivos, consultables una vez recogidos
- Ventas por producto, pedidos y conversiones de tu tienda, agregados para su análisis
- Historial de meses y años a bajo coste: la compresión columnar reduce el almacenamiento varias veces respecto a los datos en bruto
- La recogida es asíncrona y los informes se ejecutan en otro sistema
PostgreSQL y ClickHouse: por qué usamos ambos
El stack de la plataforma combina dos bases de datos porque hacen cosas radicalmente distintas. PostgreSQL es el registro transaccional (OLTP): pedidos, pagos, inventario y cuentas de usuario, operaciones que deben ser perfectamente correctas una a una, con garantías transaccionales. ClickHouse es la sala de análisis (OLAP): millones de eventos leídos a la vez para responder a tus preguntas sobre tráfico y ventas.
Si los informes pesados se ejecutaran en la misma base de datos que procesa los pedidos, cada informe competiría con los clientes que están pagando en ese momento. Separar OLTP y OLAP elimina ese conflicto: el pedido del cliente no espera a tu informe y tu informe no espera a los pedidos de los demás. Cada motor hace exactamente aquello para lo que fue construido.
- PostgreSQL: pedidos, pagos con Stripe, inventario y clientes — corrección transaccional
- ClickHouse: eventos de tráfico, informes y estadísticas — agregación a gran volumen
- El diseño prevé que los datos transaccionales relevantes lleguen a ClickHouse como eventos, de modo que los informes de ventas nunca tocan la base que sirve a la tienda
Analítica propia y respetuosa con la privacidad, en lugar de Google Analytics
El principio del módulo de estadísticas: los datos de tu web se quedan en la infraestructura de la plataforma. No se envían a Google ni a otras redes publicitarias, no se venden y no se combinan con perfiles externos de usuarios. Es analítica de origen propio en sentido estricto: los datos sobre tus visitantes son tuyos.
Como el enfoque no usa cookies de seguimiento de terceros, cumplir el RGPD resulta mucho más sencillo. El contexto importa: en 2022, las autoridades de protección de datos de Austria, Francia e Italia declararon que el uso de Google Analytics no cumplía el RGPD por las transferencias de datos a Estados Unidos. Con una analítica propia y alojada en Europa, esa categoría de riesgo desaparece de raíz.
Hay además un beneficio práctico directo: los informes calculados en ClickHouse no están muestreados ni aparecen con horas de retraso, como ocurre con los informes estándar de las herramientas gratuitas de analítica. Cifras completas.
Informes de tienda y marketplace: qué entregará el módulo
Para una tienda online, ClickHouse significará respuestas a las preguntas que importan: qué productos se venden, de qué fuentes llegan los clientes que compran y dónde se abandonan los carritos. Para un marketplace con varios vendedores, esas mismas agregaciones se ejecutarán sobre todos los pedidos: volumen por vendedor, comisiones y productos más vendidos por categoría, sin exportaciones manuales ni hojas de cálculo.
Y a escala las cosas siguen siendo baratas y rápidas. La compresión columnar reduce los datos varias veces respecto al formato en bruto, así que conservas años de historial con un coste de almacenamiento pequeño. Y cuando el tráfico pasa de miles a millones de eventos, las agregaciones se mantienen por debajo del segundo: el motor se diseñó desde el principio para miles de millones de filas, no se adaptó después.
Ventajas y limitaciones
Ventajas
- Agregaciones sobre millones de eventos en menos de un segundo: informes que se abren.
- La analítica se ejecuta en un sistema separado del que sirve las páginas.
- Los datos de tráfico siguen siendo tuyos, en la infraestructura de la plataforma, sin transferencias a Google ni a redes publicitarias.
- Sin cookies de seguimiento de terceros: cumplir el RGPD resulta más sencillo.
- Compresión columnar potente: años de historial con un coste de almacenamiento pequeño.
- Código abierto (Apache 2.0), sin licencias por volumen: el coste no se dispara cuando crece el tráfico.
Limitaciones
- No es una base de datos transaccional: modificar o borrar filas individuales es una operación costosa; por eso los pedidos y los pagos viven en PostgreSQL.
- Optimizada para escrituras en lotes grandes; muchas inserciones pequeñas y frecuentes exigen agruparlas: la plataforma se encarga de ello, pero es un límite real del motor.
- Los JOIN complejos son menos flexibles que en PostgreSQL: el esquema de eventos debe diseñarse para el análisis desde el principio.
- Buscar una sola fila (point lookup) es más lento que en una base OLTP indexada: no sustituye a la base principal de la tienda.
Veredicto breve
ClickHouse es la elección correcta para la analítica de gran volumen: estadísticas de tráfico y ventas en tiempo real, con tus datos. Para pedidos, pagos e inventario se queda PostgreSQL; por eso el stack de 4buildsite combina ambos, cada uno en aquello que hace mejor. El módulo de estadísticas construido sobre ClickHouse está en desarrollo.
Tabla de especificaciones
| Capacidad | Límite / umbral | Uso habitual | |
|---|---|---|---|
| Agregaciones analíticas | Menos de un segundo sobre millones de eventos (columnar y vectorizado) | Lento al buscar una sola fila: no está pensado para búsquedas OLTP | Informes de tráfico y ventas (módulo de estadísticas, en desarrollo) |
| Ingesta de eventos | Grandes volúmenes, escritos por lotes | Las inserciones pequeñas y frecuentes exigen agrupación o inserción asíncrona | Recogida de páginas vistas, clics y pedidos |
| Almacenamiento y compresión | Compresión columnar (LZ4/ZSTD), varias veces por debajo del volumen en bruto | Los datos muy aleatorios se comprimen menos | Historial de eventos de meses y años, a bajo coste |
| Actualizaciones y borrados | Mutaciones asíncronas para correcciones puntuales | Poco adecuado para UPDATE frecuentes sobre filas individuales | Borrados RGPD (los datos de un usuario, a petición) |
| Vistas materializadas | Agregados precalculados en cada escritura | Los agregados deben definirse de antemano, para cada informe | Paneles: ventas por día, producto y fuente |
| Tiempo real | Los eventos se pueden consultar una vez producidos | No es un sistema de streaming a nivel de milisegundos | Estadísticas en vivo de tráfico y conversiones |
ClickHouse frente a PostgreSQL y Google Analytics / BigQuery para analítica
| Criterio | ClickHouse (4buildsite) | PostgreSQL (para analítica) | Google Analytics / BigQuery |
|---|---|---|---|
| Velocidad de agregación a gran volumen | Menos de un segundo sobre millones de filas | Baja de forma notable con decenas de millones de filas (almacenamiento por filas) | BigQuery es rápido; GA4 ofrece informes estándar preagregados, sin consultas libres |
| Propiedad de los datos y RGPD | Tus datos, en la infraestructura de la plataforma, en Europa | Tus datos, en tus servidores | Los datos quedan en Google; las autoridades de la UE declararon en 2022 que las transferencias de GA a Estados Unidos no cumplían el RGPD |
| Cookies y consentimiento | Sin cookies de seguimiento de terceros | Depende de la implementación propia | Requiere un banner de consentimiento para el seguimiento |
| Tiempo real | Datos consultables tras su recogida | Es posible, pero los informes pesados cargan la base transaccional | Los informes estándar de GA4 pueden aparecer con horas de retraso; el streaming de BigQuery cuesta aparte |
| Coste a gran volumen | Código abierto: el coste es solo la infraestructura, incluida en la suscripción | Crece con los índices, el vacuum y el hardware en volúmenes grandes | BigQuery cobra por volumen consultado; la variante empresarial de GA es cara |
| Impacto en la velocidad de la web | Recogida asíncrona e informes en un sistema separado | Los informes pueden competir con los pedidos en la misma base | Script de terceros (gtag.js) en la página: JavaScript y peticiones externas de más |
Preguntas frecuentes
¿ClickHouse ralentiza mi web o mi tienda?
No. ClickHouse se ejecuta en un sistema separado del que sirve las páginas: así está diseñada la arquitectura. Los eventos de tráfico se envían de forma asíncrona y los informes nunca tocan la base de datos de la tienda.
¿Por qué no usáis simplemente Google Analytics?
Por tres razones. Los datos siguen siendo tuyos, en la infraestructura de la plataforma, no en Google. No necesitas cookies de seguimiento de terceros, así que cumplir el RGPD es más sencillo: en 2022, autoridades de Austria, Francia e Italia declararon que GA no cumplía el RGPD. Y los informes son completos, sin muestreo ni horas de retraso.
¿Cuál es la diferencia entre ClickHouse y PostgreSQL? ¿Por qué ambos?
PostgreSQL es la base transaccional (OLTP): procesa pedidos, pagos e inventario uno a uno, con garantías de corrección. ClickHouse es la base analítica (OLAP): lee millones de eventos a la vez para los informes. La separación implica que un informe pesado nunca ralentiza los pedidos de tus clientes.
¿Mis datos de tráfico están seguros y cumplen el RGPD?
Sí, por diseño. Las estadísticas son de origen propio: residen en la infraestructura de la plataforma, en Europa, no se venden y no se comparten con redes publicitarias. El enfoque no usa cookies de seguimiento de terceros y los datos de un usuario pueden borrarse a petición, conforme al RGPD.
¿Hasta qué punto son «en tiempo real» las estadísticas?
Un evento —una visita, un clic, un pedido— se hace visible en los informes. Las agregaciones sobre periodos largos (meses, años) también responden en menos de un segundo, porque ClickHouse se construyó justo para este tipo de consultas.
¿Tengo que configurar algo para tener estadísticas en mi web?
No hará falta. El módulo de estadísticas está en desarrollo y se construye como parte de la plataforma: cuando se active en el panel de administración, la recogida arrancará automáticamente para las webs publicadas, sin scripts que instalar ni cuentas externas.