Tehnologije

← Domov
Analitika in podatki

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žnostOmejitev / pragTipična uporaba
Analitične agregacijeStolpčno + vektorsko, čez milijone dogodkovPočasen pri iskanju ene vrstice — ni za lookups OLTPPoročila o prometu in prodaji (modul statistike, v razvoju)
Vnos dogodkovVelike količine, zapisane v paketihMajhna in pogosta vstavljanja zahtevajo batching / async insertZbiranje ogledov strani, klikov, naročil
Shranjevanje in stiskanjeStolpčno stiskanje (LZ4/ZSTD), večkrat pod surovim obsegomZelo naključni podatki se stisnejo manjZgodovina dogodkov za mesece in leta, ob nizkih stroških
Posodobitve in brisanjaAsinhrone mutations za občasne popravkeNeprimeren za pogoste UPDATE-e posameznih vrsticBrisanja GDPR (podatki uporabnika, na zahtevo)
Materialized viewsVnaprej izračunane agregacije ob vsakem zapisuAgregacije je treba definirati vnaprej, za vsako poročiloNadzorne plošče z izračunanimi podatki: prodaja po dnevih, izdelkih, virih
Realni časDogodki postanejo poizvedljivi po zbiranjuNi sistem za pretakanje na ravni milisekundeStatistika prometa in konverzij v živo

ClickHouse v primerjavi s PostgreSQL in Google Analytics / BigQuery — za analitiko

MeriloClickHouse (4buildsite)PostgreSQL (za analitiko)Google Analytics / BigQuery
Agregacije v velikem obseguStolpčno in vektorsko, zgrajeno za milijone vrsticShranjevanje po vrsticah — težke agregacije obremenijo zbirkoBigQuery je stolpčen; GA4 ima vnaprej agregirana standardna poročila, brez prostih poizvedb
Lastništvo podatkov / GDPRVaši podatki, na infrastrukturi platforme, v EvropiVaši podatki, na vaših strežnikihPodatki pri Googlu; prenose GA v ZDA so organi EU leta 2022 razglasili za neskladne z GDPR
Piškotki in soglasjeBrez piškotkov tretjih oseb za sledenjeOdvisno od lastne izvedbeZahteva pasico za soglasje za sledenje
Realni časPodatki poizvedljivi po zbiranjuMogoče, a težka poročila obremenjujejo transakcijsko zbirkoStandardna poročila GA4 se lahko prikažejo z večurno zamudo; pretakanje BigQuery se doplača
Strošek v velikem obseguOdprta koda — strošek je le infrastruktura, vključena v naročninoRaste z indeksi, vacuum in strojno opremo pri velikih količinahBigQuery zaračunava po obsegu poizvedb; enterprise različica GA je draga
Obremenitev straniAsinhrono zbiranje, poročanje na ločenem sistemuPoročila lahko tekmujejo z naročili na isti zbirkiSkripta 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.

4b2b.net
Poslovni ekosistem
4conta.ro
Računovodstvo
4invoices.net
Aplikacija za izdajanje računov
4expenses.net
Upravljanje stroškov
4notify.net
Obvestila
4hosting.net
Gostovanje
4database.net
Baze podatkov
4buildsite.net
Izdelava spletnih strani
4myapp.net
Izdelava aplikacij
4avatars.net
Avatarji z UI
4chaty.net
Klepetalni robot z UI
4webagency.net
Programska oprema za spletne agencije
4softedu.net
Spletne strani za izobraževanje
4softcrm.net
Platforma CRM
4softerp.net
Sistem ERP
4softhr.net
Upravljanje HR
4mystaff.net
Portal osebja
4myprojects.net
Upravitelj projektov
4mycontracts.net
Pogodbe
4docs.net
Upravljanje dokumentov
4appointments.net
Termini
4marketingonline.net
Marketing
4insurance.net
Zavarovanje
4property.net
Nepremičnine
4lawyers.net
Pravna programska oprema
4mygarage.net
Avtoservis
4driving.net
Avtošole
4fleet.net
Upravljanje voznega parka
4myevents.net
Dogodki
4therapy.net
Terapija
4clinics.net
Klinike
4dental.net
Zobne ordinacije
4restaurants.net
Restavracije
4beautify.net
Lepotni salon
4gym.net
Fitnes centri
4guards.net
Varnostna podjetja
4softvet.net
Veterinarske ambulante
4softauto.net
Programska oprema za avtomobilski posel
4construct.net
Gradbena podjetja
4marketplace.net
Tržnica
4shopy.net
Spletna trgovina
4pricing.net
Primerjava cen
4salefood.net
Dostava hrane
4rentify.net
Najem
4transports.net
Transport
4agencytravel.net
Potovalna agencija
4hotel.net
Upravljanje hotelov
4ong.net
Upravljanje NVO