Tehnoloģijas

← Sākums
Analītika un dati

ClickHouse — reāllaika analītikas dzinējs platformas stekā

4buildsite steks ietver ClickHouse — kolonnu datubāzi, kas speciāli veidota analīzei lielos apjomos. Uz tās veidojam platformas datplūsmas un pārdošanas statistikas moduli (izstrādes procesā): dati paliek tavi, bet vietnes darbība ir atdalīta no pārskatiem — tā ir projektēta arhitektūra.

Kas ir ClickHouse un kāpēc to izmantojam

ClickHouse ir OLAP (online analītiskās apstrādes) tipa kolonnu datubāze, ko Yandex izveidoja sistēmai Yandex.Metrica — vienai no lielākajām tīmekļa analīzes sistēmām pasaulē — un 2016. gadā publicēja kā atvērtā koda risinājumu ar Apache 2.0 licenci. Tā ir veidota vienam mērķim, ko tā dara izcili: ātrām agregācijām pār milzīgiem datu apjomiem. 4buildsite arhitektūrā ClickHouse ir izvēlētais dzinējs statistikas slānim: katrs apmeklējums, klikšķis un pasūtījums kļūst par notikumu, ko var analizēt.

Noslēpums ir glabāšanā pa kolonnām: tā vietā, lai nolasītu katru pilnu „rindu”, ClickHouse nolasa tikai tās kolonnas, kas vajadzīgas pārskatam, un apstrādā tās vektorizēti, lielos blokos. Tāpēc jautājums, piemēram, „cik apmeklētāju bija vakar, katrā lapā, no katra avota”, saņem atbildi arī pār miljoniem notikumu — ko klasiskai, uz rindām orientētai datubāzei atrisināt ir daudz grūtāk.

Tā nav nišas tehnoloģija: Cloudflare to izmanto HTTP datplūsmas analīzei globālā mērogā, bet Uber, eBay un Spotify — analītikai un žurnālu apstrādei milzīgos apjomos. Platformā 4buildsite tas pats dzinējs ir daļa no platformas steka — bez nepieciešamības pieņemt darbā datu inženieru komandu.

Reāllaika statistika atdalīta no vietnes — kā modulis ir projektēts

Platformas statistikas modulis ir izstrādes procesā, un tā arhitektūra ir vienkārša: datplūsmas notikumi tiek vākti asinhroni un ierakstīti ClickHouse, pilnībā atdalīti no serveriem, kas piegādā lapas. Analytics neatrodas lapas ielādes ceļā. Nav smaga trešās puses tracking skripta, kas sabojātu tavu veiktspējas rezultātu — vākšana ir minimāla un first-party.

Pārskati no panel.4buildsite.net tiks aprēķināti tieši ClickHouse: datplūsma pa lapām, apmeklētāju avoti, konversijas, pārdošana pa produktiem. Biežās agregācijas tiek iepriekš aprēķinātas ar materialized views katrā ierakstā, tāpēc informācijas panelim nav jāveic smags aprēķins katru reizi, kad to atver.

  • Tiešraides datplūsma: apmeklējumi, lapas, avoti un ierīces — vaicājami pēc savākšanas
  • Pārdošana pa produktiem, pasūtījumi un konversijas tavam veikalam, agregēti pārskatos
  • Vēsture par mēnešiem un gadiem par zemām izmaksām — kolonnu kompresija samazina glabāšanu vairākkārt salīdzinājumā ar neapstrādātiem datiem
  • Atdalīta no vietnes: vākšana ir asinhrona, pārskati darbojas citā sistēmā

PostgreSQL + ClickHouse: kāpēc izmantojam abus

Platformas steks apvieno divas datubāzes, jo tās dara pamatā atšķirīgas lietas. PostgreSQL ir darījumu reģistrs (OLTP): pasūtījumi, maksājumi, krājumi, lietotāju konti — darbības, kurām jābūt perfekti pareizām katrai atsevišķi, ar darījumu garantijām. ClickHouse ir analīzes zāle (OLAP): miljoniem notikumu, kas tiek nolasīti vienlaikus, lai atbildētu uz jautājumiem par datplūsmu un pārdošanu.

Ja smagie pārskati darbotos uz tās pašas datubāzes, kas apstrādā pasūtījumus, katrs pārskats konkurētu ar klientiem, kuri tajā brīdī maksā. OLTP/OLAP nodalīšana novērš šo konfliktu: klienta pasūtījums negaida tavu pārskatu, bet tavs pārskats negaida citu pasūtījumus. Katrs dzinējs dara tieši to, kam tas veidots.

  • PostgreSQL: pasūtījumi, Stripe maksājumi, krājumi, klienti — darījumu pareizība
  • ClickHouse: datplūsmas notikumi, pārskati, statistika — agregācija lielā apjomā
  • Dizains paredz, ka attiecīgie darījumu dati nonāk ClickHouse kā notikumi, tāpēc pārdošanas pārskati nekad neskar datubāzi, kas apkalpo veikalu

Pašu analytics, privātumam draudzīgs — Google Analytics vietā

Statistikas moduļa princips: tavas vietnes dati paliek platformas infrastruktūrā. Tie netiek sūtīti Google vai citiem reklāmas tīkliem, netiek pārdoti un netiek apvienoti ar ārējiem lietotāju profiliem. Tas ir first-party analytics tiešā nozīmē: dati par taviem apmeklētājiem ir tavi.

Tā kā pieeja neizmanto trešo pušu tracking sīkdatnes, GDPR atbilstība kļūst daudz vienkāršāka. Konteksts ir svarīgs: 2022. gadā datu aizsardzības iestādes Austrijā, Francijā un Itālijā atzina, ka Google Analytics lietošana neatbilst GDPR datu pārsūtīšanas uz ASV dēļ. Ar pašu analytics, kas mitināts Eiropā, šī riska kategorija pazūd jau no paša sākuma.

Ir arī tieši praktisks ieguvums: ClickHouse aprēķinātie pārskati netiek izlases veidā ņemti un neparādās ar vairāku stundu kavēšanos, kā tas notiek ar standarta pārskatiem bezmaksas analytics rīkos. Pilni skaitļi, nevis izlase.

Veikala un mārketpleisa pārskati — ko piegādās modulis

Tiešsaistes veikalam ClickHouse nozīmēs atbildes uz svarīgajiem jautājumiem: kuri produkti tiek pārdoti, no kādiem avotiem nāk pircēji, kur tiek pamesti grozi. Daudzpārdevēju mārketpleisam tās pašas agregācijas darbosies pār visiem pasūtījumiem: apjoms pa pārdevējiem, komisijas, populārākie produkti pa kategorijām — bez manuāliem eksportiem un bez izklājlapām.

Arī mērogā viss paliek lēts. Kolonnu kompresija samazina datus vairākkārt salīdzinājumā ar neapstrādāto formātu, tāpēc vēsturi vari glabāt gadiem par zemām glabāšanas izmaksām. Un, kad datplūsma aug no tūkstošiem līdz miljoniem notikumu, agregācijas joprojām darbojas — dzinējs jau no paša sākuma projektēts miljardiem rindu, nevis pielāgots vēlāk.

Priekšrocības un ierobežojumi

Priekšrocības

  • Agregācijas pār miljoniem notikumu — dzinējs veidots tieši šādiem vaicājumiem.
  • Analytics darbojas sistēmā, kas atdalīta no tās, kas apkalpo lapas.
  • Datplūsmas dati paliek tavi, platformas infrastruktūrā — bez pārsūtīšanas Google vai reklāmas tīkliem.
  • Bez trešo pušu tracking sīkdatnēm — vienkāršāka GDPR atbilstība.
  • Spēcīga kolonnu kompresija — vēsture gadiem par zemām glabāšanas izmaksām.
  • Atvērtā koda (Apache 2.0), bez licencēm pēc apjoma — izmaksas nesprāgst, kad aug datplūsma.

Ierobežojumi

  • Nav darījumu datubāze — atsevišķu rindu mainīšana vai dzēšana ir smaga darbība; tāpēc pasūtījumi un maksājumi atrodas PostgreSQL.
  • Optimizēta ierakstiem lielās partijās; daudzi mazi un bieži insert prasa batching — platforma to pārvalda, taču tas ir reāls dzinēja ierobežojums.
  • Sarežģīti JOIN ir mazāk elastīgi nekā PostgreSQL — notikumu shēma jāprojektē analīzei jau no paša sākuma.
  • Viena rindas meklēšana (point lookup) ir lēnāka nekā indeksētā OLTP datubāzē — tā neaizstāj veikala pamata datubāzi.

Īss secinājums

ClickHouse ir pareizā izvēle analītikai lielos apjomos: datplūsmas un pārdošanas statistika reāllaikā, ar taviem datiem, atdalīti no vietnes darbības. Pasūtījumiem, maksājumiem un krājumiem paliek PostgreSQL — tāpēc 4buildsite steks apvieno abus, katru tajā, kas tam padodas vislabāk. Uz ClickHouse veidotais statistikas modulis ir izstrādes procesā.

Specifikāciju tabula

IespējaIerobežojums / slieksnisTipisks pielietojums
Analītiskās agregācijasAgregācijas pār miljoniem notikumu (kolonnu + vektorizēts)Lēns, meklējot vienu rindu — nav paredzēts OLTP lookupsDatplūsmas un pārdošanas pārskati (statistikas modulis, izstrādes procesā)
Notikumu uzņemšanaLieli apjomi, ierakstīti partijāsMazi un bieži insert prasa batching / async insertLapu skatījumu, klikšķu, pasūtījumu vākšana
Glabāšana un kompresijaKolonnu kompresija (LZ4/ZSTD), vairākkārt zem neapstrādātā apjomaĻoti nejauši dati saspiežas mazākNotikumu vēsture par mēnešiem un gadiem, par zemām izmaksām
Atjauninājumi un dzēšanaAsinhronas mutations ar retām korekcijāmNav piemērots biežiem UPDATE uz atsevišķām rindāmGDPR dzēšana (lietotāja dati pēc pieprasījuma)
Materialized viewsIepriekš aprēķināti agregāti katrā ierakstāAgregāti jādefinē iepriekš, katram pārskatamInformācijas paneļi: pārdošana pa dienām, produktiem, avotiem
ReāllaiksNotikumi kļūst vaicājami pēc to norisesNav streaming sistēma milisekunžu līmenīTiešraides datplūsmas un konversiju statistika

ClickHouse pret PostgreSQL pret Google Analytics / BigQuery — analītikai

KritērijsClickHouse (4buildsite)PostgreSQL (analītikai)Google Analytics / BigQuery
Agregāciju ātrums lielā apjomāAgregācijas pār miljoniem rinduManāmi lēnāks pār desmitiem miljonu rindu (glabāšana pa rindām)BigQuery ātrs; GA4 ir standarta iepriekš agregēti pārskati, bez brīviem vaicājumiem
Datu piederība / GDPRTavi dati, platformas infrastruktūrā, EiropāTavi dati, tavos serverosDati pie Google; GA datu pārsūtīšanu uz ASV ES iestādes 2022. gadā atzina par GDPR neatbilstošu
Sīkdatnes un piekrišanaBez trešo pušu tracking sīkdatnēmAtkarīgs no paša ieviešanasTracking nepieciešams piekrišanas baneris
ReāllaiksDati vaicājami pēc savākšanasIespējams, taču smagie pārskati noslogo darījumu datubāziStandarta GA4 pārskati var parādīties ar vairāku stundu kavēšanos; BigQuery streaming maksā papildus
Izmaksas lielā apjomāAtvērtā koda — izmaksas ir tikai infrastruktūra, iekļauta abonementāPieaug līdz ar indeksiem, vacuum un aparatūru lielos apjomosBigQuery maksā par vaicāto apjomu; GA enterprise variants ir dārgs
Ietekme uz vietnes ātrumuAsinhrona vākšana, pārskati atsevišķā sistēmāPārskati var konkurēt ar pasūtījumiem vienā datubāzēTrešās puses skripts (gtag.js) lapā — papildu JavaScript un ārēji pieprasījumi

Biežāk uzdotie jautājumi

Vai ClickHouse palēnina manu vietni vai veikalu?

Nē. ClickHouse darbojas sistēmā, kas atdalīta no tās, kas apkalpo lapas — tāda ir arhitektūras konstrukcija. Datplūsmas notikumi tiek sūtīti asinhroni, un pārskati nekad neskar veikala datubāzi.

Kāpēc vienkārši neizmantojat Google Analytics?

Trīs iemesli. Dati paliek tavi, platformas infrastruktūrā, nevis pie Google. Tev nav vajadzīgas trešo pušu tracking sīkdatnes, tāpēc GDPR atbilstība ir vienkāršāka — 2022. gadā iestādes Austrijā, Francijā un Itālijā atzina GA par neatbilstošu GDPR. Un pārskati ir pilni, nevis izlases veidā vai ar vairāku stundu kavēšanos.

Kāda ir atšķirība starp ClickHouse un PostgreSQL — kāpēc abi?

PostgreSQL ir darījumu datubāze (OLTP): tā apstrādā pasūtījumus, maksājumus un krājumus pa vienam, ar pareizības garantijām. ClickHouse ir analītiskā datubāze (OLAP): tā vienlaikus nolasa miljoniem notikumu pārskatiem. Nodalīšana nozīmē, ka smags pārskats nekad nepalēnina tavu klientu pasūtījumus.

Vai mani datplūsmas dati ir drošībā un atbilst GDPR?

Jā — pēc konstrukcijas. Statistika ir first-party: tā atrodas platformas infrastruktūrā, Eiropā, netiek pārdota un netiek kopīgota ar reklāmas tīkliem. Pieeja neizmanto trešo pušu tracking sīkdatnes, un lietotāja datus pēc pieprasījuma var dzēst saskaņā ar GDPR.

Cik „reāllaika” ir statistika?

Notikums — apmeklējums, klikšķis, pasūtījums — pārskatos kļūst redzams pēc tā norises. Agregācijas pār lieliem periodiem (mēnešiem, gadiem) arī tiek veiktas, jo ClickHouse ir veidots tieši šāda veida vaicājumiem.

Vai man kaut kas jākonfigurē, lai vietnē būtu statistika?

Nebūs nepieciešams. Statistikas modulis ir izstrādes procesā un veidots kā platformas daļa: kad tas administrēšanas panelī kļūs aktīvs, vākšana publicētajām vietnēm sāksies automātiski — bez instalējamiem skriptiem un bez ārējiem kontiem.

4b2b.net
Biznesa ekosistēma
4conta.ro
Grāmatvedība
4invoices.net
Rēķinu izrakstīšanas lietotne
4expenses.net
Izdevumu pārvaldība
4notify.net
Paziņojumi
4hosting.net
Hostings
4database.net
Datubāzes
4buildsite.net
Mājaslapu veidotājs
4myapp.net
Lietotņu veidotājs
4avatars.net
MI avatāri
4chaty.net
MI tērzēšanas robots
4webagency.net
Programma tīmekļa aģentūrām
4softedu.net
Mājaslapas izglītībai
4softcrm.net
CRM platforma
4softerp.net
ERP sistēma
4softhr.net
Personāla vadība
4mystaff.net
Darbinieku portāls
4myprojects.net
Projektu vadība
4mycontracts.net
Līgumi
4docs.net
Dokumentu pārvaldība
4appointments.net
Pieraksts
4marketingonline.net
Mārketings
4insurance.net
Apdrošināšana
4property.net
Nekustamais īpašums
4lawyers.net
Programma juristiem
4mygarage.net
Autoserviss
4driving.net
Autoskolas
4fleet.net
Autoparka vadība
4myevents.net
Pasākumi
4therapy.net
Terapija
4clinics.net
Klīnikas
4dental.net
Zobārstniecības klīnikas
4restaurants.net
Restorāni
4beautify.net
Skaistumkopšanas salons
4gym.net
Sporta klubi
4guards.net
Apsardzes uzņēmumi
4softvet.net
Veterinārās klīnikas
4softauto.net
Programmatūra auto biznesam
4construct.net
Būvniecības uzņēmumi
4marketplace.net
Tirdzniecības platforma
4shopy.net
Interneta veikals
4pricing.net
Cenu salīdzināšana
4salefood.net
Ēdiena piegāde
4rentify.net
Noma
4transports.net
Transports
4agencytravel.net
Ceļojumu aģentūra
4hotel.net
Viesnīcu vadība
4ong.net
NVO pārvaldība