Technologie

← Strona główna
Analityka i dane

ClickHouse — silnik analityki w czasie rzeczywistym w stacku platformy

Stack 4buildsite obejmuje ClickHouse — kolumnową bazę danych stworzoną specjalnie do analizy dużych wolumenów. Na niej budujemy moduł statystyk ruchu i sprzedaży platformy (w budowie): dane pozostają Twoje, a zbieranie zdarzeń jest oddzielone od serwowania Twojej strony — tak zaprojektowano tę architekturę.

Czym jest ClickHouse i dlaczego go używamy

ClickHouse to kolumnowa baza danych typu OLAP (analiza w trybie online), stworzona w Yandeksie na potrzeby Yandex.Metrica — jednego z największych systemów analityki internetowej na świecie — i udostępniona jako otwarte oprogramowanie w 2016 roku na licencji Apache 2.0. Zbudowano ją do jednego zadania, które wykonuje wyjątkowo dobrze: szybkich agregacji na ogromnych wolumenach danych. W architekturze 4buildsite ClickHouse jest silnikiem wybranym do warstwy statystyk: każda wizyta, każde kliknięcie i każde zamówienie staje się zdarzeniem gotowym do analizy.

Sekret tkwi w przechowywaniu kolumnowym: zamiast czytać każdy „wiersz” w całości, ClickHouse czyta wyłącznie kolumny potrzebne raportowi i przetwarza je wektorowo, w dużych blokach. Dlatego pytanie w rodzaju „ilu miałem wczoraj odwiedzających, w podziale na strony i źródła” otrzymuje odpowiedź nawet przy milionach zdarzeń — z czym klasyczna baza wierszowa radzi sobie znacznie trudniej.

To nie jest technologia niszowa: Cloudflare wykorzystuje ją do analizy ruchu HTTP w skali globalnej, a Uber, eBay i Spotify — do analityki i przetwarzania logów przy ogromnych wolumenach. Na 4buildsite ten sam silnik stanowi część stacku platformy, bez potrzeby zatrudniania zespołu inżynierów danych.

Statystyki w czasie rzeczywistym poza serwowaniem strony — jak zaprojektowano moduł

Moduł statystyk platformy jest w budowie, a jego architektura jest prosta: zdarzenia ruchu zbiera się asynchronicznie i zapisuje w ClickHouse, całkowicie osobno od serwerów serwujących strony. Odwiedzający nie czekają na analitykę — zbieranie danych działa osobno od serwowania strony, więc liczenie raportów nie dotyka tego, co widzi odwiedzający. Nie ma ciężkiego skryptu śledzącego innej firmy, który obciążałby stronę — zbieranie danych jest minimalne i odbywa się w obrębie własnego serwisu.

Raporty w panel.4buildsite.net będą liczone bezpośrednio w ClickHouse: ruch na stronach, źródła odwiedzin, konwersje, sprzedaż według produktu. Częste agregacje są wyliczane z wyprzedzeniem przez widoki zmaterializowane przy każdym zapisie, więc pulpit nie uruchamia ciężkich obliczeń za każdym razem, gdy na niego patrzysz.

  • Ruch na żywo: wizyty, strony, źródła i urządzenia — dostępne do odpytania po zebraniu danych
  • Sprzedaż według produktu, zamówienia i konwersje Twojego sklepu, zagregowane na potrzeby raportów
  • Historia z miesięcy i lat niewielkim kosztem — kompresja kolumnowa zmniejsza zajętość pamięci kilkukrotnie wobec danych surowych
  • Zbieranie danych odbywa się poza serwowaniem strony: jest asynchroniczne, a raportowanie działa na innym systemie

PostgreSQL i ClickHouse: dlaczego używamy obu

Stack platformy łączy dwie bazy danych, ponieważ robią one zasadniczo różne rzeczy. PostgreSQL to rejestr transakcyjny (OLTP): zamówienia, płatności, stany magazynowe, konta użytkowników — operacje, które muszą być idealnie poprawne każda z osobna, z gwarancjami transakcyjnymi. ClickHouse to sala analiz (OLAP): miliony zdarzeń czytanych naraz, by odpowiedzieć na Twoje pytania o ruch i sprzedaż.

Gdyby ciężkie raporty działały na tej samej bazie, która obsługuje zamówienia, każdy raport konkurowałby z klientami płacącymi w danym momencie. Rozdzielenie OLTP i OLAP usuwa ten konflikt: zamówienie klienta nie czeka na Twój raport, a Twój raport nie czeka na cudze zamówienia. Każdy silnik robi dokładnie to, do czego go zbudowano.

  • PostgreSQL: zamówienia, płatności Stripe, stany magazynowe, klienci — poprawność transakcyjna
  • ClickHouse: zdarzenia ruchu, raporty, statystyki — agregacja przy dużych wolumenach
  • Projekt zakłada, że istotne dane transakcyjne trafiają do ClickHouse jako zdarzenia, więc raporty sprzedaży nigdy nie sięgają do bazy obsługującej sklep

Własna analityka przyjazna prywatności — zamiast Google Analytics

Zasada modułu statystyk: dane Twojej strony zostają na infrastrukturze platformy. Nie trafiają do Google'a ani do innych sieci reklamowych, nie są sprzedawane i nie są łączone z zewnętrznymi profilami użytkowników. To analityka własna w ścisłym sensie: dane o Twoich odwiedzających należą do Ciebie.

Ponieważ takie podejście nie używa zewnętrznych plików cookie śledzących, zgodność z RODO staje się znacznie prostsza. Kontekst ma znaczenie: w 2022 roku organy ochrony danych z Austrii, Francji i Włoch uznały korzystanie z Google Analytics za niezgodne z RODO ze względu na transfery danych do USA. Przy własnej analityce hostowanej w Europie ta kategoria ryzyka znika od samego początku.

Jest też bezpośrednia korzyść praktyczna: raporty liczone w ClickHouse nie są próbkowane ani opóźnione o godziny, jak bywa w standardowych raportach darmowych narzędzi analitycznych. Pełne liczby.

Raporty sklepu i marketplace'u — co dostarczy moduł

Dla sklepu internetowego ClickHouse będzie dawał odpowiedzi na pytania, które mają znaczenie: które produkty się sprzedają, z jakich źródeł przychodzą kupujący, gdzie porzucane są koszyki. Dla marketplace'u z wieloma sprzedawcami te same agregacje obejmą wszystkie zamówienia: wolumen według sprzedawcy, prowizje, najlepsze produkty w kategorii — bez ręcznych eksportów i bez arkuszy kalkulacyjnych.

Także przy dużej skali przechowywanie pozostaje tanie. Kompresja kolumnowa zmniejsza dane kilkukrotnie wobec formatu surowego, więc zachowujesz wieloletnią historię przy niewielkim koszcie przechowywania. A gdy ruch rośnie z tysięcy do milionów zdarzeń, silnik nadal obsługuje agregacje — od początku projektowano go dla miliardów wierszy, a nie dostosowywano później.

Zalety i ograniczenia

Zalety

  • Agregacje na milionach zdarzeń — raporty liczone przez silnik zaprojektowany pod analizę dużych wolumenów.
  • Zbieranie danych jest oddzielone od systemu, który serwuje strony: analityka działa na osobnym systemie.
  • Dane o ruchu pozostają Twoje, na infrastrukturze platformy — bez transferu do Google'a i sieci reklamowych.
  • Bez zewnętrznych plików cookie śledzących — prostsza zgodność z RODO.
  • Silna kompresja kolumnowa — wieloletnia historia przy niewielkim koszcie przechowywania.
  • Otwarty kod (Apache 2.0), bez licencji zależnych od wolumenu — koszt nie eksploduje, gdy rośnie ruch.

Ograniczenia

  • To nie jest baza transakcyjna — zmiana albo usunięcie pojedynczych wierszy to ciężka operacja; dlatego zamówienia i płatności zostają w PostgreSQL.
  • Zoptymalizowany pod zapisy w dużych partiach; wiele drobnych, częstych wstawień wymaga grupowania — platforma to obsługuje, ale pozostaje to realnym ograniczeniem silnika.
  • Złożone złączenia JOIN są mniej elastyczne niż w PostgreSQL — schemat zdarzeń trzeba zaprojektować pod analizę od samego początku.
  • Wyszukanie pojedynczego wiersza (point lookup) jest wolniejsze niż w indeksowanej bazie OLTP — to rozwiązanie nie zastępuje głównej bazy sklepu.

Krótki werdykt

ClickHouse to właściwy wybór do analityki dużych wolumenów: statystyki ruchu i sprzedaży w czasie rzeczywistym, na Twoich danych, bez wpływu na serwowanie strony. Zamówienia, płatności i stany magazynowe zostają w PostgreSQL — dlatego stack 4buildsite łączy oba rozwiązania, każde w tym, w czym jest najlepsze. Moduł statystyk zbudowany na ClickHouse jest w budowie.

Tabela specyfikacji

MożliwośćLimit / prógTypowe zastosowanie
Agregacje analitycznePoniżej sekundy na milionach zdarzeń (kolumnowo i wektorowo)Wolny przy wyszukiwaniu pojedynczego wiersza — nie służy do odczytów OLTPRaporty ruchu i sprzedaży (moduł statystyk, w budowie)
Przyjmowanie zdarzeńDuże wolumeny, zapisywane partiamiDrobne, częste wstawienia wymagają grupowania lub zapisu asynchronicznegoZbieranie odsłon, kliknięć i zamówień
Przechowywanie i kompresjaKompresja kolumnowa (LZ4/ZSTD), kilkukrotnie poniżej surowego wolumenuDane bardzo losowe kompresują się słabiejHistoria zdarzeń z miesięcy i lat, niewielkim kosztem
Aktualizacje i usuwanieAsynchroniczne mutacje do sporadycznych korektNieodpowiedni do częstych operacji UPDATE na pojedynczych wierszachUsuwanie danych na podstawie RODO (dane użytkownika, na żądanie)
Widoki zmaterializowaneAgregaty wyliczane z wyprzedzeniem przy każdym zapisieAgregaty trzeba zdefiniować wcześniej, osobno dla każdego raportuNatychmiastowe pulpity: sprzedaż według dnia, produktu i źródła
Czas rzeczywistyZdarzenia można odpytywać po ich wystąpieniuTo nie jest system strumieniowy na poziomie milisekundStatystyki ruchu i konwersji na żywo

ClickHouse a PostgreSQL i Google Analytics / BigQuery — na potrzeby analityki

KryteriumClickHouse (4buildsite)PostgreSQL (do analityki)Google Analytics / BigQuery
Szybkość agregacji przy dużym wolumeniePoniżej sekundy na milionach wierszyWyraźnie spada przy dziesiątkach milionów wierszy (przechowywanie wierszowe)BigQuery jest szybki; GA4 daje wstępnie zagregowane raporty standardowe, bez swobodnych zapytań
Własność danych i RODOTwoje dane, na infrastrukturze platformy, w EuropieTwoje dane, na Twoich serwerachDane trafiają do Google'a; transfery GA do USA organy UE uznały w 2022 roku za niezgodne z RODO
Pliki cookie i zgodaBez zewnętrznych plików cookie śledzącychZależy od własnej implementacjiWymaga banera zgody na śledzenie
Czas rzeczywistyDane dostępne do odpytania po zapisaniuMożliwe, ale ciężkie raporty obciążają bazę transakcyjnąStandardowe raporty GA4 potrafią pojawiać się z godzinami opóźnienia; strumieniowanie w BigQuery kosztuje dodatkowo
Koszt przy dużym wolumenieOtwarty kod — kosztem jest wyłącznie infrastruktura, wliczona w abonamentRośnie wraz z indeksami, procesem vacuum i sprzętem przy dużych wolumenachBigQuery nalicza opłatę za odpytany wolumen; wersja korporacyjna GA jest kosztowna
Wpływ na szybkość stronyBrak bezpośredniego wpływu — asynchroniczne zbieranie danych, raportowanie na osobnym systemieRaporty potrafią konkurować z zamówieniami na tej samej bazieSkrypt innej firmy (gtag.js) w stronie — dodatkowy JavaScript i zapytania zewnętrzne

Najczęstsze pytania

Czy ClickHouse spowalnia moją stronę albo sklep?

Nie. ClickHouse działa na systemie oddzielonym od tego, który serwuje strony — tak zaprojektowano architekturę. Zdarzenia ruchu wysyłane są asynchronicznie, a raporty nigdy nie sięgają do bazy danych sklepu.

Dlaczego nie używacie po prostu Google Analytics?

Z trzech powodów. Dane pozostają Twoje, na infrastrukturze platformy, a nie u Google'a. Nie potrzebujesz zewnętrznych plików cookie śledzących, więc zgodność z RODO jest prostsza — w 2022 roku organy z Austrii, Francji i Włoch uznały GA za niezgodne z RODO. A raporty są kompletne, bez próbkowania i bez wielogodzinnych opóźnień.

Czym różni się ClickHouse od PostgreSQL i po co oba?

PostgreSQL to baza transakcyjna (OLTP): przetwarza zamówienia, płatności i stany magazynowe pojedynczo, z gwarancją poprawności. ClickHouse to baza analityczna (OLAP): czyta miliony zdarzeń naraz na potrzeby raportów. Rozdzielenie sprawia, że ciężki raport nie dotyka zamówień Twoich klientów.

Czy moje dane o ruchu są bezpieczne i zgodne z RODO?

Tak — z założenia. Statystyki są własne: leżą na infrastrukturze platformy w Europie, nie są sprzedawane ani udostępniane sieciom reklamowym. Podejście nie korzysta z zewnętrznych plików cookie śledzących, a dane użytkownika można usunąć na żądanie, zgodnie z RODO.

Na ile statystyki działają „w czasie rzeczywistym”?

Zdarzenie — wizyta, kliknięcie, zamówienie — staje się widoczne w raportach po tym, jak nastąpiło. Agregacje za długie okresy (miesiące, lata) także są wykonywane sprawnie, bo ClickHouse zbudowano właśnie pod takie zapytania.

Czy muszę coś skonfigurować, żeby mieć statystyki na swojej stronie?

Nie będzie takiej potrzeby. Moduł statystyk jest w budowie i powstaje jako część platformy: gdy zostanie uruchomiony w panelu administracyjnym, zbieranie danych ruszy automatycznie dla opublikowanych stron — bez skryptów do instalacji i bez zewnętrznych kont.

4b2b.net
Ekosystem biznesowy
4conta.ro
Księgowość
4invoices.net
Aplikacja do fakturowania
4expenses.net
Zarządzanie wydatkami
4notify.net
Powiadomienia
4hosting.net
Hosting
4database.net
Bazy danych
4buildsite.net
Kreator stron
4myapp.net
Kreator aplikacji
4avatars.net
Awatary AI
4chaty.net
Chatbot AI
4webagency.net
Oprogramowanie dla agencji web
4softedu.net
Strony dla edukacji
4softcrm.net
Platforma CRM
4softerp.net
System ERP
4softhr.net
Zarządzanie HR
4mystaff.net
Portal pracowników
4myprojects.net
Manager projektów
4mycontracts.net
Umowy
4docs.net
Zarządzanie dokumentami
4appointments.net
Rezerwacje
4marketingonline.net
Marketing
4insurance.net
Ubezpieczenia
4property.net
Nieruchomości
4lawyers.net
Oprogramowanie prawne
4mygarage.net
Warsztat samochodowy
4driving.net
Szkoły jazdy
4fleet.net
Zarządzanie flotą
4myevents.net
Wydarzenia
4therapy.net
Terapia
4clinics.net
Kliniki
4dental.net
Gabinety stomatologiczne
4restaurants.net
Restauracje
4beautify.net
Salon piękności
4gym.net
Siłownie
4guards.net
Firmy ochroniarskie
4softvet.net
Gabinety weterynaryjne
4softauto.net
Oprogramowanie dla branży motoryzacyjnej
4construct.net
Firmy budowlane
4marketplace.net
Marketplace
4shopy.net
Sklep internetowy
4pricing.net
Porównywarka cen
4salefood.net
Dostawa jedzenia
4rentify.net
Wynajem
4transports.net
Transport
4agencytravel.net
Biuro podróży
4hotel.net
Zarządzanie hotelem
4ong.net
Zarzadzanie NGO