ClickHouse — mehanizam za analitiku u stvarnom vremenu u stogu platforme
Stog 4buildsitea uključuje ClickHouse — stupčanu bazu podataka izgrađenu posebno za analizu velikih volumena. Na njoj gradimo modul statistike prometa i prodaje platforme (u razvoju): podaci ostaju vaši, izvješća se pojavljuju, a prikupljanje je odvojeno od isporuke web-stranice — tako je projektirana arhitektura.
Što je ClickHouse i zašto ga koristimo
ClickHouse je stupčana baza podataka tipa OLAP (online analiza), stvorena u Yandexu za Yandex.Metricu — jedan od najvećih sustava za web-analitiku na svijetu — i objavljena kao open-source 2016. pod licencom Apache 2.0. Izgrađena je za jednu stvar, koju radi izvanredno: brze agregacije nad golemim količinama podataka. U arhitekturi 4buildsitea ClickHouse je mehanizam odabran za sloj statistike: svaki posjet, klik i narudžba postaju događaj koji se može odmah analizirati.
Tajna je pohrana po stupcima: umjesto da čita svaki „redak“ u cijelosti, ClickHouse čita samo stupce koji su potrebni izvješću i obrađuje ih vektorizirano, u velikim blokovima. Zato pitanje poput „koliko smo posjetitelja imali jučer, po svakoj stranici, iz svakog izvora“ dobiva odgovor čak i nad milijunima događaja — nešto što klasična, retčana baza podataka rješava mnogo teže.
Nije riječ o nišnoj tehnologiji: Cloudflare je koristi za analizu HTTP prometa u globalnom opsegu, a Uber, eBay i Spotify koriste je za analitiku i obradu logova u golemim količinama. Na 4buildsiteu isti mehanizam dio je stoga platforme — bez potrebe da zaposlite tim inženjera podataka.
Statistika u stvarnom vremenu — kako je modul projektiran
Modul statistike platforme je u razvoju, a njegova je arhitektura jednostavna: događaji prometa prikupljaju se asinkrono i zapisuju u ClickHouse, potpuno odvojeno od poslužitelja koji isporučuju stranice. Izvješća se izvršavaju na zasebnom sustavu. Nema teške skripte za praćenje trećih strana — prikupljanje je minimalno i first-party.
Izvješća na panel.4buildsite.net izračunavat će se izravno u ClickHouseu: promet po stranicama, izvori posjetitelja, konverzije, prodaja po proizvodu. Česte agregacije unaprijed se izračunavaju putem materialized viewova pri svakom zapisu, a nadzorna ploča ne pokreće težak izračun svaki put kada je pogledate.
- Promet uživo: posjeti, stranice, izvori i uređaji — upitljivi nakon prikupljanja
- Prodaja po proizvodu, narudžbe i konverzije za vašu web-trgovinu, agregirani u izvješćima
- Povijest po mjesecima i godinama uz nizak trošak — stupčana kompresija višestruko smanjuje pohranu u odnosu na sirove podatke
- Prikupljanje je asinkrono, izvješćivanje radi na drugom sustavu
PostgreSQL + ClickHouse: zašto koristimo oba
Stog platforme kombinira dvije baze podataka jer rade bitno različite stvari. PostgreSQL je knjiga transakcija (OLTP): narudžbe, plaćanja, zaliha, korisnički računi — operacije koje moraju biti savršeno točne jedna po jedna, uz transakcijska jamstva. ClickHouse je analitička dvorana (OLAP): milijuni događaja čitaju se odjednom kako bi odgovorili na pitanja o prometu i prodaji.
Kad bi se teška izvješća izvršavala na istoj bazi podataka koja obrađuje narudžbe, svako bi izvješće natjecalo za resurse s kupcima koji u tom trenutku plaćaju. Odvajanje OLTP/OLAP uklanja taj sukob: narudžba kupca ne čeka na vaše izvješće, a vaše izvješće ne čeka na tuđe narudžbe. Svaki mehanizam radi upravo ono za što je izgrađen.
- PostgreSQL: narudžbe, Stripe plaćanja, zaliha, kupci — transakcijska ispravnost
- ClickHouse: događaji prometa, izvješća, statistika — agregacija u velikom opsegu
- Dizajn predviđa da relevantni transakcijski podaci stižu u ClickHouse kao događaji, pa izvješća o prodaji nikada ne diraju bazu koja poslužuje web-trgovinu
Vlastiti analytics, prijateljski prema privatnosti — umjesto Google Analyticsa
Načelo modula statistike: podaci vaše web-stranice ostaju na infrastrukturi platforme. Ne šalju se Googleu ni drugim oglašivačkim mrežama, ne prodaju se i ne kombiniraju s vanjskim profilima korisnika. To je analytics first-party u pravom smislu: podaci o vašim posjetiteljima su vaši.
Budući da pristup ne koristi kolačiće trećih strana za praćenje, usklađenost s GDPR-om postaje mnogo jednostavnija. Kontekst je važan: 2022. tijela za zaštitu podataka u Austriji, Francuskoj i Italiji proglasila su korištenje Google Analyticsa neusklađenim s GDPR-om zbog prijenosa podataka u SAD. S vlastitim analyticsom, smještenim u Europi, ta kategorija rizika nestaje od samog početka.
Postoji i izravna praktična korist: izvješća izračunata u ClickHouseu nisu uzorkovana, za razliku od standardnih izvješća u besplatnim alatima za analytics. Potpuni brojevi.
Izvješća web-trgovine i marketplacea — što će modul isporučiti
Za web-trgovinu ClickHouse će značiti odgovore na pitanja koja su važna: koji se proizvodi prodaju, iz kojih izvora dolaze kupci koji kupuju, gdje se napuštaju košarice. Za marketplace s više prodavača iste će se agregacije izvršavati nad svim narudžbama: volumen po prodavaču, provizije, najprodavaniji proizvodi po kategoriji — bez ručnih exporta i bez proračunskih tablica.
I u velikom opsegu stvari ostaju jeftine. Stupčana kompresija višestruko smanjuje podatke u odnosu na sirovi format, pa povijest čuvate godinama uz nizak trošak pohrane. A kada promet naraste s tisuća na milijune događaja, mehanizam je od početka projektiran za milijarde redaka, a ne naknadno prilagođen.
Prednosti i ograničenja
Prednosti
- Agregacije nad milijunima događaja.
- Analytics radi na sustavu odvojenom od onoga koji poslužuje stranice.
- Podaci o prometu ostaju vaši, na infrastrukturi platforme — bez prijenosa Googleu ili oglašivačkim mrežama.
- Bez kolačića trećih strana za praćenje — jednostavnija usklađenost s GDPR-om.
- Snažna stupčana kompresija — povijest od više godina uz nizak trošak pohrane.
- Open-source (Apache 2.0), bez licenci po volumenu — trošak ne eksplodira kada promet raste.
Ograničenja
- Nije transakcijska baza podataka — izmjena ili brisanje pojedinačnih redaka je teška operacija; zato narudžbe i plaćanja ostaju u PostgreSQL-u.
- Optimiziran za zapisivanje u velikim paketima; mnogo malih i čestih umetanja traži batching — platforma to rješava, ali to je stvarno ograničenje mehanizma.
- Složeni JOIN-ovi manje su fleksibilni nego u PostgreSQL-u — shema događaja mora se od početka projektirati za analizu.
- Dohvat jednog retka (point lookup) sporiji je nego u indeksiranoj OLTP bazi — ne zamjenjuje glavnu bazu web-trgovine.
Kratak zaključak
ClickHouse je ispravan izbor za analitiku u velikom opsegu: statistika prometa i prodaje u stvarnom vremenu, s vašim podacima. Za narudžbe, plaćanja i zalihu ostaje PostgreSQL — zato stog 4buildsitea kombinira oba, svaki u onome u čemu je najbolji. Modul statistike izgrađen na ClickHouseu je u razvoju.
Tablica specifikacija
| Mogućnost | Granica / prag | Tipična uporaba | |
|---|---|---|---|
| Analitičke agregacije | Ispod sekunde nad milijunima događaja (stupčano + vektorizirano) | Sporo kod dohvata jednog retka — nije za OLTP lookupove | Izvješća o prometu i prodaji (modul statistike, u razvoju) |
| Unos događaja | Veliki volumeni, zapisivani u paketima | Mala i česta umetanja traže batching / async insert | Prikupljanje pageviewova, klikova, narudžbi |
| Pohrana i kompresija | Stupčana kompresija (LZ4/ZSTD), višestruko ispod sirovog volumena | Vrlo nasumični podaci slabije se komprimiraju | Povijest događaja po mjesecima i godinama, uz nizak trošak |
| Ažuriranja i brisanja | Asinkrone mutations za povremene ispravke | Neprikladno za česte UPDATE-ove na pojedinačnim recima | GDPR brisanja (podaci korisnika, na zahtjev) |
| Materialized views | Unaprijed izračunati agregati pri svakom zapisu | Agregati se moraju definirati unaprijed, po izvješću | Nadzorne ploče: prodaja po danu, proizvodu, izvoru |
| Stvarno vrijeme | Događaji postaju upitljivi nakon što se dogode | Nije streaming sustav na razini milisekunde | Statistika prometa i konverzija uživo |
ClickHouse u odnosu na PostgreSQL i Google Analytics / BigQuery — za analitiku
| Kriterij | ClickHouse (4buildsite) | PostgreSQL (za analitiku) | Google Analytics / BigQuery |
|---|---|---|---|
| Brzina agregacija u velikom opsegu | Ispod sekunde nad milijunima redaka | Vidljivo pada nad desecima milijuna redaka (retčana pohrana) | BigQuery brz; GA4 ima standardna unaprijed agregirana izvješća, bez slobodnih upita |
| Vlasništvo nad podacima / GDPR | Vaši podaci, na infrastrukturi platforme, u Europi | Vaši podaci, na vašim poslužiteljima | Podaci kod Googlea; prijenose GA-a u SAD tijela EU-a 2022. proglasila neusklađenima s GDPR-om |
| Kolačići i privola | Bez kolačića trećih strana za praćenje | Ovisi o vlastitoj implementaciji | Traži banner za privolu za praćenje |
| Stvarno vrijeme | Podaci upitljivi nakon prikupljanja | Moguće, ali teška izvješća opterećuju transakcijsku bazu | Standardna GA4 izvješća mogu se pojaviti sa zakašnjenjem od nekoliko sati; BigQuery streaming se dodatno naplaćuje |
| Trošak u velikom opsegu | Open-source — trošak je samo infrastruktura, uključena u pretplatu | Raste s indeksima, vacuumom i hardverom pri velikim volumenima | BigQuery naplaćuje po upitanom volumenu; enterprise varijanta GA-a je skupa |
| Utjecaj na brzinu web-stranice | Asinkrono prikupljanje, izvješćivanje na odvojenom sustavu | Izvješća se mogu natjecati 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 web-stranicu ili web-trgovinu?
Ne. ClickHouse radi na sustavu odvojenom od onoga koji poslužuje stranice — tako je projektirana arhitektura. Događaji prometa šalju se asinkrono, a izvješća nikada ne diraju bazu podataka web-trgovine.
Zašto jednostavno ne koristite Google Analytics?
Tri razloga. Podaci ostaju vaši, na infrastrukturi platforme, a ne kod Googlea. Ne trebaju vam kolačići trećih strana za praćenje, pa je usklađenost s GDPR-om jednostavnija — 2022. tijela iz Austrije, Francuske i Italije proglasila su GA neusklađenim s GDPR-om. I izvješća se pojavljuju potpuna, a ne uzorkovana.
Koja je razlika između ClickHousea i PostgreSQL-a — zašto oba?
PostgreSQL je transakcijska baza (OLTP): obrađuje narudžbe, plaćanja i zalihu, jednu po jednu, uz jamstva ispravnosti. ClickHouse je analitička baza (OLAP): čita milijune događaja odjednom za izvješća. Odvajanje znači da teško izvješće ne ide na bazu narudžbi vaših kupaca.
Jesu li moji podaci o prometu sigurni i usklađeni s GDPR-om?
Da — po dizajnu. Statistika je first-party: nalazi se na infrastrukturi platforme, u Europi, ne prodaje se i ne dijeli s oglašivačkim mrežama. Pristup ne koristi kolačiće trećih strana za praćenje, a podaci korisnika mogu se na zahtjev izbrisati, u skladu s GDPR-om.
Koliko je statistika „u stvarnom vremenu“?
Događaj — posjet, klik, narudžba — postaje vidljiv u izvješćima nakon što se dogodi. Agregacije nad dugim razdobljima (mjeseci, godine) također odgovaraju, jer je ClickHouse izgrađen upravo za tu vrstu upita.
Moram li nešto konfigurirati da bih imao statistiku na svojoj web-stranici?
Neće biti potrebno. Modul statistike je u razvoju i izgrađen je kao dio platforme: kada postane aktivan u administracijskoj ploči, prikupljanje se automatski pokreće za objavljene web-stranice — bez skripti za instalaciju i bez vanjskih računa.