ClickHouse — il motore di analisi in tempo reale della piattaforma
Lo stack di 4buildsite comprende ClickHouse, un database colonnare creato appositamente per l'analisi di grandi volumi. Su di esso costruiamo il modulo di statistiche di traffico e vendite della piattaforma (in sviluppo): i dati restano tuoi, i report sono calcolati sui dati raccolti, e la raccolta è separata dal sistema che serve il tuo sito, perché l'architettura è progettata così.
Che cos'è ClickHouse e perché lo usiamo
ClickHouse è un database colonnare di tipo OLAP (analisi in linea), creato in Yandex per Yandex.Metrica — uno dei più grandi sistemi di analisi web al mondo — e pubblicato come open source nel 2016 con licenza Apache 2.0. È costruito per una cosa sola, che fa in modo eccezionale: aggregazioni rapide su volumi enormi di dati. Nell'architettura di 4buildsite, ClickHouse è il motore scelto per lo strato delle statistiche: ogni visita, clic e ordine diventa un evento analizzabile.
Il segreto sta nell'archiviazione per colonne: invece di leggere ogni «riga» per intero, ClickHouse legge solo le colonne che servono al report e le elabora in modo vettorizzato, a grandi blocchi. Per questo una domanda come «quanti visitatori ho avuto ieri, per pagina e per fonte» viene elaborata anche su milioni di eventi, cosa che un database classico orientato alle righe risolve con molta più fatica.
Non è una tecnologia di nicchia: Cloudflare la usa per analizzare il traffico HTTP su scala globale, mentre Uber, eBay e Spotify la impiegano per analisi ed elaborazione di log a volumi enormi. Su 4buildsite lo stesso motore fa parte dello stack della piattaforma, senza che tu debba assumere un team di ingegneri dei dati.
Statistiche in tempo reale: com'è progettato il modulo
Il modulo di statistiche della piattaforma è in sviluppo e la sua architettura è semplice: gli eventi di traffico vengono raccolti in modo asincrono e scritti in ClickHouse, del tutto separati dai server che servono le pagine. Il caricamento della pagina non dipende dai report che girano in quel momento. Non c'è alcuno script di tracciamento di terze parti nella pagina: la raccolta è minima e di prima parte.
I report di panel.4buildsite.net saranno calcolati direttamente in ClickHouse: traffico per pagina, fonti dei visitatori, conversioni, vendite per prodotto. Le aggregazioni più frequenti vengono pre-calcolate con viste materializzate a ogni scrittura, così la dashboard non avvia ogni volta un calcolo pesante quando la guardi.
- Traffico: visite, pagine, fonti e dispositivi, raccolti in modo asincrono
- Vendite per prodotto, ordini e conversioni del tuo negozio, aggregati su grandi volumi di eventi
- Storico di mesi e anni a costo contenuto: la compressione colonnare riduce l'archiviazione di diverse volte rispetto ai dati grezzi
- Separazione dal sito: la raccolta è asincrona e la reportistica gira su un altro sistema
PostgreSQL e ClickHouse: perché li usiamo entrambi
Lo stack della piattaforma combina due database perché fanno cose radicalmente diverse. PostgreSQL è il registro transazionale (OLTP): ordini, pagamenti, giacenze, account utente — operazioni che devono essere perfettamente corrette una per una, con garanzie transazionali. ClickHouse è la sala di analisi (OLAP): milioni di eventi letti in una volta sola per rispondere alle tue domande su traffico e vendite.
Se i report pesanti girassero sullo stesso database che elabora gli ordini, ogni report entrerebbe in concorrenza con i clienti che stanno pagando in quel momento. La separazione tra OLTP e OLAP elimina questo conflitto: l'ordine del cliente e il tuo report girano su sistemi separati. Ogni motore fa esattamente ciò per cui è stato costruito.
- PostgreSQL: ordini, pagamenti Stripe, giacenze, clienti — correttezza transazionale
- ClickHouse: eventi di traffico, report, statistiche — aggregazione su grandi volumi
- Il progetto prevede che i dati transazionali rilevanti arrivino in ClickHouse come eventi, così i report di vendita non toccano mai il database che serve il negozio
Analisi propria e rispettosa della privacy, al posto di Google Analytics
Il principio del modulo di statistiche: i dati del tuo sito restano sull'infrastruttura della piattaforma. Non vengono inviati a Google né ad altre reti pubblicitarie, non vengono venduti e non vengono combinati con profili utente esterni. È analisi di prima parte in senso proprio: i dati sui tuoi visitatori sono tuoi.
Poiché l'approccio non usa cookie di tracciamento di terze parti, la conformità al GDPR diventa molto più semplice. Il contesto conta: nel 2022 le autorità per la protezione dei dati di Austria, Francia e Italia hanno dichiarato l'uso di Google Analytics non conforme al GDPR a causa dei trasferimenti di dati verso gli Stati Uniti. Con un'analisi propria, ospitata in Europa, questa categoria di rischio scompare in partenza.
C'è anche un vantaggio pratico: i report calcolati in ClickHouse non sono campionati, come invece può accadere con i report standard degli strumenti di analisi gratuiti. Numeri completi, calcolati sui tuoi dati.
Report di negozio e marketplace: che cosa offrirà il modulo
Per un negozio online, ClickHouse significherà risposte alle domande che contano: quali prodotti vendono, da quali fonti arrivano i clienti che acquistano, dove vengono abbandonati i carrelli. Per un marketplace multi-venditore, le stesse aggregazioni gireranno su tutti gli ordini: volume per venditore, commissioni, prodotti più venduti per categoria, senza esportazioni manuali e senza fogli di calcolo.
E su larga scala le cose restano economiche. La compressione colonnare riduce i dati di diverse volte rispetto al formato grezzo, quindi conservi anni di storico con un costo di archiviazione ridotto. E quando il traffico passa da migliaia a milioni di eventi, il motore è stato progettato fin dall'inizio per miliardi di righe, non adattato in seguito.
Vantaggi e limiti
Vantaggi
- Aggregazioni su milioni di eventi, con report costruiti per le interrogazioni analitiche.
- Separazione dal sito: l'analisi gira su un sistema separato da quello che serve le pagine.
- I dati di traffico restano tuoi, sull'infrastruttura della piattaforma, senza trasferimenti verso Google o reti pubblicitarie.
- Nessun cookie di tracciamento di terze parti: conformità al GDPR più semplice.
- Compressione colonnare potente: anni di storico con un costo di archiviazione ridotto.
- Open source (Apache 2.0), senza licenze a volume: il costo non esplode quando il traffico cresce.
Limiti
- Non è un database transazionale: modificare o cancellare singole righe è un'operazione pesante; per questo ordini e pagamenti restano in PostgreSQL.
- È ottimizzato per scritture in lotti ampi; molte inserzioni piccole e frequenti richiedono il raggruppamento — la piattaforma se ne occupa, ma resta un limite reale del motore.
- I JOIN complessi sono meno flessibili che in PostgreSQL: lo schema degli eventi va progettato per l'analisi fin dall'inizio.
- La ricerca di una singola riga (point lookup) è più lenta che in un database OLTP indicizzato: non sostituisce il database principale del negozio.
Verdetto in breve
ClickHouse è la scelta giusta per l'analisi ad alto volume: statistiche di traffico e vendite in tempo reale, con i tuoi dati. Per ordini, pagamenti e giacenze resta PostgreSQL: per questo lo stack di 4buildsite li combina entrambi, ciascuno per ciò in cui è migliore. Il modulo di statistiche costruito su ClickHouse è in sviluppo.
Tabella delle specifiche
| Capacità | Limite / soglia | Uso tipico | |
|---|---|---|---|
| Aggregazioni analitiche | Aggregazioni su milioni di eventi (colonnare e vettorizzato) | Lento nella ricerca di una singola riga: non è pensato per i lookup OLTP | Report di traffico e vendite (modulo di statistiche, in sviluppo) |
| Acquisizione di eventi | Grandi volumi, scritti a lotti | Le inserzioni piccole e frequenti richiedono raggruppamento o inserimento asincrono | Raccolta di visualizzazioni di pagina, clic, ordini |
| Archiviazione e compressione | Compressione colonnare (LZ4/ZSTD), diverse volte sotto il volume grezzo | I dati molto casuali si comprimono meno | Storico degli eventi su mesi e anni, a costo contenuto |
| Aggiornamenti e cancellazioni | Mutation asincrone per le correzioni occasionali | Non adatto a UPDATE frequenti su singole righe | Cancellazioni GDPR (i dati di un utente, su richiesta) |
| Viste materializzate | Aggregati pre-calcolati a ogni scrittura | Gli aggregati vanno definiti in anticipo, report per report | Dashboard con aggregati precalcolati: vendite per giorno, prodotto, fonte |
| Tempo reale | Gli eventi vengono raccolti in modo asincrono e poi diventano interrogabili | Non è un sistema di streaming a livello di millisecondi | Statistiche dal vivo di traffico e conversioni |
ClickHouse a confronto con PostgreSQL e Google Analytics / BigQuery per l'analisi
| Criterio | ClickHouse (4buildsite) | PostgreSQL (per l'analisi) | Google Analytics / BigQuery |
|---|---|---|---|
| Velocità di aggregazione sui grandi volumi | Aggregazioni su milioni di righe | Cala sensibilmente oltre le decine di milioni di righe (archiviazione per righe) | BigQuery è rapido; GA4 offre report standard pre-aggregati, senza interrogazioni libere |
| Proprietà dei dati e GDPR | I tuoi dati, sull'infrastruttura della piattaforma, in Europa | I tuoi dati, sui tuoi server | I dati restano a Google; nel 2022 le autorità UE hanno dichiarato non conformi al GDPR i trasferimenti di GA verso gli Stati Uniti |
| Cookie e consenso | Senza cookie di tracciamento di terze parti | Dipende dall'implementazione scelta | Richiede un banner di consenso per il tracciamento |
| Tempo reale | Dati interrogabili dopo la raccolta | Possibile, ma i report pesanti caricano il database transazionale | I report standard di GA4 possono comparire con ore di ritardo; lo streaming di BigQuery si paga a parte |
| Costo sui grandi volumi | Open source: il costo è solo l'infrastruttura, inclusa nell'abbonamento | Cresce con indici, vacuum e hardware sui grandi volumi | BigQuery addebita in base al volume interrogato; la versione enterprise di GA è costosa |
| Dove gira il carico | Raccolta asincrona e reportistica su un sistema separato | I report possono competere con gli ordini sullo stesso database | Script di terze parti (gtag.js) nella pagina: JavaScript e richieste esterne in più |
Domande frequenti
ClickHouse rallenta il mio sito o il mio negozio?
ClickHouse gira su un sistema separato da quello che serve le pagine: l'architettura è progettata così. Gli eventi di traffico vengono inviati in modo asincrono e i report non toccano mai il database del negozio.
Perché non usate semplicemente Google Analytics?
Per tre motivi. I dati restano tuoi, sull'infrastruttura della piattaforma, e non finiscono a Google. Non servono cookie di tracciamento di terze parti, quindi la conformità al GDPR è più semplice: nel 2022 le autorità di Austria, Francia e Italia hanno dichiarato GA non conforme al GDPR. E i report vengono calcolati direttamente sugli eventi raccolti, in ClickHouse.
Qual è la differenza tra ClickHouse e PostgreSQL, e perché entrambi?
PostgreSQL è il database transazionale (OLTP): elabora ordini, pagamenti e giacenze uno per uno, con garanzie di correttezza. ClickHouse è il database analitico (OLAP): legge milioni di eventi in una volta sola per i report. La separazione fa sì che un report pesante non tocchi gli ordini dei tuoi clienti.
I miei dati di traffico sono al sicuro e conformi al GDPR?
Sì, per come è progettato il sistema. Le statistiche sono di prima parte: risiedono sull'infrastruttura della piattaforma, in Europa, non vengono vendute né condivise con reti pubblicitarie. L'approccio non usa cookie di tracciamento di terze parti e i dati di un utente possono essere cancellati su richiesta, in conformità al GDPR.
Quanto sono «in tempo reale» le statistiche?
Un evento — una visita, un clic, un ordine — viene raccolto in modo asincrono e poi diventa disponibile per i report. Anche le aggregazioni su periodi lunghi (mesi, anni) sono calcolate da ClickHouse, che è stato costruito proprio per questo tipo di interrogazioni.
Devo configurare qualcosa per avere le statistiche sul mio sito?
Non sarà necessario. Il modulo di statistiche è in sviluppo ed è costruito come parte della piattaforma: quando sarà attivo nel pannello di amministrazione, la raccolta partirà automaticamente per i siti pubblicati, senza script da installare e senza account esterni.