ClickHouse — alustan teknologiapinon reaaliaikainen analytiikkamoottori
4buildsiten teknologiapinoon kuuluu ClickHouse — sarakepohjainen tietokanta, joka on rakennettu erityisesti suurten tietomäärien analysointiin. Sen päälle rakennamme alustan liikenne- ja myyntitilastojen moduulia (kehitteillä): tiedot pysyvät sinun omanasi, raportit päivittyvät keräyksen mukana, ja keräys on erotettu sivuja tarjoavasta järjestelmästä.
Mikä ClickHouse on ja miksi käytämme sitä
ClickHouse on sarakepohjainen OLAP-tietokanta (online-analyysi), jonka Yandex kehitti Yandex.Metricaa varten — yhtä maailman suurimmista verkkoanalytiikkajärjestelmistä — ja julkaisi avoimena lähdekoodina vuonna 2016 Apache 2.0 -lisenssillä. Se on rakennettu yhtä asiaa varten, jonka se tekee poikkeuksellisen hyvin: nopeaan aggregointiin valtavilla tietomäärillä. 4buildsiten arkkitehtuurissa ClickHouse on tilastokerroksen moottori: jokaisesta käynnistä, klikkauksesta ja tilauksesta tulee tapahtuma, jota voi analysoida.
Salaisuus on sarakkeittainen tallennus: sen sijaan, että koko ”rivi” luettaisiin kerrallaan, ClickHouse lukee vain ne sarakkeet, joita raportti tarvitsee, ja käsittelee ne vektoroidusti suurissa lohkoissa. Siksi kysymykseen ”kuinka monta kävijää meillä oli eilen, sivu sivulta, lähteittäin” saa vastauksen alle sekunnissa miljoonien tapahtumien yli — perinteinen rivipohjainen tietokanta selviää siitä paljon hankalammin.
Kyse ei ole kapea-alaisesta teknologiasta: Cloudflare käyttää sitä HTTP-liikenteen analysointiin maailmanlaajuisessa mittakaavassa, ja Uber, eBay ja Spotify käyttävät sitä analytiikkaan ja lokien käsittelyyn valtavilla tietomäärillä. 4buildsitessa sama moottori on osa alustan teknologiapinoa — ilman että sinun tarvitsee palkata datainsinöörien tiimiä.
Reaaliaikaiset tilastot hidastamatta sivustoasi — näin moduuli on suunniteltu
Alustan tilastomoduuli on kehitteillä, ja sen arkkitehtuuri on yksinkertainen: liikennetapahtumat kerätään asynkronisesti ja kirjoitetaan ClickHouseen täysin erillään sivuja tarjoavista palvelimista. Raportit ajetaan omassa kerroksessaan. Mitään raskasta kolmannen osapuolen seurantaskriptiä, joka pilaisi suorituskykypisteesi, ei ole — keräys on minimaalista ja ensimmäisen osapuolen.
panel.4buildsite.net-hallintapaneelin raportit lasketaan suoraan ClickHousessa: sivukohtainen liikenne, kävijälähteet, konversiot, tuotekohtainen myynti. Usein tarvittavat aggregaatit lasketaan etukäteen materialized view -näkymillä jokaisen kirjoituksen yhteydessä, joten kojelauta näyttää valmiiksi lasketut luvut — raskasta laskentaa ei käynnistetä joka kerta, kun katsot sitä.
- Liikenne: käynnit, sivut, lähteet ja laitteet — kyseltävissä keräyksen jälkeen
- Tuotekohtainen myynti, tilaukset ja konversiot verkkokaupallesi, aggregoituna alle sekunnissa
- Kuukausien ja vuosien historia pienellä kustannuksella — sarakepakkaus pienentää tallennustilan moninkertaisesti raakadataan verrattuna
- Keräys on asynkronista, raportointi pyörii toisessa järjestelmässä
PostgreSQL + ClickHouse: miksi käytämme molempia
Alustan teknologiapino yhdistää kaksi tietokantaa, koska ne tekevät pohjimmiltaan eri asioita. PostgreSQL on transaktiorekisteri (OLTP): tilaukset, maksut, varasto, käyttäjätilit — toimintoja, joiden on oltava täysin oikein yksi kerrallaan, transaktiotakuin. ClickHouse on analyysisali (OLAP): miljoonia tapahtumia luetaan kerralla, jotta saat vastauksia liikennettä ja myyntiä koskeviin kysymyksiin.
Jos raskaat raportit ajettaisiin samassa tietokannassa, joka käsittelee tilauksia, jokainen raportti kilpailisi sillä hetkellä maksavien asiakkaiden kanssa. OLTP/OLAP-erottelu poistaa tämän ristiriidan: asiakkaan tilaus ei odota raporttiasi, eikä raporttisi odota muiden tilauksia. Kumpikin moottori tekee täsmälleen sen, mihin se on rakennettu.
- PostgreSQL: tilaukset, Stripe-maksut, varasto, asiakkaat — transaktioiden oikeellisuus
- ClickHouse: liikennetapahtumat, raportit, tilastot — aggregointi suurella volyymillä
- Suunnitelman mukaan olennainen transaktiodata päätyy ClickHouseen tapahtumina, joten myyntiraportit eivät koskaan koske kauppaa palvelevaan kantaan
Oma, yksityisyyttä kunnioittava analytiikka — Google Analyticsin sijaan
Tilastomoduulin periaate: sivustosi data pysyy alustan infrastruktuurissa. Sitä ei lähetetä Googlelle tai muille mainosverkostoille, sitä ei myydä eikä yhdistetä ulkopuolisiin käyttäjäprofiileihin. Tämä on ensimmäisen osapuolen analytiikkaa sanan varsinaisessa merkityksessä: tiedot kävijöistäsi ovat sinun.
Koska toteutus ei käytä kolmannen osapuolen seurantaevästeitä, GDPR-vaatimustenmukaisuus yksinkertaistuu huomattavasti. Tausta on olennainen: vuonna 2022 Itävallan, Ranskan ja Italian tietosuojaviranomaiset julistivat Google Analyticsin käytön GDPR:n vastaiseksi tietojen Yhdysvaltoihin siirtämisen vuoksi. Omalla, Euroopassa isännöidyllä analytiikalla tämä riskiluokka poistuu alusta alkaen.
On myös suora käytännön hyöty: ClickHousessa lasketut raportit eivät ole otantaan perustuvia eivätkä saavu tuntien viiveellä, kuten ilmaisten analytiikkatyökalujen vakioraporteissa tapahtuu. Luvut ovat täydet.
Verkkokaupan ja markkinapaikan raportit — mitä moduuli tuo mukanaan
Verkkokaupalle ClickHouse tarkoittaa välittömiä vastauksia olennaisiin kysymyksiin: mitä tuotteita myydään, mistä ostavat asiakkaat tulevat, missä ostoskorit hylätään. Usean myyjän markkinapaikalla samat aggregoinnit ajetaan kaikkien tilausten yli: myyjäkohtainen volyymi, provisiot, kategorian myydyimmät tuotteet — ilman manuaalisia vientejä ja laskentataulukoita.
Myös mittakaavassa asiat pysyvät edullisina. Sarakepakkaus pienentää datan moninkertaisesti raakamuotoon verrattuna, joten säilytät vuosien historiaa pienellä tallennuskustannuksella. Ja kun liikenne kasvaa tuhansista miljooniin tapahtumiin, moottori on suunniteltu alusta alkaen miljardeille riveille, ei mukautettu jälkikäteen.
Edut ja rajoitukset
Edut
- Miljoonien tapahtumien aggregoinnit alle sekunnissa.
- Analytiikka pyörii sivuja tarjoavasta järjestelmästä erillään.
- Liikennedata pysyy sinun omanasi alustan infrastruktuurissa — ei siirtoa Googlelle tai mainosverkostoille.
- Ei kolmannen osapuolen seurantaevästeitä — GDPR-vaatimustenmukaisuus on helpompaa.
- Tehokas sarakepakkaus — vuosien historia pienellä tallennuskustannuksella.
- Avoin lähdekoodi (Apache 2.0), ei volyymiperusteisia lisenssejä — kustannukset eivät räjähdä liikenteen kasvaessa.
Rajoitukset
- Ei ole transaktiotietokanta — yksittäisten rivien muuttaminen tai poistaminen on raskas operaatio; siksi tilaukset ja maksut ovat PostgreSQL:ssä.
- Optimoitu suurille eräkirjoituksille; monet pienet ja tiheät lisäykset vaativat eräajoa (batching) — alusta hoitaa tämän, mutta se on moottorin todellinen rajoitus.
- Monimutkaiset JOIN-operaatiot ovat vähemmän joustavia kuin PostgreSQL:ssä — tapahtumaskeema on suunniteltava analyysia varten alusta alkaen.
- Yksittäisen rivin haku (point lookup) on hitaampaa kuin indeksoidussa OLTP-kannassa — se ei korvaa kaupan pääasiallista tietokantaa.
Lyhyt yhteenveto
ClickHouse on oikea valinta analytiikkaan suurella volyymillä: reaaliaikaiset liikenne- ja myyntitilastot omalla datallasi erillään sivustosta. Tilauksille, maksuille ja varastolle PostgreSQL pysyy valintana — siksi 4buildsiten teknologiapino yhdistää molemmat, kumpikin siihen, missä on parhaimmillaan. ClickHouseen rakennettu tilastomoduuli on kehitteillä.
Tekniset tiedot
| Ominaisuus | Raja / kynnys | Tyypillinen käyttö | |
|---|---|---|---|
| Analyyttiset aggregoinnit | Alle sekunti miljoonilla tapahtumilla (sarakepohjainen + vektoroitu) | Hidas yksittäisen rivin haussa — ei OLTP-hakuihin | Liikenne- ja myyntiraportit (tilastomoduuli, kehitteillä) |
| Tapahtumien vastaanotto | Suuret volyymit, kirjoitettuna erinä | Pienet ja tiheät lisäykset vaativat batchingia / async insertiä | Sivunäyttöjen, klikkausten ja tilausten keräys |
| Tallennus ja pakkaus | Sarakepakkaus (LZ4/ZSTD), moninkertaisesti raakavolyymia pienempi | Hyvin satunnainen data pakkautuu heikommin | Kuukausien ja vuosien tapahtumahistoria pienellä kustannuksella |
| Päivitykset ja poistot | Asynkroniset mutaatiot (mutations) satunnaisiin korjauksiin | Ei sovellu tiheisiin yksittäisten rivien UPDATE-operaatioihin | GDPR-poistot (käyttäjän tiedot pyynnöstä) |
| Materialized views | Etukäteen lasketut aggregaatit jokaisen kirjoituksen yhteydessä | Aggregaatit on määriteltävä etukäteen raporttikohtaisesti | Kojelaudat: myynti päivittäin, tuotteittain, lähteittäin |
| Reaaliaika | Tapahtumat ovat kyseltävissä keräyksen jälkeen | Ei ole millisekuntitason suoratoistojärjestelmä | Live-liikenne- ja konversiotilastot |
ClickHouse vs PostgreSQL vs Google Analytics / BigQuery — analytiikkaan
| Kriteeri | ClickHouse (4buildsite) | PostgreSQL (analytiikkaan) | Google Analytics / BigQuery |
|---|---|---|---|
| Aggregointinopeus suurella volyymillä | Alle sekunti miljoonilla riveillä | Hidastuu selvästi kymmenillä miljoonilla riveillä (rivipohjainen tallennus) | BigQuery nopea; GA4:ssä esiaggregoidut vakioraportit, ei vapaita kyselyitä |
| Datan omistus / GDPR | Sinun datasi, alustan infrastruktuurissa, Euroopassa | Sinun datasi, omilla palvelimillasi | Data Googlella; GA-siirrot Yhdysvaltoihin EU-viranomaiset julistivat GDPR:n vastaisiksi vuonna 2022 |
| Evästeet ja suostumus | Ei kolmannen osapuolen seurantaevästeitä | Riippuu omasta toteutuksesta | Seuranta vaatii suostumusbannerin |
| Reaaliaika | Data kyseltävissä keräyksen jälkeen | Mahdollista, mutta raskaat raportit kuormittavat transaktiokantaa | GA4:n vakioraportit voivat viivästyä tunteja; BigQuery-suoratoisto maksaa lisää |
| Kustannus volyymillä | Avoin lähdekoodi — kustannus on vain infrastruktuuri, sisältyy tilaukseen | Kasvaa indeksien, vacuumin ja laitteiston myötä suurilla volyymeillä | BigQuery veloittaa kyselyn volyymin mukaan; GA:n enterprise-versio on kallis |
| Vaikutus sivuston nopeuteen | Asynkroninen keräys, raportointi erillisessä järjestelmässä | Raportit voivat kilpailla tilausten kanssa samassa kannassa | Kolmannen osapuolen skripti (gtag.js) sivulla — ylimääräistä JavaScriptiä ja ulkoisia pyyntöjä |
Usein kysytyt kysymykset
Hidastaako ClickHouse sivustoani tai verkkokauppaani?
Ei. ClickHouse pyörii sivuja tarjoavasta järjestelmästä erillään — arkkitehtuuri on suunniteltu niin. Liikennetapahtumat lähetetään asynkronisesti, eivätkä raportit koske koskaan kaupan tietokantaan.
Miksi ette käytä vain Google Analyticsia?
Kolme syytä. Data pysyy sinun omanasi alustan infrastruktuurissa, ei Googlella. Et tarvitse kolmannen osapuolen seurantaevästeitä, joten GDPR-vaatimustenmukaisuus on helpompaa — vuonna 2022 Itävallan, Ranskan ja Italian viranomaiset julistivat GA:n GDPR:n vastaiseksi. Ja raportit ovat täydellisiä, ei otannalla tai tuntien viiveellä.
Mitä eroa on ClickHousella ja PostgreSQL:llä — miksi molemmat?
PostgreSQL on transaktiotietokanta (OLTP): se käsittelee tilaukset, maksut ja varaston yksi kerrallaan oikeellisuustakuin. ClickHouse on analytiikkatietokanta (OLAP): se lukee miljoonia tapahtumia kerralla raportteja varten. Erottelun ansiosta raportit ajetaan erillään asiakkaidesi tilauksista.
Ovatko liikennedatani turvassa ja GDPR-yhteensopivia?
Kyllä — suunnittelun kautta. Tilastot ovat ensimmäisen osapuolen dataa: ne pysyvät alustan infrastruktuurissa Euroopassa, niitä ei myydä eikä jaeta mainosverkostoille. Toteutus ei käytä kolmannen osapuolen seurantaevästeitä, ja käyttäjän tiedot voidaan poistaa pyynnöstä GDPR:n mukaisesti.
Kuinka ”reaaliaikaisia” tilastot ovat?
Tapahtuma — käynti, klikkaus, tilaus — tulee kyseltäväksi raporteissa keräyksen jälkeen. Pitkien ajanjaksojen (kuukaudet, vuodet) aggregoinnit tehdään ClickHousella, joka on rakennettu juuri tällaisia kyselyitä varten.
Pitääkö minun määrittää jotain saadakseni tilastoja sivustolleni?
Ei tarvitse. Tilastomoduuli on kehitteillä ja rakennetaan osaksi alustaa: kun se aktivoituu hallintapaneelissa, keräys käynnistyy automaattisesti julkaistuille sivustoille — ilman asennettavia skriptejä ja ulkoisia tilejä.