ClickHouse — motorul de analitică în timp real din stack-ul platformei

← Inicio
Analitică & date

ClickHouse — motorul de analitică în timp real din stack-ul platformei

Stack-ul 4shopy include ClickHouse — o bază de date columnară construită special pentru analiză la volum mare. Pe ea construim modulul de statistici de trafic și vânzări al platformei (în dezvoltare): datele rămân ale tale, rapoartele apar în secunde, iar site-ul tău nu pierde nicio milisecundă din cauza lor — așa este proiectată arhitectura.

Ce este ClickHouse și de ce îl folosim

ClickHouse este o bază de date columnară de tip OLAP (analiză online), creată la Yandex pentru Yandex.Metrica — unul dintre cele mai mari sisteme de analiză web din lume — și publicată open-source în 2016 sub licență Apache 2.0. Este construită pentru un singur lucru, pe care îl face excepțional: agregări rapide pe volume uriașe de date. În arhitectura 4shopy, ClickHouse este motorul ales pentru stratul de statistici: fiecare vizită, click și comandă devine un eveniment care poate fi analizat imediat.

Secretul este stocarea pe coloane: în loc să citească fiecare „rând” întreg, ClickHouse citește doar coloanele de care are nevoie raportul și le procesează vectorizat, în blocuri mari. De aceea o întrebare ca „câți vizitatori am avut ieri, pe fiecare pagină, din fiecare sursă” primește răspuns în sub o secundă chiar și peste milioane de evenimente — ceva ce o bază de date clasică, orientată pe rânduri, rezolvă mult mai greu.

Nu este o tehnologie de nișă: Cloudflare o folosește pentru analiza traficului HTTP la scară globală, iar Uber, eBay și Spotify o folosesc pentru analitică și procesare de loguri la volume enorme. Pe 4shopy, același motor face parte din stack-ul platformei — fără să angajezi o echipă de ingineri de date.

Statistici în timp real, fără să-ți încetinească site-ul — cum e proiectat modulul

Modulul de statistici al platformei este în dezvoltare, iar arhitectura lui este simplă: evenimentele de trafic se colectează asincron și se scriu în ClickHouse, complet separat de serverele care livrează paginile. Vizitatorii tăi nu așteaptă niciodată după analytics: pagina se încarcă la fel de repede indiferent câte rapoarte rulează în acel moment. Nu există un script greu de tracking terț care să-ți strice scorul de performanță — colectarea este minimă și first-party.

Rapoartele din panel.4shopy.net se vor calcula direct în ClickHouse: trafic pe pagini, surse de vizitatori, conversii, vânzări pe produs. Agregările frecvente se pre-calculează prin materialized views la fiecare scriere, deci dashboard-ul se va deschide instant — nu pornește un calcul greu de fiecare dată când îl privești.

  • Trafic live: vizite, pagini, surse și dispozitive — interogabile la câteva secunde după colectare
  • Vânzări pe produs, comenzi și conversii pentru magazinul tău, agregate în sub o secundă
  • Istoric pe luni și ani la cost mic — compresia columnară reduce stocarea de mai multe ori față de datele brute
  • Zero impact pe viteza site-ului: colectarea e asincronă, raportarea rulează pe alt sistem

PostgreSQL + ClickHouse: de ce folosim ambele

Stack-ul platformei combină două baze de date pentru că fac lucruri fundamental diferite. PostgreSQL este registrul de tranzacții (OLTP): comenzi, plăți, stoc, conturi de utilizator — operații care trebuie să fie perfect corecte una câte una, cu garanții tranzacționale. ClickHouse este sala de analiză (OLAP): milioane de evenimente citite deodată pentru a-ți răspunde la întrebări despre trafic și vânzări.

Dacă rapoartele grele ar rula pe aceeași bază de date care procesează comenzile, fiecare raport ar concura cu clienții care plătesc în acel moment. Separarea OLTP/OLAP elimină acest conflict: comanda clientului nu așteaptă după raportul tău, iar raportul tău nu așteaptă după comenzile altora. Fiecare motor face exact ce a fost construit să facă.

  • PostgreSQL: comenzi, plăți Stripe, stoc, clienți — corectitudine tranzacțională
  • ClickHouse: evenimente de trafic, rapoarte, statistici — agregare la volum
  • Designul prevede ca datele tranzacționale relevante să ajungă în ClickHouse ca evenimente, deci rapoartele de vânzări nu ating niciodată baza care servește magazinul

Analytics propriu, privacy-friendly — în locul Google Analytics

Principiul modulului de statistici: datele site-ului tău rămân pe infrastructura platformei. Nu se trimit către Google sau alte rețele de publicitate, nu se vând și nu se combină cu profiluri externe de utilizatori. Este analytics first-party în sensul propriu: datele despre vizitatorii tăi sunt ale tale.

Pentru că abordarea nu folosește cookie-uri terțe de tracking, conformitatea GDPR devine mult mai simplă. Contextul contează: în 2022, autoritățile de protecția datelor din Austria, Franța și Italia au declarat utilizarea Google Analytics neconformă cu GDPR din cauza transferurilor de date către SUA. Cu un analytics propriu, găzduit în Europa, această categorie de risc dispare din start.

Există și un beneficiu practic direct: rapoartele calculate în ClickHouse nu sunt eșantionate și nu apar cu întârziere de ore, cum se întâmplă la rapoartele standard din instrumentele gratuite de analytics. Cifre complete, în secunde.

Rapoarte de magazin și marketplace, instant — ce va livra modulul

Pentru un magazin online, ClickHouse va însemna răspunsuri imediate la întrebările care contează: ce produse se vând, din ce surse vin clienții care cumpără, unde se abandonează coșurile. Pentru un marketplace multi-vendor, aceleași agregări vor rula peste toate comenzile: volum pe vânzător, comisioane, top produse pe categorie — fără export-uri manuale și fără foi de calcul.

Și la scară lucrurile rămân ieftine și rapide. Compresia columnară reduce datele de mai multe ori față de formatul brut, deci păstrezi istoric de ani de zile la un cost de stocare mic. Iar când traficul crește de la mii la milioane de evenimente, agregările rămân în zona sub-secundei — motorul a fost proiectat de la început pentru miliarde de rânduri, nu adaptat ulterior.

Avantaje și limitări

Avantaje

  • Agregări pe milioane de evenimente în sub o secundă — rapoarte care se deschid instant.
  • Zero impact pe viteza site-ului: analytics-ul rulează pe un sistem separat de cel care servește paginile.
  • Datele de trafic rămân ale tale, pe infrastructura platformei — fără transfer către Google sau rețele de publicitate.
  • Fără cookie-uri terțe de tracking — conformitate GDPR mai simplă.
  • Compresie columnară puternică — istoric de ani de zile la cost de stocare mic.
  • Open-source (Apache 2.0), fără licențe per-volum — costul nu explodează când crește traficul.

Limitări

  • Nu este o bază de date tranzacțională — modificarea sau ștergerea rândurilor individuale e o operație grea; de aceea comenzile și plățile stau în PostgreSQL.
  • Optimizat pentru scrieri în loturi mari; multe inserturi mici și dese cer batching — platforma gestionează asta, dar e o limită reală a motorului.
  • JOIN-urile complexe sunt mai puțin flexibile decât în PostgreSQL — schema de evenimente trebuie proiectată pentru analiză de la început.
  • Căutarea unui singur rând (point lookup) e mai lentă decât într-o bază OLTP indexată — nu înlocuiește baza principală a magazinului.

Verdict scurt

ClickHouse este alegerea corectă pentru analitică la volum: statistici de trafic și vânzări în timp real, cu datele tale, fără să atingă viteza site-ului. Pentru comenzi, plăți și stoc rămâne PostgreSQL — de aceea stack-ul 4shopy le combină pe amândouă, fiecare la ce e cel mai bun. Modulul de statistici construit pe ClickHouse este în dezvoltare.

Tabel de specificații

CapabilitateLimită / pragUtilizare tipică
Agregări analiticeSub o secundă pe milioane de evenimente (columnar + vectorizat)Lent la căutarea unui singur rând — nu e pentru lookups OLTPRapoarte de trafic și vânzări (modulul de statistici, în dezvoltare)
Ingestie de evenimenteVolume mari, scrise în loturiInserturile mici și dese cer batching / async insertColectare pageview-uri, click-uri, comenzi
Stocare & compresieCompresie columnară (LZ4/ZSTD), de mai multe ori sub volumul brutDatele foarte aleatorii se comprimă mai puținIstoric de evenimente pe luni și ani, la cost mic
Actualizări & ștergeriMutations asincrone pentru corecții ocazionaleNepotrivit pentru UPDATE-uri frecvente pe rânduri individualeȘtergeri GDPR (datele unui utilizator, la cerere)
Materialized viewsAgregate pre-calculate la fiecare scriereAgregatele trebuie definite dinainte, per raportDashboard-uri instant: vânzări pe zi, produs, sursă
Timp-realEvenimentele devin interogabile la secunde după ce au locNu e un sistem de streaming la nivel de milisecundăStatistici live de trafic și conversii

ClickHouse vs PostgreSQL vs Google Analytics / BigQuery — pentru analitică

CriteriuClickHouse (4shopy)PostgreSQL (pt. analitică)Google Analytics / BigQuery
Viteză agregări la volumSub o secundă pe milioane de rânduriScade vizibil pe zeci de milioane de rânduri (stocare pe rânduri)BigQuery rapid; GA4 are rapoarte standard pre-agregate, fără interogări libere
Proprietatea datelor / GDPRDatele tale, pe infrastructura platformei, în EuropaDatele tale, pe serverele taleDatele la Google; transferurile GA către SUA declarate neconforme GDPR de autorități UE în 2022
Cookie-uri & consimțământFără cookie-uri terțe de trackingDepinde de implementarea proprieNecesită banner de consimțământ pentru tracking
Timp-realDate interogabile în secundePosibil, dar rapoartele grele încarcă baza tranzacționalăRapoartele standard GA4 pot apărea cu întârziere de ore; streaming BigQuery costă extra
Cost la volumOpen-source — costul e doar infrastructura, inclusă în abonamentCrește cu indexuri, vacuum și hardware pe volume mariBigQuery taxează per volum interogat; varianta enterprise GA e costisitoare
Impact asupra vitezei site-uluiZero — colectare asincronă, raportare pe sistem separatRapoartele pot concura cu comenzile pe aceeași bazăScript terț (gtag.js) în pagină — JavaScript și cereri externe în plus

Întrebări frecvente

Îmi încetinește ClickHouse site-ul sau magazinul?

Nu. ClickHouse rulează pe un sistem separat de cel care servește paginile — așa e proiectată arhitectura. Evenimentele de trafic se trimit asincron, iar rapoartele nu ating niciodată baza de date a magazinului. Site-ul se încarcă la fel de repede cu sau fără statistici deschise.

De ce nu folosiți pur și simplu Google Analytics?

Trei motive. Datele rămân ale tale, pe infrastructura platformei, nu la Google. Nu ai nevoie de cookie-uri terțe de tracking, deci conformitatea GDPR e mai simplă — în 2022, autorități din Austria, Franța și Italia au declarat GA neconform cu GDPR. Și rapoartele apar în secunde, complete, nu eșantionate sau întârziate cu ore.

Care e diferența dintre ClickHouse și PostgreSQL — de ce ambele?

PostgreSQL e baza tranzacțională (OLTP): procesează comenzi, plăți și stoc, una câte una, cu garanții de corectitudine. ClickHouse e baza analitică (OLAP): citește milioane de evenimente deodată pentru rapoarte. Separarea înseamnă că un raport greu nu încetinește niciodată comenzile clienților tăi.

Datele mele de trafic sunt în siguranță și conforme GDPR?

Da — prin design. Statisticile sunt first-party: stau pe infrastructura platformei, în Europa, nu se vând și nu se partajează cu rețele de publicitate. Abordarea nu folosește cookie-uri terțe de tracking, iar datele unui utilizator pot fi șterse la cerere, conform GDPR.

Cât de „în timp real” sunt statisticile?

Un eveniment — o vizită, un click, o comandă — devine vizibil în rapoarte la câteva secunde după ce are loc. Agregările pe perioade mari (luni, ani) răspund tot în sub o secundă, pentru că ClickHouse a fost construit exact pentru acest tip de interogări.

Trebuie să configurez ceva ca să am statistici pe site-ul meu?

Nu va fi nevoie. Modulul de statistici este în dezvoltare și este construit ca parte a platformei: când devine activ în panoul de administrare, colectarea pornește automat pentru site-urile publicate — fără scripturi de instalat și fără conturi externe.