ClickHouse — realtidsanalysmotorn i plattformens stack
4buildsites stack innehåller ClickHouse — en kolumnorienterad databas byggd särskilt för analys i stor volym. På den bygger vi plattformens modul för trafik- och försäljningsstatistik (under utveckling): data förblir dina, rapporterna är tillgängliga efter insamling och din webbplats berörs inte av dem — så är arkitekturen konstruerad.
Vad ClickHouse är och varför vi använder det
ClickHouse är en kolumnorienterad databas av typen OLAP (online-analys), skapad hos Yandex för Yandex.Metrica — ett av världens största webbanalyssystem — och publicerad som öppen källkod 2016 under licensen Apache 2.0. Den är byggd för en enda sak, som den gör exceptionellt bra: aggregeringar över enorma datamängder. I 4buildsites arkitektur är ClickHouse motorn som valts för statistiklagret: varje besök, klick och order blir en händelse som kan analyseras.
Hemligheten är kolumnlagringen: i stället för att läsa varje hel ”rad” läser ClickHouse bara de kolumner som rapporten behöver och bearbetar dem vektoriserat, i stora block. Därför får en fråga som ”hur många besökare hade jag igår, per sida, från varje källa” svar även över miljontals händelser — något som en klassisk radorienterad databas har mycket svårare att klara.
Det är ingen nischteknik: Cloudflare använder den för analys av HTTP-trafik i global skala, och Uber, eBay och Spotify använder den för analys och loggbearbetning i enorma volymer. På 4buildsite är samma motor en del av plattformens stack — utan att du behöver anställa ett team av datatekniker.
Realtidsstatistik skild från webbplatsen — så är modulen konstruerad
Plattformens statistikmodul är under utveckling, och dess arkitektur är enkel: trafikhändelser samlas in asynkront och skrivs till ClickHouse, helt åtskilt från de servrar som levererar sidorna. Dina besökare väntar inte på analysen. Insamlingen är minimal och first-party, utan tungt spårningsskript från tredje part.
Rapporterna i panel.4buildsite.net kommer att beräknas direkt i ClickHouse: trafik per sida, besökskällor, konverteringar, försäljning per produkt. Frekventa aggregeringar förberäknas via materialized views vid varje skrivning, så dashboarden behöver inte köra en tung beräkning varje gång du tittar på den.
- Live-trafik: besök, sidor, källor och enheter — kan frågas efter insamling
- Försäljning per produkt, ordrar och konverteringar för din butik, aggregerade över stora mängder händelser
- Historik över månader och år till låg kostnad — kolumnkomprimeringen minskar lagringen flera gånger jämfört med rådata
- Asynkron insamling, rapportering på ett annat system
PostgreSQL + ClickHouse: därför använder vi båda
Plattformens stack kombinerar två databaser eftersom de gör i grunden olika saker. PostgreSQL är transaktionsregistret (OLTP): ordrar, betalningar, lager, användarkonton — operationer som måste vara perfekt korrekta en i taget, med transaktionella garantier. ClickHouse är analyssalen (OLAP): miljontals händelser som läses på en gång för att besvara dina frågor om trafik och försäljning.
Om tunga rapporter körde på samma databas som bearbetar ordrarna skulle varje rapport konkurrera med de kunder som betalar just då. OLTP/OLAP-separationen eliminerar den konflikten: kundens order väntar inte på din rapport och din rapport väntar inte på andras ordrar. Varje motor gör exakt det den byggdes för.
- PostgreSQL: ordrar, Stripe-betalningar, lager, kunder — transaktionell korrekthet
- ClickHouse: trafikhändelser, rapporter, statistik — aggregering i stor volym
- Designen innebär att relevanta transaktionsdata når ClickHouse som händelser, så försäljningsrapporterna rör inte den databas som serverar butiken
Egen, integritetsvänlig analys — i stället för Google Analytics
Principen för statistikmodulen: din webbplats data stannar på plattformens infrastruktur. De skickas inte till Google eller andra annonsnätverk, säljs inte och kombineras inte med externa användarprofiler. Det är first-party-analys i ordets egentliga mening: data om dina besökare är dina.
Eftersom upplägget inte använder spårningscookies från tredje part blir GDPR-efterlevnaden mycket enklare. Sammanhanget spelar roll: 2022 förklarade dataskyddsmyndigheterna i Österrike, Frankrike och Italien att användningen av Google Analytics inte var förenlig med GDPR på grund av dataöverföringar till USA. Med en egen analys, hostad i Europa, försvinner den riskkategorin från början.
Det finns också en direkt praktisk fördel: rapporter som beräknas i ClickHouse är inte samplade. Fullständiga siffror.
Rapporter för butik och marknadsplats — vad modulen kommer att leverera
För en webbutik ger ClickHouse svar på de frågor som räknas: vilka produkter som säljs, från vilka källor de köpande kunderna kommer, var kundvagnar överges. För en marknadsplats med flera säljare kommer samma aggregeringar att köras över alla ordrar: volym per säljare, provisioner, toppprodukter per kategori — utan manuella exporter och utan kalkylblad.
Och i stor skala förblir saker billiga. Kolumnkomprimeringen minskar datan flera gånger jämfört med råformatet, så du behåller årsvis historik till låg lagringskostnad. Och när trafiken växer från tusentals till miljontals händelser förblir aggregeringarna hanterbara — motorn konstruerades från början för miljarder rader, inte anpassades i efterhand.
Fördelar och begränsningar
Fördelar
- Aggregeringar över stora mängder händelser — kolumnlagring och vektoriserad bearbetning.
- Analysen körs på ett system skilt från det som serverar sidorna.
- Trafikdata förblir dina, på plattformens infrastruktur — ingen överföring till Google eller annonsnätverk.
- Inga spårningscookies från tredje part — enklare GDPR-efterlevnad.
- Kraftfull kolumnkomprimering — årsvis historik till låg lagringskostnad.
- Öppen källkod (Apache 2.0), utan licenser per volym — kostnaden exploderar inte när trafiken växer.
Begränsningar
- Inte en transaktionsdatabas — att ändra eller ta bort enskilda rader är en tung operation; därför ligger ordrar och betalningar i PostgreSQL.
- Optimerad för skrivning i stora batchar; många små och täta inserts kräver batching — plattformen hanterar det, men det är en verklig begränsning i motorn.
- Komplexa JOIN:ar är mindre flexibla än i PostgreSQL — händelseschemat måste utformas för analys från början.
- Uppslag av en enda rad (point lookup) är långsammare än i en indexerad OLTP-databas — den ersätter inte butikens huvuddatabas.
Kort slutsats
ClickHouse är rätt val för analys i stor volym: trafik- och försäljningsstatistik i realtid, med dina egna data. För ordrar, betalningar och lager förblir PostgreSQL — därför kombinerar 4buildsites stack båda, var och en för det den är bäst på. Statistikmodulen som byggs på ClickHouse är under utveckling.
Specifikationstabell
| Förmåga | Gräns / tröskel | Typisk användning | |
|---|---|---|---|
| Analytiska aggregeringar | Kolumnlagring och vektoriserad bearbetning över stora mängder händelser | Långsamt vid uppslag av en enda rad — inte för OLTP-uppslag | Trafik- och försäljningsrapporter (statistikmodulen, under utveckling) |
| Inläsning av händelser | Stora volymer, skrivna i batchar | Små och täta inserts kräver batching / async insert | Insamling av sidvisningar, klick, ordrar |
| Lagring & komprimering | Kolumnkomprimering (LZ4/ZSTD), flera gånger under råvolymen | Mycket slumpmässig data komprimeras mindre | Händelsehistorik över månader och år, till låg kostnad |
| Uppdateringar & radering | Asynkrona mutations för enstaka korrigeringar | Olämpligt för täta UPDATE:s på enskilda rader | GDPR-radering (en användares data, på begäran) |
| Materialized views | Förberäknade aggregat vid varje skrivning | Aggregaten måste definieras i förväg, per rapport | Dashboards: försäljning per dag, produkt, källa |
| Realtid | Händelser kan frågas efter att de inträffat | Inget strömningssystem på millisekundsnivå | Live-statistik över trafik och konverteringar |
ClickHouse jämfört med PostgreSQL och Google Analytics / BigQuery — för analys
| Kriterium | ClickHouse (4buildsite) | PostgreSQL (för analys) | Google Analytics / BigQuery |
|---|---|---|---|
| Aggregeringshastighet i stor volym | Kolumnlagring över stora mängder rader | Sjunker märkbart över tiotals miljoner rader (radlagring) | BigQuery hanterar stora datamängder; GA4 har förberäknade standardrapporter, utan fria frågor |
| Dataägande / GDPR | Dina data, på plattformens infrastruktur, i Europa | Dina data, på dina servrar | Data hos Google; GA-överföringar till USA förklarade oförenliga med GDPR av EU-myndigheter 2022 |
| Cookies & samtycke | Inga spårningscookies från tredje part | Beror på den egna implementationen | Kräver samtyckesbanner för spårning |
| Realtid | Data kan frågas efter insamling | Möjligt, men tunga rapporter belastar transaktionsdatabasen | Standardrapporter i GA4 kan dyka upp med timmars fördröjning; BigQuery-streaming kostar extra |
| Kostnad i stor volym | Öppen källkod — kostnaden är endast infrastrukturen, inkluderad i abonnemanget | Ökar med index, vacuum och hårdvara vid stora volymer | BigQuery debiterar per frågad volym; enterprise-varianten av GA är dyr |
| Påverkan på webbplatsens hastighet | Asynkron insamling, rapportering på ett separat system | Rapporter kan konkurrera med ordrar i samma databas | Tredjepartsskript (gtag.js) på sidan — extra JavaScript och externa anrop |
Vanliga frågor
Gör ClickHouse min webbplats eller butik långsammare?
Nej. ClickHouse körs på ett system skilt från det som serverar sidorna — så är arkitekturen konstruerad. Trafikhändelser skickas asynkront, och rapporterna rör aldrig butikens databas. Statistiken ändrar inte hur sidorna levereras.
Varför använder ni inte bara Google Analytics?
Tre skäl. Data förblir dina, på plattformens infrastruktur, inte hos Google. Du behöver inga spårningscookies från tredje part, så GDPR-efterlevnaden blir enklare — 2022 förklarade myndigheter i Österrike, Frankrike och Italien att GA inte var förenligt med GDPR. Och rapporterna är kompletta, inte samplade eller försenade med timmar.
Vad är skillnaden mellan ClickHouse och PostgreSQL — varför båda?
PostgreSQL är den transaktionella databasen (OLTP): den bearbetar ordrar, betalningar och lager, en i taget, med korrekthetsgarantier. ClickHouse är den analytiska databasen (OLAP): den läser miljontals händelser på en gång för rapporter. Separationen innebär att en tung rapport inte påverkar dina kunders ordrar.
Är mina trafikdata säkra och GDPR-förenliga?
Ja — genom design. Statistiken är first-party: den ligger på plattformens infrastruktur, i Europa, säljs inte och delas inte med annonsnätverk. Upplägget använder inga spårningscookies från tredje part, och en användares data kan raderas på begäran, i enlighet med GDPR.
Hur ”realtid” är statistiken?
En händelse — ett besök, ett klick, en order — blir synlig i rapporterna efter att den inträffat. Aggregeringar över långa perioder (månader, år) passar också, eftersom ClickHouse byggdes just för den typen av frågor.
Måste jag konfigurera något för att få statistik på min webbplats?
Det kommer inte att behövas. Statistikmodulen är under utveckling och byggs som en del av plattformen: när den blir aktiv i administrationspanelen startar insamlingen automatiskt för publicerade webbplatser — utan skript att installera och utan externa konton.