ClickHouse — motori i analitikës në kohë reale i stack-ut të platformës
Stack-u i 4buildsite përfshin ClickHouse — një bazë të dhënash kolonare e ndërtuar posaçërisht për analizë në volum të lartë. Mbi të ndërtojmë modulin e statistikave të trafikut dhe shitjeve të platformës (në zhvillim): të dhënat mbeten të tuat, dhe arkitektura është projektuar që moduli të mos ndikojë te faqja jote.
Çfarë është ClickHouse dhe pse e përdorim
ClickHouse është një bazë të dhënash kolonare e tipit OLAP (analizë online), e krijuar te Yandex për Yandex.Metrica — një nga sistemet më të mëdha të analizës web në botë — dhe e publikuar open-source në 2016 nën licencën Apache 2.0. Është ndërtuar për një gjë të vetme, të cilën e bën në mënyrë të jashtëzakonshme: agregime të shpejta mbi vëllime shumë të mëdha të dhënash. Në arkitekturën e 4buildsite, ClickHouse është motori i zgjedhur për shtresën e statistikave: çdo vizitë, klikim dhe porosi bëhet një ngjarje që mund të analizohet.
Sekreti është ruajtja sipas kolonave: në vend që të lexojë çdo „rresht“ të plotë, ClickHouse lexon vetëm kolonat që i duhen raportit dhe i përpunon në mënyrë të vektorizuar, në blloqe të mëdha. Prandaj një pyetje si „sa vizitorë kam pasur dje, në çdo faqe, nga çdo burim“ merr përgjigje shpejt edhe mbi miliona ngjarje — diçka që një bazë klasike, e orientuar sipas rreshtave, e zgjidh shumë më vështirë.
Nuk është teknologji e nishës: Cloudflare e përdor për analizën e trafikut HTTP në shkallë globale, ndërsa Uber, eBay dhe Spotify e përdorin për analitikë dhe përpunim logjesh në vëllime të mëdha. Në 4buildsite, i njëjti motor është pjesë e stack-ut të platformës — pa u dashur të punësosh një ekip inxhinierësh të dhënash.
Statistika në kohë reale, e ndarë nga faqja — si është projektuar moduli
Moduli i statistikave të platformës është në zhvillim, dhe arkitektura e tij është e thjeshtë: ngjarjet e trafikut mblidhen në mënyrë asinkrone dhe shkruhen në ClickHouse, plotësisht të ndara nga serverët që shërbejnë faqet. Nuk ka skript të rëndë tracking nga palë të treta në faqe — mbledhja është minimale dhe first-party.
Raportet nga panel.4buildsite.net do të llogariten drejtpërdrejt në ClickHouse: trafik sipas faqeve, burime vizitorësh, konvertime, shitje sipas produktit. Agregimet e shpeshta parallogariten përmes materialized views në çdo shkrim, prandaj paneli lexon agregate të parallogaritura — nuk nis një llogaritje e rëndë sa herë që e shikon.
- Trafik: vizita, faqe, burime dhe pajisje — të pyetshme pas mbledhjes
- Shitje sipas produktit, porosi dhe konvertime për dyqanin tënd, të agreguara paraprakisht
- Historik mujor e vjetor me kosto të ulët — kompresimi kolonar e zvogëlon ruajtjen disa herë krahasuar me të dhënat e papërpunuara
- Mbledhja është asinkrone, raportimi ekzekutohet në një sistem tjetër
PostgreSQL + ClickHouse: pse i përdorim të dyja
Stack-u i platformës kombinon dy baza të dhënash sepse bëjnë gjëra thelbësisht të ndryshme. PostgreSQL është regjistri i transaksioneve (OLTP): porosi, pagesa, stok, llogari përdoruesish — operacione që duhet të jenë perfektisht të sakta një nga një, me garanci transaksionale. ClickHouse është salla e analizës (OLAP): miliona ngjarje të lexuara njëherësh për t'iu përgjigjur pyetjeve rreth trafikut dhe shitjeve.
Nëse raportet e rënda do të ekzekutoheshin në të njëjtën bazë që përpunon porositë, çdo raport do të konkurronte me klientët që po paguajnë në atë moment. Ndarja OLTP/OLAP e eliminon këtë konflikt: porosia e klientit nuk pret pas raportit tënd, dhe raporti yt nuk pret pas porosive të të tjerëve. Çdo motor bën pikërisht atë për të cilën është ndërtuar.
- PostgreSQL: porosi, pagesa Stripe, stok, klientë — saktësi transaksionale
- ClickHouse: ngjarje trafiku, raporte, statistika — agregim në volum
- Dizajni parashikon që të dhënat transaksionale përkatëse të arrijnë në ClickHouse si ngjarje, prandaj raportet e shitjeve nuk e prekin kurrë bazën që shërben dyqanin
Analytics i vetë, privacy-friendly — në vend të Google Analytics
Parimi i modulit të statistikave: të dhënat e faqes tënde mbeten në infrastrukturën e platformës. Nuk dërgohen te Google ose rrjete të tjera reklamimi, nuk shiten dhe nuk kombinohen me profile të jashtme përdoruesish. Është analytics first-party në kuptimin e vërtetë: të dhënat për vizitorët e tu janë të tuat.
Meqë qasja nuk përdor cookies tracking nga palë të treta, përputhshmëria me GDPR bëhet shumë më e thjeshtë. Konteksti ka rëndësi: në 2022, autoritetet e mbrojtjes së të dhënave në Austri, Francë dhe Itali e shpallën përdorimin e Google Analytics jopërputhshëm me GDPR për shkak të transferimeve të të dhënave drejt SHBA-së. Me një analytics të vetin, të hostuar në Evropë, transferimi i të dhënave drejt SHBA-së nuk është pjesë e arkitekturës.
Ka edhe një përfitim praktik të drejtpërdrejtë: raportet e llogaritura në ClickHouse nuk janë të mostruara. Shifra të plota.
Raporte dyqani dhe marketplace-i — çfarë do të ofrojë moduli
Për një dyqan online, ClickHouse do të thotë përgjigje për pyetjet që kanë rëndësi: cilat produkte shiten, nga cilat burime vijnë klientët që blejnë, ku braktisen shportat. Për një marketplace multi-vendor, të njëjtat agregime do të ekzekutohen mbi të gjitha porositë: volum sipas shitësit, komisione, produktet kryesore sipas kategorisë — pa eksporte manuale dhe pa fletë llogaritjeje.
Edhe në shkallë të madhe, ruajtja mbetet e lirë. Kompresimi kolonar i zvogëlon të dhënat disa herë krahasuar me formatin e papërpunuar, prandaj ruan historik vitesh me kosto të vogël ruajtjeje. Dhe kur trafiku rritet nga mijëra në miliona ngjarje, motori është projektuar që nga fillimi për vëllime shumë të mëdha rreshtash, jo i përshtatur më vonë.
Avantazhe dhe kufizime
Avantazhe
- Agregime mbi miliona ngjarje, me agregate të parallogaritura për raportet e shpeshta.
- Analytics ekzekutohet në një sistem të ndarë nga ai që shërben faqet.
- Të dhënat e trafikut mbeten të tuat, në infrastrukturën e platformës — pa transferim te Google ose rrjete reklamimi.
- Pa cookies tracking nga palë të treta — përputhshmëri më e thjeshtë me GDPR.
- Kompresim kolonar i fuqishëm — historik vitesh me kosto të ulët ruajtjeje.
- Open-source (Apache 2.0), pa licenca sipas volumit — kostoja nuk shpërthen kur rritet trafiku.
Kufizime
- Nuk është bazë të dhënash transaksionale — ndryshimi ose fshirja e rreshtave individualë është operacion i rëndë; prandaj porositë dhe pagesat qëndrojnë në PostgreSQL.
- I optimizuar për shkrime në grupe të mëdha; shumë inserte të vogla e të shpeshta kërkojnë batching — platforma e menaxhon këtë, por është kufi real i motorit.
- JOIN-et e ndërlikuara janë më pak fleksibël se në PostgreSQL — skema e ngjarjeve duhet projektuar për analizë që në fillim.
- Kërkimi i një rreshti të vetëm (point lookup) është më i ngadaltë se në një bazë OLTP të indeksuar — nuk e zëvendëson bazën kryesore të dyqanit.
Verdikt i shkurtër
ClickHouse është zgjedhja e duhur për analitikë në volum: statistika trafiku dhe shitjesh në kohë reale, me të dhënat e tua. Për porosi, pagesa dhe stok mbetet PostgreSQL — prandaj stack-u i 4buildsite i kombinon të dyja, secilën aty ku është më e mira. Moduli i statistikave i ndërtuar mbi ClickHouse është në zhvillim.
Tabela e specifikimeve
| Aftësia | Kufiri / pragu | Përdorimi tipik | |
|---|---|---|---|
| Agregime analitike | Agregate mbi miliona ngjarje (kolonar + vektorizuar) | I ngadaltë te kërkimi i një rreshti të vetëm — nuk është për lookups OLTP | Raporte trafiku dhe shitjesh (moduli i statistikave, në zhvillim) |
| Ingestimi i ngjarjeve | Vëllime të mëdha, shkruar në grupe | Insertet e vogla e të shpeshta kërkojnë batching / async insert | Mbledhje pageview-sh, klikimesh, porosish |
| Ruajtja & kompresimi | Kompresim kolonar (LZ4/ZSTD), disa herë nën vëllimin e papërpunuar | Të dhënat shumë të rastësishme kompresohen më pak | Historik ngjarjesh mujor e vjetor, me kosto të ulët |
| Përditësime & fshirje | Mutations asinkrone për korrigjime të rastësishme | I papërshtatshëm për UPDATE të shpeshta në rreshta individualë | Fshirje GDPR (të dhënat e një përdoruesi, me kërkesë) |
| Materialized views | Agregate të parallogaritura në çdo shkrim | Agregatet duhen përcaktuar paraprakisht, për çdo raport | Panele me agregate të parallogaritura: shitje sipas ditës, produktit, burimit |
| Koha reale | Ngjarjet bëhen të pyetshme pak pas ndodhjes | Nuk është sistem streaming në nivel milisekonde | Statistika e trafikut dhe konvertimeve |
ClickHouse kundrejt PostgreSQL kundrejt Google Analytics / BigQuery — për analitikë
| Kriteri | ClickHouse (4buildsite) | PostgreSQL (për analitikë) | Google Analytics / BigQuery |
|---|---|---|---|
| Shpejtësia e agregimeve në volum | Agregate mbi miliona rreshta | Bie dukshëm mbi dhjetëra miliona rreshta (ruajtje sipas rreshtave) | BigQuery i shpejtë; GA4 ka raporte standarde të parallogaritura, pa query të lira |
| Pronësia e të dhënave / GDPR | Të dhënat e tua, në infrastrukturën e platformës, në Evropë | Të dhënat e tua, në serverët e tu | Të dhënat te Google; transferimet e GA drejt SHBA-së të shpallura jopërputhëse me GDPR nga autoritete të BE-së në 2022 |
| Cookies & pëlqimi | Pa cookies tracking nga palë të treta | Varet nga implementimi i vetë | Kërkon banner pëlqimi për tracking |
| Koha reale | Të dhëna të pyetshme pak pas ndodhjes | E mundur, por raportet e rënda e ngarkojnë bazën transaksionale | Raportet standarde GA4 mund të shfaqen me vonesë orësh; streaming BigQuery kushton shtesë |
| Kostoja në volum | Open-source — kostoja është vetëm infrastruktura, e përfshirë në abonim | Rritet me indekse, vacuum dhe hardware në vëllime të mëdha | BigQuery tarifon sipas volumit të pyetur; varianti enterprise i GA është i kushtueshëm |
| Ndikimi në shpejtësinë e faqes | Minimal — mbledhje asinkrone, raportim në sistem të ndarë | Raportet mund të konkurrojnë me porositë në të njëjtën bazë | Skript i palës së tretë (gtag.js) në faqe — JavaScript dhe kërkesa të jashtme shtesë |
Pyetje të shpeshta
A ma ngadalëson ClickHouse faqen ose dyqanin?
Jo. ClickHouse ekzekutohet në një sistem të ndarë nga ai që shërben faqet — kështu është projektuar arkitektura. Ngjarjet e trafikut dërgohen në mënyrë asinkrone, ndërsa raportet nuk e prekin kurrë bazën e të dhënave të dyqanit.
Pse nuk përdorni thjesht Google Analytics?
Tri arsye. Të dhënat mbeten të tuat, në infrastrukturën e platformës, jo te Google. Nuk ke nevojë për cookies tracking nga palë të treta, prandaj përputhshmëria me GDPR është më e thjeshtë — në 2022, autoritete nga Austria, Franca dhe Italia e shpallën GA jopërputhës me GDPR. Dhe raportet janë të plota, jo të mostruara.
Cili është ndryshimi mes ClickHouse dhe PostgreSQL — pse të dyja?
PostgreSQL është baza transaksionale (OLTP): përpunon porosi, pagesa dhe stok, një nga një, me garanci saktësie. ClickHouse është baza analitike (OLAP): lexon miliona ngjarje njëherësh për raporte. Ndarja do të thotë që një raport i rëndë nuk konkurron me porositë e klientëve të tu.
A janë të dhënat e mia të trafikut në siguri dhe në përputhje me GDPR?
Po — nga dizajni. Statistikat janë first-party: qëndrojnë në infrastrukturën e platformës, në Evropë, nuk shiten dhe nuk ndahen me rrjete reklamimi. Qasja nuk përdor cookies tracking nga palë të treta, ndërsa të dhënat e një përdoruesi mund të fshihen me kërkesë, sipas GDPR.
Sa „në kohë reale“ janë statistikat?
Një ngjarje — një vizitë, një klikim, një porosi — bëhet e dukshme në raporte pak pas ndodhjes. Agregimet mbi periudha të gjata (muaj, vite) funksionojnë gjithashtu, sepse ClickHouse është ndërtuar pikërisht për këtë lloj query-sh.
A duhet të konfigurojë diçka që të kem statistika në faqen time?
Nuk do të nevojitet. Moduli i statistikave është në zhvillim dhe është ndërtuar si pjesë e platformës: kur të bëhet aktiv në panelin e administrimit, mbledhja nis automatikisht për faqet e publikuara — pa skripte për t'u instaluar dhe pa llogari të jashtme.