ClickHouse — analytický engine v reálném čase v stacku platformy
Stack 4buildsite zahrnuje ClickHouse — sloupcovou databázi vytvořenou speciálně pro analýzu ve velkém objemu. Na ní stavíme modul statistik návštěvnosti a prodejů platformy (ve vývoji): data zůstávají vaše, reporty běží na systému odděleném od webu — tak je architektura navržena.
Co je ClickHouse a proč ho používáme
ClickHouse je sloupcová databáze typu OLAP (online analytical processing), vytvořená ve společnosti Yandex pro Yandex.Metrica — jeden z největších systémů webové analytiky na světě — a v roce 2016 zveřejněná jako open source pod licencí Apache 2.0. Je postavená na jedinou věc, kterou dělá výjimečně: rychlé agregace nad obrovskými objemy dat. V architektuře 4buildsite je ClickHouse enginem zvoleným pro vrstvu statistik: každá návštěva, klik i objednávka se stává událostí, kterou lze analyzovat.
Tajemstvím je sloupcové ukládání: místo čtení každého celého „řádku“ čte ClickHouse jen sloupce, které report potřebuje, a zpracovává je vektorizovaně, ve velkých blocích. Proto otázka typu „kolik návštěvníků jsme měli včera, na jednotlivých stránkách, z jednotlivých zdrojů“ dostane odpověď i nad miliony událostí — něco, s čím se klasická řádková databáze potýká mnohem hůře.
Není to nišová technologie: Cloudflare ji používá pro analýzu HTTP provozu v globálním měřítku a Uber, eBay a Spotify ji využívají pro analytiku a zpracování logů v obrovských objemech. Na 4buildsite je stejný engine součástí stacku platformy — bez nutnosti najímat tým datových inženýrů.
Statistiky v reálném čase — jak je modul navržen
Modul statistik platformy je ve vývoji a jeho architektura je jednoduchá: události provozu se sbírají asynchronně a zapisují do ClickHouse, zcela odděleně od serverů, které doručují stránky. Neexistuje těžký skript třetí strany pro tracking, který by stránku zatěžoval — sběr je minimální a first-party.
Reporty v panel.4buildsite.net se budou počítat přímo v ClickHouse: návštěvnost stránek, zdroje návštěvníků, konverze, prodeje podle produktu. Časté agregace se předpočítávají pomocí materialized views při každém zápisu — dashboard nespouští náročný výpočet pokaždé, když se na něj podíváte.
- Živá návštěvnost: návštěvy, stránky, zdroje a zařízení — dotazovatelné po sběru
- Prodeje podle produktu, objednávky a konverze vašeho e-shopu, agregované z událostí
- Historie na měsíce a roky za nízkou cenu — sloupcová komprese snižuje úložiště několikanásobně oproti surovým datům
- Oddělení od webu: sběr je asynchronní, reporting běží na jiném systému
PostgreSQL + ClickHouse: proč používáme obojí
Stack platformy kombinuje dvě databáze, protože dělají zásadně odlišné věci. PostgreSQL je transakční registr (OLTP): objednávky, platby, zásoby, uživatelské účty — operace, které musí být dokonale správné jedna po druhé, s transakčními zárukami. ClickHouse je analytický sál (OLAP): miliony událostí načtených najednou, aby odpověděly na otázky o návštěvnosti a prodejích.
Kdyby těžké reporty běžely na stejné databázi, která zpracovává objednávky, každý report by soupeřil se zákazníky, kteří právě platí. Oddělení OLTP/OLAP tento konflikt odstraňuje: objednávka zákazníka nečeká na váš report a váš report nečeká na objednávky ostatních. Každý engine dělá přesně to, k čemu byl postaven.
- PostgreSQL: objednávky, platby Stripe, zásoby, zákazníci — transakční správnost
- ClickHouse: události návštěvnosti, reporty, statistiky — agregace ve velkém objemu
- Návrh počítá s tím, že relevantní transakční data se do ClickHouse dostanou jako události, takže reporty prodejů se nikdy nedotknou databáze, která obsluhuje e-shop
Vlastní analytika šetrná k soukromí — místo Google Analytics
Princip modulu statistik: data vašeho webu zůstávají na infrastruktuře platformy. Neodesílají se Googlu ani jiným reklamním sítím, neprodávají se a nekombinují s externími profily uživatelů. Je to first-party analytika v pravém slova smyslu: data o vašich návštěvnících jsou vaše.
Protože tento přístup nepoužívá cookies třetích stran pro tracking, je soulad s GDPR mnohem jednodušší. Kontext je důležitý: v roce 2022 úřady pro ochranu údajů v Rakousku, Francii a Itálii prohlásily používání Google Analytics za nesouladné s GDPR kvůli přenosům dat do USA. S vlastní analytikou hostovanou v Evropě tato kategorie rizika od začátku odpadá.
Existuje i přímý praktický přínos: reporty počítané v ClickHouse nejsou vzorkované. Kompletní čísla.
Reporty pro e-shop a marketplace — co modul dodá
Pro online obchod bude ClickHouse znamenat odpovědi na otázky, na kterých záleží: které produkty se prodávají, z jakých zdrojů přicházejí zákazníci, kteří nakupují, kde se opouštějí košíky. U multi-vendor marketplace poběží stejné agregace nad všemi objednávkami: objem podle prodejce, provize, nejlepší produkty v kategorii — bez ručních exportů a bez tabulek.
A ve velkém měřítku zůstává vše levné. Sloupcová komprese snižuje objem dat několikanásobně oproti surovému formátu, takže historii za roky uchováte za nízké náklady na úložiště. A když návštěvnost vyroste z tisíců na miliony událostí, engine byl od počátku navržen pro miliardy řádků, nebyl dodatečně upravován.
Výhody a omezení
Výhody
- Agregace nad miliony událostí — reporty z vlastních dat.
- Oddělení od webu: analytika běží na systému oddělném od toho, který servíruje stránky.
- Data o návštěvnosti zůstávají vaše, na infrastruktuře platformy — bez přenosu Googlu nebo reklamním sítím.
- Žádné cookies třetích stran pro tracking — jednodušší soulad s GDPR.
- Silná sloupcová komprese — historie za roky za nízké náklady na úložiště.
- Open source (Apache 2.0), bez licencí podle objemu — náklady nevybuchnou, když roste návštěvnost.
Omezení
- Není to transakční databáze — úprava nebo mazání jednotlivých řádků je náročná operace; proto objednávky a platby leží v PostgreSQL.
- Optimalizováno pro zápisy ve velkých dávkách; mnoho malých častých insertů vyžaduje batching — platforma to řeší, ale je to skutečné omezení enginu.
- Složité JOINy jsou méně flexibilní než v PostgreSQL — schéma událostí je třeba od začátku navrhnout pro analýzu.
- Vyhledání jednoho řádku (point lookup) je pomalejší než v indexované OLTP databázi — nenahrazuje hlavní databázi e-shopu.
Stručný verdikt
ClickHouse je správná volba pro analytiku ve velkém objemu: statistiky návštěvnosti a prodejů v reálném čase, s vašimi daty. Pro objednávky, platby a zásoby zůstává PostgreSQL — proto je stack 4buildsite kombinuje oba, každý v tom, v čem je nejlepší. Modul statistik postavený na ClickHouse je ve vývoji.
Tabulka specifikací
| Schopnost | Limit / práh | Typické použití | |
|---|---|---|---|
| Analytické agregace | Pod sekundu nad miliony událostí (sloupcově + vektorizovaně) | Pomalé při vyhledání jednoho řádku — není pro OLTP lookupy | Reporty návštěvnosti a prodejů (modul statistik, ve vývoji) |
| Příjem událostí | Velké objemy, zapisované v dávkách | Malé časté inserty vyžadují batching / async insert | Sběr zobrazení stránek, kliků, objednávek |
| Úložiště a komprese | Sloupcová komprese (LZ4/ZSTD), několikrát pod objemem surových dat | Velmi náhodná data se komprimují méně | Historie událostí na měsíce a roky, za nízké náklady |
| Aktualizace a mazání | Asynchronní mutations pro příležitostné opravy | Nevhodné pro časté UPDATE na jednotlivých řádcích | Mazání dle GDPR (data uživatele na žádost) |
| Materialized views | Předpočítané agregáty při každém zápisu | Agregáty je třeba definovat předem, pro každý report | Okamžité dashboardy: prodeje podle dne, produktu, zdroje |
| Reálný čas | Události jsou dotazovatelné poté, co nastanou | Není to streamingový systém na úrovni milisekund | Živé statistiky návštěvnosti a konverzí |
ClickHouse vs. PostgreSQL vs. Google Analytics / BigQuery — pro analytiku
| Kritérium | ClickHouse (4buildsite) | PostgreSQL (pro analytiku) | Google Analytics / BigQuery |
|---|---|---|---|
| Rychlost agregací ve velkém objemu | Pod sekundu nad miliony řádků | Výrazně klesá u desítek milionů řádků (řádkové úložiště) | BigQuery rychlý; GA4 má předagregované standardní reporty, bez volných dotazů |
| Vlastnictví dat / GDPR | Vaše data, na infrastruktuře platformy, v Evropě | Vaše data, na vašich serverech | Data u Googlu; přenosy GA do USA označily úřady EU v roce 2022 za nesouladné s GDPR |
| Cookies a souhlas | Bez cookies třetích stran pro tracking | Závisí na vlastní implementaci | Vyžaduje souhlasový banner pro tracking |
| Reálný čas | Data dotazovatelná po sběru | Možné, ale těžké reporty zatěžují transakční databázi | Standardní reporty GA4 se mohou zobrazit se zpožděním hodin; streaming BigQuery stojí navíc |
| Náklady ve velkém objemu | Open source — náklady tvoří jen infrastruktura, zahrnutá v předplatném | Rostou s indexy, vacuum a hardwarem při velkých objemech | BigQuery účtuje podle objemu dotazovaných dat; enterprise varianta GA je nákladná |
| Dopad na rychlost webu | Oddělený — asynchronní sběr, reporting na samostatném systému | Reporty mohou soupeřit s objednávkami na stejné databázi | Skript třetí strany (gtag.js) na stránce — navíc JavaScript a externí požadavky |
Často kladené otázky
Zpomaluje ClickHouse můj web nebo e-shop?
Ne. ClickHouse běží na systému oddělném od toho, který servíruje stránky — tak je architektura navržena. Události provozu se odesílají asynchronně a reporty se nikdy nedotknou databáze e-shopu.
Proč prostě nepoužíváte Google Analytics?
Ze tří důvodů. Data zůstávají vaše, na infrastruktuře platformy, ne u Googlu. Nepotřebujete cookies třetích stran pro tracking, takže je soulad s GDPR jednodušší — v roce 2022 úřady v Rakousku, Francii a Itálii prohlásily GA za nesouladné s GDPR. A reporty jsou kompletní, ne vzorkované.
Jaký je rozdíl mezi ClickHouse a PostgreSQL — proč obojí?
PostgreSQL je transakční databáze (OLTP): zpracovává objednávky, platby a zásoby jednu po druhé, se zárukami správnosti. ClickHouse je analytická databáze (OLAP): načítá miliony událostí najednou pro reporty. Oddělení znamená, že těžký report nezasahuje do objednávek vašich zákazníků.
Jsou moje data o návštěvnosti v bezpečí a v souladu s GDPR?
Ano — už z návrhu. Statistiky jsou first-party: leží na infrastruktuře platformy, v Evropě, neprodávají se a nesdílejí s reklamními sítěmi. Přístup nepoužívá cookies třetích stran pro tracking a data uživatele lze na žádost smazat v souladu s GDPR.
Jak moc jsou statistiky „v reálném čase“?
Událost — návštěva, klik, objednávka — se v reportech zobrazí poté, co nastane. Agregace za dlouhá období (měsíce, roky) odpovídají také, protože ClickHouse byl vytvořen právě pro tento typ dotazů.
Musím něco nastavovat, abych měl statistiky na webu?
Nebude třeba. Modul statistik je ve vývoji a je stavěn jako součást platformy: jakmile se aktivuje v administračním panelu, sběr se automaticky spustí pro publikované weby — bez skriptů k instalaci a bez externích účtů.