ClickHouse — analytický engine v reálnom čase v stacku platformy
Stack 4buildsite zahŕňa ClickHouse — stĺpcovú databázu postavenú špeciálne na analýzu pri veľkom objeme. Na nej stavíme modul štatistík návštevnosti a predaja platformy (vo vývoji): dáta zostávajú vaše a zber udalostí je oddelený od doručovania webu — tak je navrhnutá architektúra.
Čo je ClickHouse a prečo ho používame
ClickHouse je stĺpcová databáza typu OLAP (online analytické spracovanie), vytvorená v Yandexe pre Yandex.Metrica — jeden z najväčších systémov webovej analytiky na svete — a v roku 2016 zverejnená ako open-source pod licenciou Apache 2.0. Je postavená na jedinú vec, ktorú robí výnimočne: rýchle agregácie nad obrovskými objemami dát. V architektúre 4buildsite je ClickHouse zvoleným enginom pre vrstvu štatistík: každá návšteva, klik a objednávka sa stáva udalosťou, ktorú možno analyzovať.
Tajomstvom je ukladanie po stĺpcoch: namiesto čítania každého celého „riadku“ číta ClickHouse iba stĺpce, ktoré report potrebuje, a spracúva ich vektorizovane, vo veľkých blokoch. Preto otázka typu „koľko návštevníkov sme mali včera, na každej stránke, z každého zdroja“ dostane odpoveď aj nad miliónmi udalostí — niečo, čo klasická riadkovo orientovaná databáza zvláda omnoho ťažšie.
Nie je to nišová technológia: Cloudflare ju používa na analýzu HTTP prevádzky v globálnom meradle a Uber, eBay a Spotify ju používajú na analytiku a spracovanie logov pri obrovských objemoch. Na 4buildsite je rovnaký engine súčasťou stacku platformy — bez toho, aby ste museli zamestnať tím dátových inžinierov.
Štatistiky v reálnom čase mimo doručovania vášho webu — ako je modul navrhnutý
Modul štatistík platformy je vo vývoji a jeho architektúra je jednoduchá: udalosti prevádzky sa zbierajú asynchrónne a zapisujú do ClickHouse, úplne oddelene od serverov, ktoré doručujú stránky. Zber údajov beží oddelene od doručovania stránok. Neexistuje ťažký tracking skript tretej strany — zber je minimálny a first-party.
Reporty v panel.4buildsite.net sa budú počítať priamo v ClickHouse: návštevnosť stránok, zdroje návštevníkov, konverzie, predaj podľa produktu. Časté agregácie sa vopred počítajú cez materialized views pri každom zápise, takže dashboard nemusí pri každom zobrazení spúšťať ťažký výpočet.
- Návštevnosť naživo: návštevy, stránky, zdroje a zariadenia — dostupné na dotazovanie po zbere
- Predaj podľa produktu, objednávky a konverzie vášho e-shopu, agregované pre reporty
- História na mesiace a roky pri nízkych nákladoch — stĺpcová kompresia znižuje úložisko niekoľkonásobne oproti surovým dátam
- Zber je mimo doručovania webu: je asynchrónny, reportovanie beží na inom systéme
PostgreSQL + ClickHouse: prečo používame obe
Stack platformy kombinuje dve databázy, pretože robia zásadne odlišné veci. PostgreSQL je register transakcií (OLTP): objednávky, platby, zásoby, používateľské účty — operácie, ktoré musia byť dokonale správne jedna po druhej, s transakčnými zárukami. ClickHouse je analytická sála (OLAP): milióny udalostí čítaných naraz, aby odpovedali na otázky o návštevnosti a predaji.
Ak by ťažké reporty bežali na tej istej databáze, ktorá spracúva objednávky, každý report by súperil so zákazníkmi, ktorí práve platia. Oddelenie OLTP/OLAP tento konflikt odstraňuje: objednávka zákazníka nekonkuruje s vaším reportom a váš report nekonkuruje s objednávkami iných. Každý engine robí presne to, na čo bol postavený.
- PostgreSQL: objednávky, platby Stripe, zásoby, zákazníci — transakčná správnosť
- ClickHouse: udalosti návštevnosti, reporty, štatistiky — agregácia pri veľkom objeme
- Dizajn počíta s tým, že relevantné transakčné dáta sa do ClickHouse dostanú ako udalosti, takže reporty predaja sa nikdy nedotknú databázy, ktorá obsluhuje e-shop
Vlastná analytika šetrná k súkromiu — namiesto Google Analytics
Princíp modulu štatistík: dáta vášho webu zostávajú na infraštruktúre platformy. Neodosielajú sa Googlu ani iným reklamným sieťam, nepredávajú sa a nekombinujú sa s externými profilmi používateľov. Je to analytics first-party v pravom zmysle: dáta o vašich návštevníkoch sú vaše.
Keďže prístup nepoužíva cookies tretích strán na tracking, súlad s GDPR je omnoho jednoduchší. Kontext je dôležitý: v roku 2022 úrady na ochranu údajov v Rakúsku, vo Francúzsku a v Taliansku vyhlásili používanie Google Analytics za nesúladné s GDPR z dôvodu prenosov dát do USA. S vlastnou analytikou hosťovanou v Európe táto kategória rizika zaniká hneď od začiatku.
Existuje aj priamy praktický prínos: reporty počítané v ClickHouse nie sú vzorkované, na rozdiel od štandardných reportov v bezplatných analytických nástrojoch. Kompletné čísla.
Reporty e-shopu a marketplacu — čo modul prinesie
Pre e-shop bude ClickHouse znamenať odpovede na otázky, na ktorých záleží: aké produkty sa predávajú, z akých zdrojov prichádzajú zákazníci, ktorí nakupujú, kde sa opúšťajú košíky. Pre multi-vendor marketplace budú rovnaké agregácie bežať nad všetkými objednávkami: objem na predajcu, provízie, top produkty podľa kategórie — bez manuálnych exportov a bez tabuliek.
A aj vo veľkom meradle zostáva úložisko lacné. Stĺpcová kompresia zmenšuje dáta niekoľkonásobne oproti surovému formátu, takže históriu na roky uchováte pri nízkych nákladoch na úložisko. A keď návštevnosť rastie z tisícov na milióny udalostí, engine stále zvláda agregácie — bol od začiatku navrhnutý pre miliardy riadkov, nie dodatočne prispôsobený.
Výhody a obmedzenia
Výhody
- Agregácie nad miliónmi udalostí — reporty počítané enginom navrhnutým na analýzu veľkých objemov.
- Zber údajov je oddelený od systému, ktorý servíruje stránky: analytika beží na samostatnom systéme.
- Dáta o návštevnosti zostávajú vaše, na infraštruktúre platformy — bez prenosu Googlu alebo reklamným sieťam.
- Bez cookies tretích strán na tracking — jednoduchší súlad s GDPR.
- Silná stĺpcová kompresia — história na roky pri nízkych nákladoch na úložisko.
- Open-source (Apache 2.0), bez licencií podľa objemu — náklady nevybuchnú, keď rastie návštevnosť.
Obmedzenia
- Nie je to transakčná databáza — úprava alebo mazanie jednotlivých riadkov je náročná operácia; preto objednávky a platby ostávajú v PostgreSQL.
- Optimalizovaná na zápisy vo veľkých dávkach; množstvo malých a častých insertov vyžaduje batching — platforma to rieši, no je to skutočné obmedzenie enginu.
- Zložité JOINy sú menej flexibilné než v PostgreSQL — schému udalostí treba od začiatku navrhnúť pre analýzu.
- Vyhľadanie jediného riadku (point lookup) je pomalšie než v indexovanej OLTP databáze — nenahrádza hlavnú databázu e-shopu.
Stručné zhrnutie
ClickHouse je správna voľba pre analytiku pri veľkom objeme: štatistiky návštevnosti a predaja v reálnom čase, s vašimi dátami, bez zásahu do doručovania webu. Pre objednávky, platby a zásoby zostáva PostgreSQL — preto stack 4buildsite kombinuje obe, každú v tom, v čom je najlepšia. Modul štatistík postavený na ClickHouse je vo vývoji.
Tabuľka špecifikácií
| Schopnosť | Limit / prah | Typické použitie | |
|---|---|---|---|
| Analytické agregácie | Pod sekundu nad miliónmi udalostí (stĺpcovo + vektorizovane) | Pomalé pri vyhľadaní jediného riadku — nie je pre OLTP lookupy | Reporty návštevnosti a predaja (modul štatistík, vo vývoji) |
| Ingestia udalostí | Veľké objemy, zapisované v dávkach | Malé a časté inserty vyžadujú batching / async insert | Zber pageview, klikov, objednávok |
| Ukladanie a kompresia | Stĺpcová kompresia (LZ4/ZSTD), niekoľkonásobne pod surovým objemom | Veľmi náhodné dáta sa komprimujú menej | História udalostí na mesiace a roky pri nízkych nákladoch |
| Aktualizácie a mazanie | Asynchrónne mutations pre občasné opravy | Nevhodné pre časté UPDATE na jednotlivých riadkoch | Mazanie podľa GDPR (dáta používateľa na požiadanie) |
| Materialized views | Vopred počítané agregáty pri každom zápise | Agregáty sa musia definovať vopred, pre každý report | Dashboardy: predaj podľa dňa, produktu, zdroja |
| Reálny čas | Udalosti sú dostupné na dotazovanie po tom, ako nastanú | Nie je to streamingový systém na úrovni milisekúnd | Štatistiky návštevnosti a konverzií naživo |
ClickHouse vs PostgreSQL vs Google Analytics / BigQuery — pre analytiku
| Kritérium | ClickHouse (4buildsite) | PostgreSQL (pre analytiku) | Google Analytics / BigQuery |
|---|---|---|---|
| Rýchlosť agregácií pri veľkom objeme | Pod sekundu nad miliónmi riadkov | Citeľne klesá pri desiatkach miliónov riadkov (riadkové ukladanie) | BigQuery rýchly; GA4 má štandardné vopred agregované reporty, bez voľných dotazov |
| Vlastníctvo dát / GDPR | Vaše dáta, na infraštruktúre platformy, v Európe | Vaše dáta, na vašich serveroch | Dáta u Googlu; prenosy GA do USA vyhlásené úradmi EÚ v roku 2022 za nesúladné s GDPR |
| Cookies a súhlas | Bez cookies tretích strán na tracking | Závisí od vlastnej implementácie | Vyžaduje consent banner pre tracking |
| Reálny čas | Dáta dostupné na dotazovanie po zápise | Možné, no ťažké reporty zaťažujú transakčnú databázu | Štandardné reporty GA4 sa môžu objaviť s oneskorením niekoľkých hodín; streaming BigQuery stojí navyše |
| Náklady pri veľkom objeme | Open-source — náklady tvorí iba infraštruktúra, zahrnutá v predplatnom | Rastú s indexmi, vacuum a hardvérom pri veľkých objemoch | BigQuery účtuje podľa objemu dotazovaných dát; enterprise variant GA je nákladný |
| Vplyv na rýchlosť webu | Nulový — asynchrónny zber, reportovanie na samostatnom systéme | Reporty môžu súperiť s objednávkami na tej istej databáze | Skript tretej strany (gtag.js) na stránke — navyše JavaScript a externé požiadavky |
Často kladené otázky
Spomaľuje ClickHouse môj web alebo e-shop?
Nie. ClickHouse beží na systéme oddelenom od toho, ktorý servíruje stránky — tak je navrhnutá architektúra. Udalosti návštevnosti sa odosielajú asynchrónne a reporty sa nikdy nedotknú databázy e-shopu. Doručovanie webu nezávisí od toho, či sú štatistiky otvorené.
Prečo jednoducho nepoužívate Google Analytics?
Z troch dôvodov. Dáta zostávajú vaše, na infraštruktúre platformy, nie u Googlu. Nepotrebujete cookies tretích strán na tracking, takže súlad s GDPR je jednoduchší — v roku 2022 úrady v Rakúsku, vo Francúzsku a v Taliansku vyhlásili GA za nesúladné s GDPR. A reporty sú kompletné, nie vzorkované.
Aký je rozdiel medzi ClickHouse a PostgreSQL — prečo obe?
PostgreSQL je transakčná databáza (OLTP): spracúva objednávky, platby a zásoby, jednu po druhej, so zárukami správnosti. ClickHouse je analytická databáza (OLAP): číta milióny udalostí naraz pre reporty. Oddelenie znamená, že ťažký report nezasahuje do objednávok vašich zákazníkov.
Sú moje dáta o návštevnosti v bezpečí a v súlade s GDPR?
Áno — návrhom. Štatistiky sú first-party: sú na infraštruktúre platformy, v Európe, nepredávajú sa a nezdieľajú sa s reklamnými sieťami. Prístup nepoužíva cookies tretích strán na tracking a dáta používateľa možno na požiadanie vymazať v súlade s GDPR.
Nakoľko sú štatistiky „v reálnom čase“?
Udalosť — návšteva, klik, objednávka — sa v reportoch objaví po tom, ako nastane. Agregácie za dlhé obdobia (mesiace, roky) sa tiež spracúvajú efektívne, pretože ClickHouse bol postavený presne na tento typ dotazov.
Musím niečo nastavovať, aby som mal štatistiky na svojom webe?
Nebude to potrebné. Modul štatistík je vo vývoji a je postavený ako súčasť platformy: keď sa aktivuje v administračnom paneli, zber sa automaticky spustí pre publikované weby — bez skriptov na inštaláciu a bez externých účtov.