ClickHouse — realtidsanalysemotoren i platformens stak
4buildsite-stakken omfatter ClickHouse — en kolonneorienteret database bygget specifikt til analyse af store datamængder. Det er den, vi bygger platformens modul til trafik- og salgsstatistik på (under udvikling): dataene forbliver dine — sådan er arkitekturen designet.
Hvad ClickHouse er, og hvorfor vi bruger det
ClickHouse er en kolonneorienteret OLAP-database (online-analyse), skabt hos Yandex til Yandex.Metrica — et af verdens største webanalysesystemer — og udgivet som open source i 2016 under Apache 2.0-licensen. Den er bygget til én ting, som den gør usædvanligt godt: hurtige aggregeringer over enorme datamængder. I 4buildsite-arkitekturen er ClickHouse den motor, der er valgt til statistiklaget: hvert besøg, hvert klik og hver ordre bliver til en hændelse, der kan analyseres med det samme.
Hemmeligheden er kolonnelagring: i stedet for at læse hver hel »række« læser ClickHouse kun de kolonner, rapporten har brug for, og behandler dem i store, vektoriserede blokke. Derfor besvares et spørgsmål som »hvor mange besøgende havde jeg i går, pr. side, pr. kilde« på under et sekund, selv over millioner af hændelser — noget, en klassisk rækkeorienteret database har svært ved.
Det er ikke en nicheteknologi: Cloudflare bruger den til at analysere HTTP-trafik i global skala, og Uber, eBay og Spotify bruger den til analyse og logbehandling i enorme mængder. På 4buildsite er den samme motor en del af platformens stak — uden at du skal ansætte et data engineering-team.
Realtidsstatistik — sådan er modulet designet
Platformens statistikmodul er under udvikling, og dets arkitektur er enkel: trafikhændelser indsamles asynkront og skrives til ClickHouse, helt adskilt fra de servere, der leverer dine sider. Analysen kører i et separat system fra siderne. Der er ikke noget tungt tredjepartssporingsscript på dine sider — indsamlingen er minimal og first-party.
Rapporterne i panel.4buildsite.net vil blive beregnet direkte i ClickHouse: sidetrafik, besøgskilder, konverteringer, salg pr. produkt. Hyppige aggregeringer forudberegnes via materialized views ved hver skrivning, så dashboardet åbner — det starter ikke en tung beregning, hver gang du kigger på det.
- Live trafik: besøg, sider, kilder og enheder — kan forespørges efter indsamling
- Salg pr. produkt, ordrer og konverteringer for din webshop, aggregeret
- Måneders og års historik til lav pris — kolonnekomprimering reducerer lagerpladsen flere gange i forhold til rådata
- Ingen påvirkning af sitets hastighed: indsamlingen er asynkron, rapporteringen kører på et separat system
PostgreSQL + ClickHouse: hvorfor vi bruger begge
Platformens stak kombinerer to databaser, fordi de gør fundamentalt forskellige ting. PostgreSQL er det transaktionelle regnskab (OLTP): ordrer, betalinger, lagerbeholdning, brugerkonti — operationer, der skal være fuldstændig korrekte én for én, med transaktionelle garantier. ClickHouse er analyserummet (OLAP): millioner af hændelser læst på én gang for at besvare dine spørgsmål om trafik og salg.
Hvis tunge rapporter kørte på den samme database, som behandler ordrer, ville hver rapport konkurrere med de kunder, der betaler netop i det øjeblik. Opdelingen i OLTP/OLAP fjerner denne konflikt: en kundes ordre og din rapport kører i separate systemer. Hver motor gør præcis det, den er bygget til.
- PostgreSQL: ordrer, Stripe-betalinger, lagerbeholdning, kunder — transaktionel korrekthed
- ClickHouse: trafikhændelser, rapporter, statistik — aggregering ved store mængder
- Designet replikerer relevante transaktionelle data til ClickHouse som hændelser, så salgsrapporter aldrig rører den database, der betjener din webshop
First-party, privatlivsvenlig analyse — i stedet for Google Analytics
Statistikmodulets princip: dit sites data forbliver på platformens infrastruktur. De sendes ikke til Google eller andre reklamenetværk, sælges ikke og blandes ikke med eksterne brugerprofiler. Det er first-party-analyse i ordets bogstaveligste forstand: dataene om dine besøgende er dine.
Fordi fremgangsmåden ikke bruger tredjeparts sporingscookies, bliver GDPR-overholdelse meget enklere. Konteksten er vigtig: i 2022 erklærede databeskyttelsesmyndighederne i Østrig, Frankrig og Italien brugen af Google Analytics for ikke at være i overensstemmelse med GDPR på grund af dataoverførsler til USA. Med first-party-analyse hostet i Europa er hele den risikokategori væk fra starten.
Der er også en direkte praktisk fordel: rapporter beregnet i ClickHouse er ikke samplede, i modsætning til standardrapporter i gratis analyseværktøjer. Komplette tal.
Rapporter for webshops og marketplaces — hvad modulet vil levere
For en webshop vil ClickHouse betyde svar på de spørgsmål, der tæller: hvilke produkter sælger, hvilke kilder bringer de kunder, der rent faktisk køber, og hvor bliver indkøbskurve forladt. For en marketplace med flere sælgere vil de samme aggregeringer køre på tværs af alle ordrer: volumen pr. sælger, provisioner, topprodukter pr. kategori — uden manuelle eksporter og uden regneark.
Og i stor skala forbliver tingene billige og hurtige. Kolonnekomprimering reducerer data flere gange i forhold til råformatet, så du beholder års historik til lav lagerpris. Når trafikken vokser fra tusinder til millioner af hændelser, forbliver aggregeringerne på under et sekund — motoren blev designet til milliarder af rækker fra starten, ikke eftermonteret senere.
Fordele og begrænsninger
Fordele
- Aggregeringer over millioner af hændelser — rapporter med aggregerede data.
- Ingen påvirkning af sitets hastighed: analysen kører på et system adskilt fra det, der serverer siderne.
- Dine trafikdata forbliver dine, på platformens infrastruktur — ingen overførsel til Google eller reklamenetværk.
- Ingen tredjeparts sporingscookies — enklere GDPR-overholdelse.
- Kraftig kolonnekomprimering — års historik til lav lagerpris.
- Open source (Apache 2.0), ingen licenser pr. volumen — prisen eksploderer ikke, når trafikken vokser.
Begrænsninger
- Ikke en transaktionel database — opdatering eller sletning af enkelte rækker er en tung operation; derfor ligger ordrer og betalinger i PostgreSQL.
- Optimeret til store batchede skrivninger; mange små hyppige inserts kræver batching — platformen håndterer det, men det er en reel begrænsning i motoren.
- Komplekse JOINs er mindre fleksible end i PostgreSQL — hændelsesskemaet skal designes til analyse fra start.
- Opslag på en enkelt række (point lookup) er langsommere end i en indekseret OLTP-database — den erstatter ikke webshoppens hoveddatabase.
Kort konklusion
ClickHouse er det rigtige valg til analyse ved store mængder: realtidsstatistik over trafik og salg, med dine egne data, uden at røre sitets hastighed. Til ordrer, betalinger og lagerbeholdning bliver PostgreSQL — derfor kombinerer 4buildsite-stakken begge, hver til det, den er bedst til. Statistikmodulet bygget på ClickHouse er under udvikling.
Specifikationstabel
| Egenskab | Grænse / tærskel | Typisk anvendelse | |
|---|---|---|---|
| Analytiske aggregeringer | Under et sekund over millioner af hændelser (kolonneorienteret + vektoriseret) | Langsom ved opslag på enkelte rækker — ikke til OLTP-point reads | Trafik- og salgsrapporter (statistikmodul, under udvikling) |
| Indlæsning af hændelser | Store mængder, skrevet i batches | Små hyppige inserts kræver batching / async insert | Indsamling af sidevisninger, klik, ordrer |
| Lagring og komprimering | Kolonnekomprimering (LZ4/ZSTD), flere gange under rådatamængden | Meget tilfældige data komprimeres mindre | Måneders og års hændelseshistorik, til lav pris |
| Opdateringer og sletninger | Asynkrone mutationer til lejlighedsvise rettelser | Uegnet til hyppige UPDATE på enkelte rækker | GDPR-sletninger (én brugers data, efter anmodning) |
| Materialized views | Aggregater forudberegnes ved hver skrivning | Aggregater skal defineres på forhånd, pr. rapport | Dashboards: salg pr. dag, produkt, kilde |
| Realtid | Hændelser kan forespørges, efter de er sket | Ikke et streamingsystem på millisekundniveau | Live trafik- og konverteringsstatistik |
ClickHouse vs. PostgreSQL vs. Google Analytics / BigQuery — til analyse
| Kriterium | ClickHouse (4buildsite) | PostgreSQL (til analyse) | Google Analytics / BigQuery |
|---|---|---|---|
| Aggregeringshastighed ved store mængder | Under et sekund over millioner af rækker | Forringes tydeligt over titusinder af millioner af rækker (rækkelagring) | BigQuery er hurtig; GA4 har forudaggregerede standardrapporter, ingen frie forespørgsler |
| Dataejerskab / GDPR | Dine data, på platformens infrastruktur, i Europa | Dine data, på dine servere | Data hos Google; GA's overførsler til USA blev i 2022 erklæret i strid med GDPR af EU-myndigheder |
| Cookies og samtykke | Ingen tredjeparts sporingscookies | Afhænger af din egen implementering | Kræver et samtykkebanner til sporing |
| Realtid | Data kan forespørges | Muligt, men tunge rapporter belaster den transaktionelle database | GA4-standardrapporter kan halte timer bagud; BigQuery-streaming koster ekstra |
| Pris ved store mængder | Open source — prisen er kun infrastruktur, inkluderet i abonnementet | Vokser med indekser, vacuum og hardware ved store mængder | BigQuery afregner pr. forespurgt volumen; GA's enterprise-niveau er dyrt |
| Påvirkning af sitets hastighed | Ingen — asynkron indsamling, rapportering på et separat system | Rapporter kan konkurrere med ordrer på den samme database | Tredjepartsscript (gtag.js) på siden — ekstra JavaScript og eksterne forespørgsler |
Ofte stillede spørgsmål
Gør ClickHouse mit site eller min webshop langsommere?
ClickHouse kører på et system adskilt fra det, der serverer dine sider — sådan er arkitekturen designet. Trafikhændelser sendes asynkront, og rapporter rører aldrig webshoppens database.
Hvorfor ikke bare bruge Google Analytics?
Tre grunde. Dataene forbliver dine, på platformens infrastruktur, ikke hos Google. Du har ikke brug for tredjeparts sporingscookies, så GDPR-overholdelse er enklere — i 2022 erklærede myndigheder i Østrig, Frankrig og Italien GA for ikke at overholde GDPR. Og rapporter er komplette, ikke samplede.
Hvad er forskellen på ClickHouse og PostgreSQL — hvorfor begge?
PostgreSQL er den transaktionelle (OLTP) database: den behandler ordrer, betalinger og lagerbeholdning én for én, med garantier for korrekthed. ClickHouse er den analytiske (OLAP) database: den læser millioner af hændelser på én gang til rapporter. Opdelingen betyder, at en tung rapport kører i et separat system fra dine kunders ordrer.
Er mine trafikdata sikre og i overensstemmelse med GDPR?
Ja — i kraft af designet. Statistikken er first-party: den ligger på platformens infrastruktur, i Europa, og sælges eller deles aldrig med reklamenetværk. Fremgangsmåden bruger ingen tredjeparts sporingscookies, og en brugers data kan slettes efter anmodning i overensstemmelse med GDPR.
Hvor »realtid« er statistikken?
En hændelse — et besøg, et klik, en ordre — bliver synlig i rapporterne, efter den er sket. Aggregeringer over lange perioder (måneder, år) besvares stadig på under et sekund, fordi ClickHouse er bygget netop til denne type forespørgsler.
Skal jeg sætte noget op for at få statistik på mit site?
Det behøver du ikke. Statistikmodulet er under udvikling og bygget som en del af platformen: når det går live i adminpanelet, starter indsamlingen automatisk for publicerede sites — ingen scripts at installere og ingen eksterne konti.