ClickHouse — analitički mehanizam u realnom vremenu u stek-u platforme
Stack platforme 4buildsite uključuje ClickHouse — kolonsku bazu podataka napravljenu posebno za analitiku velikog obima. Na njoj gradimo modul statistike saobraćaja i prodaje platforme (u razvoju): podaci ostaju vaši, izvještaji se pojavljuju, a sajt je od njih odvojen — tako je osmišljena arhitektura.
Šta je ClickHouse i zašto ga koristimo
ClickHouse je kolonska OLAP (online analitička) baza podataka, nastala u kompaniji Yandex za Yandex.Metrica — jedan od najvećih sistema za web analitiku na svijetu — a 2016. otvorena pod licencom Apache 2.0. Napravljena je za jednu stvar, koju radi izuzetno dobro: brze agregacije nad ogromnim količinama podataka. U arhitekturi 4buildsite, ClickHouse je engine izabran za sloj statistike: svaka posjeta, klik i narudžbina postaju događaj koji se može odmah analizirati.
Tajna je u kolonskom skladištenju: umjesto da čita svaki cio „red“, ClickHouse čita samo kolone koje su potrebne izvještaju i obrađuje ih u velikim, vektorizovanim blokovima. Zato se pitanje poput „koliko sam posjetilaca imao juče, 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 globalnom nivou, a Uber, eBay i Spotify za analitiku i obradu logova u ogromnim količinama. Na 4buildsite isti engine je dio stack-a platforme — bez potrebe da angažujete tim za inženjering podataka.
Statistika u realnom 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 izvršavaju odvojeno od isporuke stranica. Nema teške skripte treće strane — prikupljanje je minimalno i first-party.
Izvještaji u panel.4buildsite.net računaće se direktno u ClickHouse-u: saobraćaj po stranicama, izvori posjetilaca, konverzije, prodaja po proizvodu. Česte agregacije unaprijed se izračunavaju putem materijalizovanih prikaza 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 — dostupni za upite nakon prikupljanja
- Prodaja po proizvodu, narudžbine i konverzije za vašu prodavnicu, agregirane u izvještajima
- Mjeseci i godine istorije uz nizak trošak — kolonska kompresija višestruko smanjuje zauzeće u odnosu na sirove podatke
- Odvojeno od sajta: prikupljanje je asinhrono, a izvještavanje radi na zasebnom sistemu
PostgreSQL + ClickHouse: zašto koristimo obje
Stack platforme kombinuje dvije baze podataka jer rade suštinski različite stvari. PostgreSQL je transakciona knjiga (OLTP): narudžbine, plaćanja, zalihe, korisnički nalozi — operacije koje moraju biti savršeno tačne pojedinačno, uz transakcione garancije. ClickHouse je analitička soba (OLAP): milioni događaja čitaju se odjednom da bi se odgovorilo na vaša pitanja o saobraćaju i prodaji.
Da se teški izvještaji izvršavaju na istoj bazi koja obrađuje narudžbine, svaki izvještaj bi se takmičio s kupcima koji u tom trenutku plaćaju. Podjela OLTP/OLAP uklanja taj sukob: narudžbina kupca nikada ne čeka vaš izvještaj, a vaš izvještaj nikada ne čeka tuđe narudžbine. Svaki engine radi tačno ono za šta je napravljen.
- PostgreSQL: narudžbine, Stripe plaćanja, zalihe, kupci — transakciona tačnost
- ClickHouse: događaji saobraćaja, izvještaji, statistika — agregacija velikog obima
- Dizajn replicira relevantne transakcione podatke u ClickHouse kao događaje, pa izvještaji o prodaji nikada ne diraju bazu koja opslužuje vašu prodavnicu
First-party analitika koja poštuje privatnost — umjesto Google Analyticsa
Princip modula statistike: podaci vašeg sajta ostaju na infrastrukturi platforme. Ne šalju se Googleu ni drugim reklamnim mrežama, ne prodaju se i ne spajaju sa spoljnim korisničkim profilima. To je first-party analitika u doslovnom smislu: podaci o vašim posjetiocima pripadaju vama.
Pošto pristup ne koristi kolačiće za praćenje trećih strana, usklađenost sa GDPR-om postaje mnogo jednostavnija. Kontekst je važan: 2022. organi za zaštitu podataka u Austriji, Francuskoj i Italiji proglasili su upotrebu Google Analyticsa neusklađenom sa GDPR-om zbog prenosa podataka u SAD. Uz first-party analitiku hostovanu u Evropi, cijela ta kategorija rizika nestaje od samog početka.
Postoji i direktna praktična korist: izvještaji izračunati u ClickHouse-u nisu uzorkovani, za razliku od standardnih izvještaja u besplatnim analitičkim alatima. Potpuni podaci.
Izvještaji za prodavnicu i marketplace — šta će modul pružiti
Za online prodavnicu, ClickHouse će značiti odgovore na pitanja koja su važna: koji se proizvodi prodaju, koji izvori dovode kupce koji zaista kupuju, gdje se korpe napuštaju. Za marketplace sa više prodavaca, iste agregacije radiće nad svim narudžbinama: obim po prodavcu, provizije, najprodavaniji proizvodi po kategoriji — bez ručnih izvoza i bez tabela.
A u velikom obimu stvari ostaju jeftine. Kolonska kompresija višestruko smanjuje podatke u odnosu na sirovi format, pa godinama čuvate istoriju uz nizak trošak skladištenja. Kad saobraćaj poraste sa hiljada na milione događaja, engine je od početka projektovan za milijarde redova, a ne naknadno prilagođavan.
Prednosti i mane
Prednosti
- Agregacije nad milionima događaja.
- Analitika radi na sistemu odvojenom od onog koji isporučuje stranice.
- Vaši podaci o saobraćaju ostaju vaši, na infrastrukturi platforme — bez prenosa Googleu ili reklamnim mrežama.
- Bez kolačića za praćenje trećih strana — jednostavnija usklađenost sa GDPR-om.
- Snažna kolonska kompresija — godine istorije uz nizak trošak skladištenja.
- Open-source (Apache 2.0), bez licenci po obimu — trošak ne eksplodira kako saobraćaj raste.
Ograničenja
- Nije transakciona baza podataka — ažuriranje ili brisanje pojedinačnih redova je zahtjevna operacija; zato narudžbine i plaćanja žive u PostgreSQL-u.
- Optimizovan je za velike grupne upise; mnogo čestih sitnih upisa zahtijeva grupisanje — platforma to rješava, ali je to stvarno ograničenje engine-a.
- Složeni JOIN-ovi su manje fleksibilni nego u PostgreSQL-u — šema događaja mora se od početka projektovati za analitiku.
- Pronalaženje jednog reda (point lookup) sporije je nego u indeksiranoj OLTP bazi — ne zamjenjuje glavnu bazu prodavnice.
Kratak zaključak
ClickHouse je pravi izbor za analitiku velikog obima: statistika saobraćaja i prodaje u realnom vremenu, sa vašim sopstvenim podacima. Za narudžbine, plaćanja i zalihe ostaje PostgreSQL — zato stack 4buildsite kombinuje obje, svaku u onome u čemu je najbolja. Modul statistike izgrađen na ClickHouse-u je u razvoju.
Tabela specifikacija
| Mogućnost | Ograničenje / prag | Tipična upotreba | |
|---|---|---|---|
| Analitičke agregacije | Ispod sekunde nad milionima događaja (kolonski + vektorizovano) | Sporo kod pretrage pojedinačnih redova — nije za OLTP point čitanja | Izvještaji o saobraćaju i prodaji (modul statistike, u razvoju) |
| Prijem događaja | Veliki obimi, upisuju se u grupama | Česti sitni upisi zahtijevaju grupisanje / async insert | Prikupljanje pregleda stranica, klikova, narudžbina |
| Skladištenje i kompresija | Kolonska kompresija (LZ4/ZSTD), višestruko ispod sirovog obima | Izrazito nasumični podaci se slabije kompresuju | Mjeseci i godine istorije događaja, uz nizak trošak |
| Ažuriranja i brisanja | Asinhrone mutacije za povremene ispravke | Neprikladno za česte pojedinačne UPDATE-ove | GDPR brisanja (podaci jednog korisnika, na zahtjev) |
| Materijalizovani prikazi | Agregati se unaprijed izračunavaju pri svakom upisu | Agregati se moraju unaprijed definisati, po izvještaju | Trenutne kontrolne table: prodaja po danu, proizvodu, izvoru |
| Realno vrijeme | Događaji su dostupni za upite nakon što se dese | Nije streaming sistem na nivou milisekundi | Statistika saobraćaja i konverzija uživo |
ClickHouse vs PostgreSQL vs Google Analytics / BigQuery — za analitiku
| Kriterijum | ClickHouse (4buildsite) | PostgreSQL (za analitiku) | Google Analytics / BigQuery |
|---|---|---|---|
| Brzina agregacije u velikom obimu | Ispod sekunde nad milionima redova | Vidljivo se pogoršava nad desetinama miliona redova (redno skladištenje) | 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; prenose GA-a u SAD organi EU 2022. ocijenili su neusklađenim sa GDPR-om |
| Kolačići i saglasnost | Bez kolačića za praćenje trećih strana | Zavisi od vaše sopstvene implementacije | Zahtijeva baner za saglasnost za praćenje |
| Realno vrijeme | Podaci dostupni za upite nakon prikupljanja | Moguće, ali teški izvještaji opterećuju transakcionu bazu | Standardni izvještaji GA4 mogu kasniti satima; BigQuery streaming se dodatno naplaćuje |
| Trošak u velikom obimu | Open-source — trošak je samo infrastruktura, uključena u pretplatu | Raste sa indeksima, vacuum-om i hardverom pri velikim obimima | BigQuery naplaćuje po obimu upita; enterprise nivo GA-a je skup |
| Uticaj na brzinu sajta | Nula — asinhrono prikupljanje, izvještavanje na zasebnom sistemu | Izvještaji se mogu takmičiti sa narudžbinama na istoj bazi | Skripta treće strane (gtag.js) na stranici — dodatni JavaScript i spoljni zahtjevi |
Česta pitanja
Da li ClickHouse usporava moj sajt ili prodavnicu?
Ne. ClickHouse radi na sistemu odvojenom od onog koji isporučuje vaše stranice — tako je osmišljena arhitektura. Događaji saobraćaja šalju se asinhrono, a izvještaji nikada ne diraju bazu prodavnice. Analitika je odvojena od isporuke sajta.
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 sa GDPR-om jednostavnija — 2022. su organi u Austriji, Francuskoj i Italiji ocijenili GA neusklađenim sa GDPR-om. A izvještaji se pojavljuju kompletni, bez uzorkovanja.
Koja je razlika između ClickHouse-a i PostgreSQL-a — zašto obje?
PostgreSQL je transakciona (OLTP) baza: obrađuje narudžbine, plaćanja i zalihe jednu po jednu, uz garancije tačnosti. ClickHouse je analitička (OLAP) baza: čita milione događaja odjednom za izvještaje. Zahvaljujući toj podjeli, težak izvještaj ne dira narudžbine vaših kupaca.
Da li su moji podaci o saobraćaju sigurni i usklađeni sa GDPR-om?
Da — po dizajnu. Statistika je first-party: živi na infrastrukturi platforme, u Evropi, i nikada se ne prodaje niti dijeli sa 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 sa GDPR-om.
Koliko je statistika zaista „u realnom vremenu“?
Događaj — posjeta, klik, narudžbina — postaje vidljiv u izvještajima nakon što se desi. Agregacije za duge periode (mjesece, godine) i dalje odgovaraju, jer je ClickHouse napravljen upravo za tu vrstu upita.
Moram li nešto podesiti da bih dobio statistiku na svom sajtu?
Nećete morati. Modul statistike je u razvoju i izgrađen je kao dio platforme: kad bude pušten u administratorski panel, prikupljanje počinje automatski za objavljene sajtove — bez skripti za instalaciju i bez spoljnih naloga.