ClickHouse — mehanizem za analitiko v realnem času v skladu platforme
Sklad 4buildsite vključuje ClickHouse — stolpčno zbirko podatkov, zgrajeno posebej za analizo velikih količin podatkov. Nanjo gradimo modul statistike prometa in prodaje platforme (v razvoju): podatki ostanejo vaši, zbiranje pa je ločeno od sistema, ki dostavlja strani — tako je zasnovana arhitektura.
Kaj je ClickHouse in zakaj ga uporabljamo
ClickHouse je stolpčna zbirka podatkov tipa OLAP (spletna analiza), ustvarjena pri Yandexu za Yandex.Metrica — enega največjih sistemov za spletno analitiko na svetu — in leta 2016 objavljena kot odprta koda pod licenco Apache 2.0. Zgrajena je za eno samo stvar, ki jo počne izjemno: hitre agregacije čez ogromne količine podatkov. V arhitekturi 4buildsite je ClickHouse izbrani mehanizem za plast statistike: vsak obisk, klik in naročilo postane dogodek, ki ga je mogoče analizirati.
Skrivnost je shranjevanje po stolpcih: namesto da bi prebral vsako celotno „vrstico“, ClickHouse prebere samo stolpce, ki jih poročilo potrebuje, in jih obdela vektorsko, v velikih blokih. Zato je vprašanje, kot je „koliko obiskovalcev smo imeli včeraj, na vsaki strani, iz vsakega vira“, tipična poizvedba za ClickHouse, tudi čez milijone dogodkov — nekaj, kar klasična zbirka podatkov, usmerjena na vrstice, rešuje bistveno težje.
To ni nišna tehnologija: Cloudflare jo uporablja za analizo prometa HTTP v svetovnem obsegu, Uber, eBay in Spotify pa za analitiko in obdelavo dnevnikov v ogromnih količinah. Na 4buildsite je isti mehanizem del sklada platforme — brez zaposlovanja ekipe podatkovnih inženirjev.
Statistika v realnem času, ločena od vaše strani — kako je zasnovan modul
Modul statistike platforme je v razvoju, njegova arhitektura pa je preprosta: dogodki prometa se zbirajo asinhrono in zapisujejo v ClickHouse, povsem ločeno od strežnikov, ki dostavljajo strani. Zbiranje poteka zunaj zahteve, ki dostavi stran, poročila pa tečejo v ločeni plasti. Težka skripta za sledenje tretjih oseb se ne uporablja — zbiranje je minimalno in first-party.
Poročila v panel.4buildsite.net se bodo izračunavala neposredno v ClickHouse: promet po straneh, viri obiskovalcev, konverzije, prodaja po izdelkih. Pogoste agregacije se vnaprej izračunajo z materialized views ob vsakem zapisu, zato bo nadzorna plošča prikazala že izračunane številke — ob vsakem ogledu se ne zažene težek izračun.
- Promet: obiski, strani, viri in naprave — poizvedljivi po zbiranju
- Prodaja po izdelkih, naročila in konverzije za vašo trgovino, agregirani v ClickHouse
- Zgodovina za mesece in leta ob nizkih stroških — stolpčno stiskanje zmanjša shrambo za večkrat v primerjavi z surovimi podatki
- Zbiranje je asinhrono, poročanje teče na drugem sistemu
PostgreSQL + ClickHouse: zakaj uporabljamo oba
Sklad platforme združuje dve zbirki podatkov, ker počneta bistveno različni stvari. PostgreSQL je register transakcij (OLTP): naročila, plačila, zaloga, uporabniški računi — operacije, ki morajo biti ena za drugo popolnoma pravilne, s transakcijskimi jamstvi. ClickHouse je analitična dvorana (OLAP): milijoni dogodkov, prebranih naenkrat, da odgovori na vprašanja o prometu in prodaji.
Če bi težka poročila tekla na isti zbirki podatkov, ki obdeluje naročila, bi vsako poročilo tekmovalo s strankami, ki v tistem trenutku plačujejo. Ločitev OLTP/OLAP odpravi ta konflikt: naročilo stranke ne čaka na vaše poročilo, vaše poročilo pa ne čaka na naročila drugih. Vsak mehanizem počne natanko to, za kar je bil zgrajen.
- PostgreSQL: naročila, plačila Stripe, zaloga, stranke — transakcijska pravilnost
- ClickHouse: dogodki prometa, poročila, statistika — agregacija v velikem obsegu
- Zasnova predvideva, da ustrezni transakcijski podatki pridejo v ClickHouse kot dogodki, zato poročila o prodaji nikoli ne posegajo v zbirko, ki streže trgovino
Lastna analitika, prijazna zasebnosti — namesto Google Analytics
Načelo modula statistike: podatki vaše strani ostanejo na infrastrukturi platforme. Ne pošiljajo se Googlu ali drugim oglaševalskim omrežjem, ne prodajajo se in ne združujejo z zunanjimi profili uporabnikov. To je first-party analitika v pravem pomenu: podatki o vaših obiskovalcih so vaši.
Ker pristop ne uporablja piškotkov tretjih oseb za sledenje, je skladnost z GDPR bistveno preprostejša. Kontekst je pomemben: leta 2022 so organi za varstvo podatkov v Avstriji, Franciji in Italiji uporabo Google Analytics razglasili za neskladno z GDPR zaradi prenosov podatkov v ZDA. Z lastno analitiko, gostovano v Evropi, ta kategorija tveganja odpade že na začetku.
Obstaja tudi neposredna praktična korist: poročila, izračunana v ClickHouse, niso vzorčena in se ne prikažejo z večurno zamudo, kot se zgodi pri standardnih poročilih v brezplačnih orodjih za analitiko. Številke so popolne.
Poročila za trgovino in tržnico — kaj bo modul ponudil
Za spletno trgovino bo ClickHouse dajal odgovore na vprašanja, ki štejejo: kateri izdelki se prodajajo, iz katerih virov prihajajo kupci, kje se košarice opuščajo. Za tržnico z več prodajalci bodo iste agregacije tekle čez vsa naročila: obseg po prodajalcih, provizije, najboljši izdelki po kategorijah — brez ročnih izvozov in preglednic.
Tudi v velikem obsegu stroški ostajajo nizki. Stolpčno stiskanje zmanjša podatke za večkrat v primerjavi s surovim formatom, zato zgodovino hranite leta ob nizkih stroških shrambe. Tudi ko promet zraste od tisočev do milijonov dogodkov, ostaja isti mehanizem, ki je bil od začetka zasnovan za milijarde vrstic, ne pozneje prilagojen.
Prednosti in omejitve
Prednosti
- Stolpčne, vektorske agregacije čez milijone dogodkov.
- Analitika teče na sistemu, ločenem od tistega, ki streže strani.
- Podatki o prometu ostanejo vaši, na infrastrukturi platforme — brez prenosa Googlu ali oglaševalskim omrežjem.
- Brez piškotkov tretjih oseb za sledenje — preprostejša skladnost z GDPR.
- Močno stolpčno stiskanje — zgodovina za leta ob nizkih stroških shrambe.
- Odprta koda (Apache 2.0), brez licenc po obsegu — strošek ne eksplodira, ko promet raste.
Omejitve
- Ni transakcijska zbirka podatkov — spreminjanje ali brisanje posameznih vrstic je težka operacija; zato naročila in plačila ležijo v PostgreSQL.
- Optimiziran za pisanje v velikih paketih; veliko majhnih in pogostih vstavljanj zahteva batching — platforma to upravlja, a je realna omejitev mehanizma.
- Kompleksni JOIN-i so manj prilagodljivi kot v PostgreSQL — shemo dogodkov je treba od začetka zasnovati za analizo.
- Iskanje ene same vrstice (point lookup) je počasnejše kot v indeksirani zbirki OLTP — ne nadomešča glavne zbirke trgovine.
Kratek povzetek
ClickHouse je pravilna izbira za analitiko v velikem obsegu: statistika prometa in prodaje v realnem času, z vašimi podatki, ločeno od strani. Za naročila, plačila in zalogo ostaja PostgreSQL — zato sklad 4buildsite združuje oba, vsakega pri tistem, kar zna najbolje. Modul statistike, zgrajen na ClickHouse, je v razvoju.
Tabela specifikacij
| Zmožnost | Omejitev / prag | Tipična uporaba | |
|---|---|---|---|
| Analitične agregacije | Stolpčno + vektorsko, čez milijone dogodkov | Počasen pri iskanju ene vrstice — ni za lookups OLTP | Poročila o prometu in prodaji (modul statistike, v razvoju) |
| Vnos dogodkov | Velike količine, zapisane v paketih | Majhna in pogosta vstavljanja zahtevajo batching / async insert | Zbiranje ogledov strani, klikov, naročil |
| Shranjevanje in stiskanje | Stolpčno stiskanje (LZ4/ZSTD), večkrat pod surovim obsegom | Zelo naključni podatki se stisnejo manj | Zgodovina dogodkov za mesece in leta, ob nizkih stroških |
| Posodobitve in brisanja | Asinhrone mutations za občasne popravke | Neprimeren za pogoste UPDATE-e posameznih vrstic | Brisanja GDPR (podatki uporabnika, na zahtevo) |
| Materialized views | Vnaprej izračunane agregacije ob vsakem zapisu | Agregacije je treba definirati vnaprej, za vsako poročilo | Nadzorne plošče z izračunanimi podatki: prodaja po dnevih, izdelkih, virih |
| Realni čas | Dogodki postanejo poizvedljivi po zbiranju | Ni sistem za pretakanje na ravni milisekunde | Statistika prometa in konverzij v živo |
ClickHouse v primerjavi s PostgreSQL in Google Analytics / BigQuery — za analitiko
| Merilo | ClickHouse (4buildsite) | PostgreSQL (za analitiko) | Google Analytics / BigQuery |
|---|---|---|---|
| Agregacije v velikem obsegu | Stolpčno in vektorsko, zgrajeno za milijone vrstic | Shranjevanje po vrsticah — težke agregacije obremenijo zbirko | BigQuery je stolpčen; GA4 ima vnaprej agregirana standardna poročila, brez prostih poizvedb |
| Lastništvo podatkov / GDPR | Vaši podatki, na infrastrukturi platforme, v Evropi | Vaši podatki, na vaših strežnikih | Podatki pri Googlu; prenose GA v ZDA so organi EU leta 2022 razglasili za neskladne z GDPR |
| Piškotki in soglasje | Brez piškotkov tretjih oseb za sledenje | Odvisno od lastne izvedbe | Zahteva pasico za soglasje za sledenje |
| Realni čas | Podatki poizvedljivi po zbiranju | Mogoče, a težka poročila obremenjujejo transakcijsko zbirko | Standardna poročila GA4 se lahko prikažejo z večurno zamudo; pretakanje BigQuery se doplača |
| Strošek v velikem obsegu | Odprta koda — strošek je le infrastruktura, vključena v naročnino | Raste z indeksi, vacuum in strojno opremo pri velikih količinah | BigQuery zaračunava po obsegu poizvedb; enterprise različica GA je draga |
| Obremenitev strani | Asinhrono zbiranje, poročanje na ločenem sistemu | Poročila lahko tekmujejo z naročili na isti zbirki | Skripta tretje osebe (gtag.js) na strani — dodaten JavaScript in zunanje zahteve |
Pogosta vprašanja
Ali ClickHouse upočasni mojo stran ali trgovino?
ClickHouse teče na sistemu, ločenem od tistega, ki streže strani — tako je zasnovana arhitektura. Dogodki prometa se pošiljajo asinhrono, poročila pa nikoli ne posegajo v zbirko podatkov trgovine.
Zakaj preprosto ne uporabljate Google Analytics?
Trije razlogi. Podatki ostanejo vaši, na infrastrukturi platforme, ne pri Googlu. Ne potrebujete piškotkov tretjih oseb za sledenje, zato je skladnost z GDPR preprostejša — leta 2022 so organi v Avstriji, Franciji in Italiji GA razglasili za neskladen z GDPR. In poročila so popolna, ne vzorčena ali zamaknjena za več ur.
Kakšna je razlika med ClickHouse in PostgreSQL — zakaj oba?
PostgreSQL je transakcijska zbirka (OLTP): obdeluje naročila, plačila in zalogo, enega za drugim, z jamstvi pravilnosti. ClickHouse je analitična zbirka (OLAP): za poročila prebere milijone dogodkov naenkrat. Ločitev pomeni, da težko poročilo ne teče na zbirki, ki obdeluje naročila vaših strank.
Ali so moji podatki o prometu varni in skladni z GDPR?
Da — po zasnovi. Statistika je first-party: leži na infrastrukturi platforme, v Evropi, ne prodaja se in se ne deli z oglaševalskimi omrežji. Pristop ne uporablja piškotkov tretjih oseb za sledenje, podatke uporabnika pa je mogoče na zahtevo izbrisati v skladu z GDPR.
Kako „v realnem času“ je statistika?
Dogodek — obisk, klik, naročilo — postane poizvedljiv v poročilih po zbiranju. Agregacije za dolga obdobja (mesece, leta) tečejo v ClickHouse, ki je bil zgrajen ravno za tovrstne poizvedbe.
Ali moram kaj nastaviti, da imam statistiko na svoji strani?
Ne bo potrebno. Modul statistike je v razvoju in je zgrajen kot del platforme: ko postane aktiven v nadzorni plošči, se zbiranje samodejno zažene za objavljene strani — brez skript za namestitev in brez zunanjih računov.