Tehnoloogiad

← Avaleht
Analüütika ja andmed

ClickHouse — platvormi tehnoloogiapaki reaalajaanalüütika mootor

4buildsite'i tehnoloogiapakett sisaldab ClickHouse'i — veerupõhist andmebaasi, mis on loodud spetsiaalselt suuremahuliseks analüüsiks. Sellele ehitame platvormi liikluse- ja müügistatistika mooduli (arendamisel): andmed jäävad sinule.

Mis on ClickHouse ja miks me seda kasutame

ClickHouse on veerupõhine OLAP-tüüpi (online-analüüs) andmebaas, mis loodi Yandexis Yandex.Metrica jaoks — üks maailma suurimaid veebianalüüsi süsteeme — ning avaldati avatud lähtekoodina 2016. aastal Apache 2.0 litsentsi all. See on ehitatud ühe asja jaoks, mida see teeb erakordselt hästi: kiire koondamine tohututel andmemahtudel. 4buildsite'i arhitektuuris on ClickHouse statistikakihi jaoks valitud mootor: iga külastus, klõps ja tellimus muutub sündmuseks, mida saab kohe analüüsida.

Saladus on veergude kaupa salvestamine: selle asemel et lugeda iga „rida“ tervikuna, loeb ClickHouse ainult need veerud, mida aruanne vajab, ja töötleb neid vektoriseeritult, suurte plokkidena. Seetõttu saab küsimus nagu „mitu külastajat mul eile oli, iga lehe ja iga allika kaupa“ vastuse alla sekundiga isegi miljonite sündmuste üle — midagi, mida klassikaline, ridadele orienteeritud andmebaas lahendab palju raskemini.

See pole nišitehnoloogia: Cloudflare kasutab seda HTTP-liikluse analüüsiks ülemaailmses mastaabis, Uber, eBay ja Spotify aga analüütikaks ning logide töötlemiseks tohututes mahtudes. 4buildsite'is on sama mootor osa platvormi tehnoloogiapakettist — ilma et pead palkama andmeinseneride meeskonda.

Reaalajastatistika — kuidas moodul on kavandatud

Platvormi statistikamoodul on arendamisel ja selle arhitektuur on lihtne: liiklussündmusi kogutakse asünkroonselt ja kirjutatakse ClickHouse'i, täiesti eraldi lehti serveerivatest serveritest. Lehel pole rasket kolmanda osapoole jälgimisskripti — kogumine on minimaalne ja first-party.

Aruanded aadressil panel.4buildsite.net arvutatakse otse ClickHouse'is: liiklus lehtede kaupa, külastajate allikad, konversioonid, müük toodete kaupa. Sagedased koondid arvutatakse eelnevalt materialized views'ide abil iga kirjutamise puhul, seega avaneb töölaud kohe — iga vaatamisega ei käivitu raske arvutus.

  • Reaalajaliiklus: külastused, lehed, allikad ja seadmed — päritavad pärast kogumist
  • Müük toodete kaupa, tellimused ja konversioonid sinu e-poe jaoks
  • Kuude ja aastate ajalugu väikese kuluga — veerupõhine tihendus vähendab salvestust toorandmetega võrreldes mitu korda
  • Kogumine on asünkroonne, aruandlus töötab teises süsteemis

PostgreSQL + ClickHouse: miks me kasutame mõlemat

Platvormi tehnoloogiapakett ühendab kaks andmebaasi, sest need teevad põhimõtteliselt erinevaid asju. PostgreSQL on tehingute register (OLTP): tellimused, maksed, laoseis, kasutajakontod — operatsioonid, mis peavad olema üksteise järel täiesti õiged, tehinguliste garantiidega. ClickHouse on analüüsisaal (OLAP): miljoneid sündmusi loetakse korraga, et vastata sinu küsimustele liikluse ja müügi kohta.

Kui rasked aruanded töötaksid samas andmebaasis, mis töötleb tellimusi, konkureeriks iga aruanne klientidega, kes parajasti maksavad. OLTP/OLAP-i lahusus kõrvaldab selle konflikti: kliendi tellimus ei oota sinu aruannet ja sinu aruanne ei oota teiste tellimusi. Iga mootor teeb täpselt seda, milleks see on ehitatud.

  • PostgreSQL: tellimused, Stripe'i maksed, laoseis, kliendid — tehinguline korrektsus
  • ClickHouse: liiklussündmused, aruanded, statistika — koondamine suures mahus
  • Disain näeb ette, et asjakohased tehinguandmed jõuavad ClickHouse'i sündmustena, seega ei puuduta müügiaruanded kunagi andmebaasi, mis serveerib e-poodi

Oma privaatsussõbralik analüütika — Google Analyticsi asemel

Statistikamooduli põhimõte: sinu saidi andmed jäävad platvormi infrastruktuuri. Neid ei saadeta Google'ile ega teistele reklaamivõrgustikele, neid ei müüda ega kombineerita väliste kasutajaprofiilidega. See on first-party analytics sõna otseses mõttes: andmed sinu külastajate kohta on sinu omad.

Kuna lähenemine ei kasuta kolmanda osapoole jälgimisküpsiseid, muutub GDPR-ile vastavus palju lihtsamaks. Kontekst loeb: 2022. aastal tunnistasid Austria, Prantsusmaa ja Itaalia andmekaitseasutused Google Analyticsi kasutamise GDPR-iga mittevastavaks andmeedastuse tõttu USA-sse. Oma, Euroopas majutatud analüütikaga kaob see riskikategooria algusest peale.

On ka otsene praktiline kasu: ClickHouse'is arvutatud aruanded ei ole valimipõhised. Täielikud numbrid.

E-poe ja turuplatsi aruanded — mida moodul pakkuma hakkab

E-poe jaoks tähendab ClickHouse kohest vastust olulistele küsimustele: millised tooted müüvad, millistest allikatest tulevad ostvad kliendid, kus ostukorvid maha jäetakse. Mitme müüjaga turuplatsi jaoks töötavad samad koondid kõigil tellimustel: maht müüja kaupa, vahendustasud, enimmüüdud tooted kategooria kaupa — ilma käsitsi eksportideta ja ilma tabelarvutuseta.

Ka suures mahus jäävad asjad odavaks. Veerupõhine tihendus vähendab andmeid toorvorminguga võrreldes mitu korda, seega hoiad aastatepikkust ajalugu väikese salvestuskuluga. Ja kui liiklus kasvab tuhandetelt miljonite sündmusteni, mootor kavandati algusest peale miljarditele ridadele, mitte ei kohandatud hiljem.

Eelised ja piirangud

Eelised

  • Koondamine miljonitel sündmustel alla sekundiga.
  • Analüütika töötab lehti serveerivast süsteemist eraldi süsteemis.
  • Liiklusandmed jäävad sinule, platvormi infrastruktuuri — ilma edastuseta Google'ile või reklaamivõrgustikele.
  • Ilma kolmanda osapoole jälgimisküpsisteta — lihtsam GDPR-ile vastavus.
  • Tugev veerupõhine tihendus — aastatepikkune ajalugu väikese salvestuskuluga.
  • Avatud lähtekood (Apache 2.0), ilma mahupõhiste litsentsideta — kulu ei plahvata liikluse kasvades.

Piirangud

  • See pole tehinguline andmebaas — üksikute ridade muutmine või kustutamine on raske operatsioon; seetõttu asuvad tellimused ja maksed PostgreSQL-is.
  • Optimeeritud suurtes partiides kirjutamiseks; paljud väikesed ja sagedased lisamised nõuavad batching'ut — platvorm haldab seda, kuid see on mootori tegelik piirang.
  • Keerukad JOIN-id on vähem paindlikud kui PostgreSQL-is — sündmuste skeem tuleb algusest peale analüüsi jaoks kavandada.
  • Üksiku rea otsimine (point lookup) on aeglasem kui indekseeritud OLTP-andmebaasis — see ei asenda e-poe põhiandmebaasi.

Lühike kokkuvõte

ClickHouse on õige valik suuremahuliseks analüütikaks: reaalajas liikluse- ja müügistatistika sinu enda andmetega, saidi kiirust puudutamata. Tellimuste, maksete ja laoseisu jaoks jääb PostgreSQL — seetõttu ühendab 4buildsite'i tehnoloogiapakett mõlemad, kumbki seal, kus ta on parim. ClickHouse'ile ehitatud statistikamoodul on arendamisel.

Spetsifikatsioonide tabel

VõimekusPiir / läviTüüpiline kasutus
Analüütiline koondamineAlla sekundi miljonitel sündmustel (veerupõhine + vektoriseeritud)Aeglane üksiku rea otsimisel — pole OLTP-päringute jaoksLiikluse- ja müügiaruanded (statistikamoodul, arendamisel)
Sündmuste sissevõttSuured mahud, kirjutatud partiidenaVäikesed ja sagedased lisamised nõuavad batching'ut / async insert'iLehevaatamiste, klõpsude ja tellimuste kogumine
Salvestus ja tihendusVeerupõhine tihendus (LZ4/ZSTD), mitu korda toormahust väiksemVäga juhuslikud andmed tihenduvad vähemSündmuste ajalugu kuude ja aastate kaupa, väikese kuluga
Uuendused ja kustutamisedAsünkroonsed mutations aeg-ajalt tehtavate parandusteksEi sobi sagedasteks UPDATE-teks üksikutel ridadelGDPR-kustutused (kasutaja andmed, nõudmisel)
Materialized viewsEelnevalt arvutatud koondid iga kirjutamise puhulKoondid tuleb eelnevalt defineerida, aruande kaupaKohesed töölauad: müük päeva, toote, allika kaupa
ReaalaegSündmused muutuvad päritavaks pärast toimumistPole millisekundi tasemel striimimissüsteemReaalajaliikluse ja konversioonide statistika

ClickHouse vs PostgreSQL vs Google Analytics / BigQuery — analüütika jaoks

KriteeriumClickHouse (4buildsite)PostgreSQL (analüütikaks)Google Analytics / BigQuery
Koondamise kiirus suures mahusAlla sekundi miljonitel ridadelLangeb märgatavalt kümnetel miljonitel ridadel (ridapõhine salvestus)BigQuery kiire; GA4-l on eelkoondatud standardaruanded, ilma vabade päringuteta
Andmete omand / GDPRSinu andmed, platvormi infrastruktuuris, EuroopasSinu andmed, sinu serveritesAndmed Google'is; GA edastused USA-sse tunnistasid ELi asutused 2022. aastal GDPR-iga mittevastavaks
Küpsised ja nõusolekIlma kolmanda osapoole jälgimisküpsistetaSõltub enda teostusestJälgimiseks on vaja nõusolekubännerit
ReaalaegAndmed päritavad pärast kogumistVõimalik, kuid rasked aruanded koormavad tehinguandmebaasiGA4 standardaruanded võivad ilmuda tundidepikkuse viivitusega; BigQuery striimimine maksab lisaks
Kulu suures mahusAvatud lähtekood — kulu on ainult infrastruktuur, mis sisaldub tellimusesKasvab indeksite, vacuum'i ja riistvaraga suurtes mahtudesBigQuery võtab tasu päritud mahu eest; GA enterprise-variant on kallis
Mõju saidi kiiruseleAsünkroonne kogumine, aruandlus eraldi süsteemisAruanded võivad samas andmebaasis tellimustega konkureeridaKolmanda osapoole skript (gtag.js) lehel — lisaks JavaScript ja välised päringud

Korduma kippuvad küsimused

Kas ClickHouse aeglustab minu saiti või e-poodi?

Ei. ClickHouse töötab lehti serveerivast süsteemist eraldi süsteemis — nii on arhitektuur kavandatud. Liiklussündmused saadetakse asünkroonselt ja aruanded ei puuduta kunagi e-poe andmebaasi.

Miks te ei kasuta lihtsalt Google Analyticsit?

Kolm põhjust. Andmed jäävad sinule, platvormi infrastruktuuri, mitte Google'isse. Sa ei vaja kolmanda osapoole jälgimisküpsiseid, seega on GDPR-ile vastavus lihtsam — 2022. aastal tunnistasid Austria, Prantsusmaa ja Itaalia asutused GA GDPR-iga mittevastavaks. Ja aruanded ilmuvad täielikena, mitte valimipõhiselt.

Mis vahe on ClickHouse'il ja PostgreSQL-il — miks mõlemad?

PostgreSQL on tehinguline andmebaas (OLTP): töötleb tellimusi, makseid ja laoseisu ükshaaval, korrektsuse garantiidega. ClickHouse on analüütiline andmebaas (OLAP): loeb aruannete jaoks korraga miljoneid sündmusi.

Kas minu liiklusandmed on turvalised ja GDPR-iga kooskõlas?

Jah — disaini tõttu. Statistika on first-party: asub platvormi infrastruktuuris, Euroopas, seda ei müüda ega jagata reklaamivõrgustikega. Lähenemine ei kasuta kolmanda osapoole jälgimisküpsiseid ning kasutaja andmed saab GDPR-i kohaselt nõudmisel kustutada.

Kui „reaalajas“ on statistika?

Sündmus — külastus, klõps, tellimus — muutub aruannetes nähtavaks pärast toimumist. Pikkade perioodide (kuud, aastad) päringud toimivad samuti, sest ClickHouse on ehitatud täpselt selliste päringute jaoks.

Kas ma pean midagi seadistama, et mu saidil statistika oleks?

Ei pea. Statistikamoodul on arendamisel ja ehitatud osana platvormist: kui see halduspaneelis aktiivseks muutub, algab kogumine avaldatud saitide jaoks automaatselt — ilma paigaldatavate skriptide ja väliste kontodeta.

4b2b.net
Äriökosüsteem
4conta.ro
Raamatupidamine
4invoices.net
Arvelduse rakendus
4expenses.net
Kulude haldus
4notify.net
Teavitused
4hosting.net
Veebimajutus
4database.net
Andmebaasid
4buildsite.net
Kodulehe koostaja
4myapp.net
Rakenduste koostaja
4avatars.net
Tehisintellekti avatarid
4chaty.net
Tehisintellekti vestlusrobot
4webagency.net
Tarkvara veebiagentuuridele
4softedu.net
Kodulehed hariduse jaoks
4softcrm.net
CRM-platvorm
4softerp.net
ERP-süsteem
4softhr.net
Personalijuhtimine
4mystaff.net
Töötajate portaal
4myprojects.net
Projektijuhtimine
4mycontracts.net
Lepingud
4docs.net
Dokumendihaldus
4appointments.net
Broneeringud
4marketingonline.net
Turundus
4insurance.net
Kindlustus
4property.net
Kinnisvara
4lawyers.net
Tarkvara juristidele
4mygarage.net
Autoteenindus
4driving.net
Autokoolid
4fleet.net
Autopargi haldus
4myevents.net
Üritused
4therapy.net
Teraapia
4clinics.net
Kliinikud
4dental.net
Hambakliinikud
4restaurants.net
Restoranid
4beautify.net
Ilusalong
4gym.net
Spordiklubid
4guards.net
Turvafirmad
4softvet.net
Loomakliinikud
4softauto.net
Autoäri tarkvara
4construct.net
Ehitusettevõtted
4marketplace.net
Kauplemisplatvorm
4shopy.net
E-pood
4pricing.net
Hinnavõrdlus
4salefood.net
Toidu kohaletoimetamine
4rentify.net
Üürileandmine
4transports.net
Transport
4agencytravel.net
Reisibüroo
4hotel.net
Hotellihaldus
4ong.net
MTÜ-de haldus