ClickHouse — analitički motor u realnom vremenu u stack-u platforme
Stack platforme 4buildsite uključuje ClickHouse — kolonsku bazu podataka napravljenu posebno za analitiku velikih količina podataka. Na njoj gradimo modul statistike posjeta i prodaje (u razvoju): podaci ostaju vaši, izvještaji se pojavljuju, a stranica je od njih odvojena — tako je osmišljena arhitektura.
Šta je ClickHouse i zašto ga koristimo
ClickHouse je kolonska OLAP (online analitička) baza podataka, nastala u Yandexu za Yandex.Metricu — jedan od najvećih web-analitičkih sistema na svijetu — a 2016. objavljena kao open-source pod licencom Apache 2.0. Napravljena je za jednu stvar koju radi izuzetno dobro: brze agregacije nad ogromnim količinama podataka. U arhitekturi platforme 4buildsite, ClickHouse je motor odabran za sloj statistike: svaka posjeta, klik i narudžba postaju događaj koji se može odmah analizirati.
Tajna je kolonska pohrana: umjesto da čita svaki cijeli „red“, ClickHouse čita samo kolone koje izvještaj treba i obrađuje ih u velikim, vektorizovanim blokovima. Zato se pitanje poput „koliko sam posjetilaca imao jučer, po stranici i po izvoru“ odgovara čak i nad milionima događaja — nešto s čim se klasična redna baza muči.
Nije riječ o nišnoj tehnologiji: Cloudflare je koristi za analizu HTTP saobraćaja na globalnoj razini, a Uber, eBay i Spotify za analitiku i obradu logova pri ogromnim količinama. Na 4buildsite, isti motor je dio stacka platforme — bez potrebe da angažujete tim za inženjering podataka.
Statistika u stvarnom vremenu — kako je modul osmišljen
Modul statistike platforme je u razvoju, a njegova arhitektura je jednostavna: događaji saobraćaja prikupljaju se asinhrono i upisuju u ClickHouse, potpuno odvojeno od servera koji isporučuju vaše stranice. Izvještaji se računaju odvojeno od isporuke stranica. Nema teške skripte treće strane na stranici — prikupljanje je minimalno i first-party.
Izvještaji u panel.4buildsite.net računat će se direktno u ClickHouseu: saobraćaj po stranicama, izvori posjetilaca, konverzije, prodaja po proizvodu. Česte agregacije unaprijed se računaju putem materijalizovanih pogleda pri svakom upisu — kontrolna tabla ne pokreće težak proračun svaki put kad je pogledate.
- Saobraćaj uživo: posjete, stranice, izvori i uređaji — mogu se upitati nakon prikupljanja
- Prodaja po proizvodu, narudžbe i konverzije vaše trgovine, agregirane u izvještajima
- Mjeseci i godine historije uz nisku cijenu — kolonska kompresija višestruko smanjuje pohranu u odnosu na sirove podatke
- Odvojeno od stranice: prikupljanje je asinhrono, a izvještavanje radi na odvojenom sistemu
PostgreSQL + ClickHouse: zašto koristimo obje
Stack platforme kombinuje dvije baze podataka jer rade suštinski različite stvari. PostgreSQL je transakcijska knjiga (OLTP): narudžbe, plaćanja, zalihe, korisnički računi — operacije koje moraju biti savršeno tačne jedna po jedna, uz transakcijske garancije. ClickHouse je analitička soba (OLAP): milioni događaja čitaju se odjednom da odgovore na vaša pitanja o saobraćaju i prodaji.
Kad bi se teški izvještaji izvršavali na istoj bazi koja obrađuje narudžbe, svaki izvještaj bi se takmičio s kupcima koji u tom trenutku plaćaju. Podjela OLTP/OLAP uklanja taj sukob: narudžba kupca nikad ne čeka vaš izvještaj, a vaš izvještaj nikad ne čeka tuđe narudžbe. Svaki motor radi tačno ono za šta je napravljen.
- PostgreSQL: narudžbe, Stripe plaćanja, zalihe, kupci — transakcijska ispravnost
- ClickHouse: događaji saobraćaja, izvještaji, statistika — agregacija pri velikim količinama
- Dizajn replicira relevantne transakcijske podatke u ClickHouse kao događaje, pa izvještaji o prodaji nikad ne dotiču bazu koja služi vašu trgovinu
First-party analitika prijateljska prema privatnosti — umjesto Google Analyticsa
Princip modula statistike: podaci vaše stranice ostaju na infrastrukturi platforme. Ne šalju se Googleu ni reklamnim mrežama, ne prodaju se i ne spajaju s vanjskim korisničkim profilima. To je first-party analitika u doslovnom smislu: podaci o vašim posjetiocima su vaši.
Budući da pristup ne koristi kolačiće za praćenje trećih strana, usklađenost s GDPR-om postaje mnogo jednostavnija. Kontekst je važan: 2022. su tijela za zaštitu podataka u Austriji, Francuskoj i Italiji proglasila upotrebu Google Analyticsa neusklađenom s GDPR-om zbog prijenosa podataka u SAD. S first-party analitikom hostovanom u Evropi, cijela ta kategorija rizika nestaje od početka.
Postoji i direktna praktična korist: izvještaji računati u ClickHouseu nisu uzorkovani, za razliku od standardnih izvještaja u besplatnim analitičkim alatima. Kompletni brojevi.
Izvještaji trgovine i marketplacea — šta će modul isporučiti
Za online trgovinu, ClickHouse će značiti odgovore na pitanja koja su bitna: koji se proizvodi prodaju, koji izvori donose kupce koji zaista kupuju, gdje se korpe napuštaju. Za marketplace s više prodavača, iste agregacije će se izvršavati nad svim narudžbama: obim po prodavaču, provizije, najprodavaniji proizvodi po kategoriji — bez ručnih izvoza i tabela.
A pri velikom obimu stvari ostaju jeftine. Kolonska kompresija smanjuje podatke višestruko u odnosu na sirovi format, pa godinama čuvate historiju uz nisku cijenu pohrane. Kad saobraćaj naraste s hiljada na milione događaja, motor je od početka projektovan za milijarde redova, a ne naknadno prilagođavan.
Prednosti i nedostaci
Prednosti
- Agregacije nad milionima događaja.
- Analitika radi na sistemu odvojenom od onog koji služi stranice.
- Vaši podaci o saobraćaju ostaju vaši, na infrastrukturi platforme — bez prijenosa Googleu ili reklamnim mrežama.
- Bez kolačića za praćenje trećih strana — jednostavnija usklađenost s GDPR-om.
- Snažna kolonska kompresija — godine historije uz nisku cijenu pohrane.
- Open-source (Apache 2.0), bez licenci po obimu — trošak ne eksplodira kako saobraćaj raste.
Ograničenja
- Nije transakcijska baza — ažuriranje ili brisanje pojedinačnih redova je zahtjevna operacija; zato narudžbe i plaćanja žive u PostgreSQLu.
- Optimizovan za velike grupne upise; mnogo malih čestih umetanja zahtijeva grupisanje — platforma to rješava, ali je to stvarno ograničenje motora.
- Složeni JOIN-ovi su manje fleksibilni nego u PostgreSQLu — šema događaja mora se od početka projektovati za analitiku.
- Dohvaćanje jednog reda (point lookup) sporije je nego u indeksiranoj OLTP bazi — ne zamjenjuje glavnu bazu trgovine.
Brzi zaključak
ClickHouse je pravi izbor za analitiku pri velikom obimu: statistika saobraćaja i prodaje u stvarnom vremenu, s vlastitim podacima. Za narudžbe, plaćanja i zalihe ostaje PostgreSQL — zato stack 4buildsite kombinuje obje baze, svaku u onome što radi najbolje. Modul statistike izgrađen na ClickHouseu je u razvoju.
Tabela specifikacija
| Mogućnost | Granica / prag | Tipična upotreba | |
|---|---|---|---|
| Analitičke agregacije | Ispod sekunde nad milionima događaja (kolonski + vektorizovano) | Sporo kod pretrage pojedinačnog reda — nije za OLTP point čitanja | Izvještaji o saobraćaju i prodaji (modul statistike, u razvoju) |
| Unos događaja | Veliki obimi, upisani u grupama | Mala česta umetanja zahtijevaju grupisanje / async insert | Prikupljanje pregleda stranica, klikova, narudžbi |
| Pohrana i kompresija | Kolonska kompresija (LZ4/ZSTD), višestruko ispod sirovog obima | Izrazito nasumični podaci se slabije kompresuju | Mjeseci i godine historije događaja, uz nisku cijenu |
| Ažuriranja i brisanja | Asinhrone mutacije za povremene ispravke | Neprikladno za česte UPDATE-ove pojedinačnih redova | GDPR brisanja (podaci jednog korisnika, na zahtjev) |
| Materijalizovani pogledi | Agregati se unaprijed računaju pri svakom upisu | Agregati se moraju unaprijed definisati, po izvještaju | Trenutne kontrolne table: prodaja po danu, proizvodu, izvoru |
| Stvarno vrijeme | Događaji postaju upitljivi nakon što se dogode | Nije streaming sistem na nivou milisekundi | Statistika saobraćaja i konverzija uživo |
ClickHouse naspram PostgreSQLa naspram Google Analytics / BigQuery — za analitiku
| Kriterij | ClickHouse (4buildsite) | PostgreSQL (za analitiku) | Google Analytics / BigQuery |
|---|---|---|---|
| Brzina agregacije pri velikom obimu | Ispod sekunde nad milionima redova | Vidljivo se pogoršava nad desetinama miliona redova (redna pohrana) | BigQuery je brz; GA4 ima unaprijed agregirane standardne izvještaje, bez slobodnih upita |
| Vlasništvo nad podacima / GDPR | Vaši podaci, na infrastrukturi platforme, u Evropi | Vaši podaci, na vašim serverima | Podaci kod Googlea; prijenose GA-a u SAD evropska tijela proglasila su neusklađenim s GDPR-om 2022. |
| Kolačići i saglasnost | Bez kolačića za praćenje trećih strana | Zavisi od vaše vlastite implementacije | Zahtijeva baner saglasnosti za praćenje |
| Stvarno vrijeme | Podaci upitljivi nakon prikupljanja | Moguće, ali teški izvještaji opterećuju transakcijsku bazu | Standardni GA4 izvještaji mogu kasniti satima; BigQuery streaming se dodatno naplaćuje |
| Trošak pri velikom obimu | Open-source — trošak je samo infrastruktura, uključena u pretplatu | Raste s indeksima, vacuumom i hardverom pri velikim obimima | BigQuery naplaćuje po obimu upitanih podataka; GA enterprise nivo je skup |
| Uticaj na brzinu stranice | Nula — async prikupljanje, izvještavanje na odvojenom sistemu | Izvještaji se mogu takmičiti s narudžbama na istoj bazi | Skripta treće strane (gtag.js) na stranici — dodatni JavaScript i vanjski zahtjevi |
Često postavljana pitanja
Usporava li ClickHouse moju stranicu ili trgovinu?
Ne. ClickHouse radi na sistemu odvojenom od onog koji služi vaše stranice — tako je osmišljena arhitektura. Događaji saobraćaja šalju se asinhrono, a izvještaji nikad ne dotiču bazu trgovine. Analitika je odvojena od isporuke stranice.
Zašto jednostavno ne koristiti Google Analytics?
Iz tri razloga. Podaci ostaju vaši, na infrastrukturi platforme, a ne kod Googlea. Ne trebaju vam kolačići za praćenje trećih strana, pa je usklađenost s GDPR-om jednostavnija — 2022. su tijela u Austriji, Francuskoj i Italiji proglasila GA neusklađenim s GDPR-om. I izvještaji se pojavljuju kompletni, bez uzorkovanja.
Koja je razlika između ClickHousea i PostgreSQLa — zašto obje?
PostgreSQL je transakcijska (OLTP) baza: obrađuje narudžbe, plaćanja i zalihe jedno po jedno, uz garancije ispravnosti. ClickHouse je analitička (OLAP) baza: čita milione događaja odjednom za izvještaje. Podjela znači da težak izvještaj ne dira narudžbe vaših kupaca.
Jesu li moji podaci o saobraćaju sigurni i usklađeni s GDPR-om?
Da — po dizajnu. Statistika je first-party: živi na infrastrukturi platforme, u Evropi, i nikad se ne prodaje niti dijeli s reklamnim mrežama. Pristup ne koristi kolačiće za praćenje trećih strana, a podaci korisnika mogu se obrisati na zahtjev, u skladu s GDPR-om.
Koliko je statistika zaista „u stvarnom vremenu“?
Događaj — posjeta, klik, narudžba — postaje vidljiv u izvještajima nakon što se dogodi. Agregacije kroz duge periode (mjesece, godine) i dalje se izvršavaju, jer je ClickHouse napravljen upravo za ovu vrstu upita.
Moram li nešto podešavati da bih dobio statistiku na svojoj stranici?
Nećete morati. Modul statistike je u razvoju i izgrađen kao dio platforme: kad bude dostupan u administratorskom panelu, prikupljanje će automatski početi za objavljene stranice — bez skripti za instalaciju i bez vanjskih računa.