ClickHouse — аналитичкиот мотор во реално време во стекот на платформата

← Почетна
Аналитика & податоци

ClickHouse — аналитичкиот мотор во реално време во стекот на платформата

Стекот на 4buildsite вклучува ClickHouse — колонарна база на податоци изградена посебно за анализа во голем обем. Врз неа го градиме модулот за статистика на сообраќај и продажба на платформата (во развој): податоците остануваат твои, извештаите се градат врз собраните настани, а собирањето е одвоено од сајтот — така е дизајнирана архитектурата.

Што е ClickHouse и зошто го користиме

ClickHouse е колонарна база на податоци од типот OLAP (онлајн анализа), создадена во Yandex за Yandex.Metrica — еден од најголемите системи за веб анализа во светот — и објавена како open-source во 2016 година под лиценца Apache 2.0. Изградена е за една единствена работа, која ја прави исклучително: брзи агрегации врз огромни количини податоци. Во архитектурата на 4buildsite, ClickHouse е изборот на мотор за слојот на статистика: секоја посета, клик и нарачка станува настан што може да се анализира.

Тајната е складирањето по колони: наместо да го чита секој „ред“ целосно, ClickHouse ги чита само колоните што му се потребни на извештајот и ги обработува векторизирано, во големи блокови. Затоа прашање како „колку посетители имавме вчера, на секоја страница, од секој извор“ добива брз одговор дури и врз милиони настани — нешто што класичната база ориентирана по редови го решава многу потешко.

Не е нишна технологија: Cloudflare ја користи за анализа на HTTP сообраќајот во глобален обем, а Uber, eBay и Spotify ја користат за аналитика и обработка на логови во огромни количини. На 4buildsite, истиот мотор е дел од стекот на платформата — без да ангажираш тим од инженери за податоци.

Статистика во реално време, одвоена од твојот сајт — како е дизајниран модулот

Модулот за статистика на платформата е во развој, а неговата архитектура е едноставна: настаните за сообраќај се собираат асинхроно и се запишуваат во ClickHouse, целосно одвоено од серверите што ги испорачуваат страниците. Твоите посетители не чекаат на analytics: собирањето е одвоено од испораката на страницата, без оглед на тоа колку извештаи се извршуваат во тој момент. Нема тежок tracking скрипт од трета страна — собирањето е минимално и first-party.

Извештаите во panel.4buildsite.net ќе се пресметуваат директно во ClickHouse: сообраќај по страници, извори на посетители, конверзии, продажба по производ. Честите агрегации се претходно пресметуваат преку materialized views при секое запишување, па контролната табла не стартува тешка пресметка секој пат кога ја гледаш.

  • Сообраќај во живо: посети, страници, извори и уреди — достапни за пребарување по собирањето
  • Продажба по производ, нарачки и конверзии за твојата продавница, агрегирани во извештаите
  • Историја по месеци и години со мал трошок — колонарната компресија го намалува складирањето повеќекратно во однос на суровите податоци
  • Собирањето е асинхроно, известувањето се извршува на друг систем

PostgreSQL + ClickHouse: зошто ги користиме двете

Стекот на платформата комбинира две бази на податоци бидејќи прават суштински различни работи. PostgreSQL е регистарот на трансакции (OLTP): нарачки, плаќања, залиха, кориснички сметки — операции што мора да бидат совршено точни една по една, со трансакциски гаранции. ClickHouse е салата за анализа (OLAP): милиони настани читани одеднаш за да ти одговорат на прашања за сообраќајот и продажбата.

Ако тешките извештаи би се извршувале на истата база на податоци што ги обработува нарачките, секој извештај би се натпреварувал со клиентите што плаќаат во тој момент. Одвојувањето OLTP/OLAP го елиминира овој конфликт: нарачката на клиентот не чека на твојот извештај, а твојот извештај не чека на нарачките на другите. Секој мотор го прави токму она за што е изграден.

  • PostgreSQL: нарачки, Stripe плаќања, залиха, клиенти — трансакциска исправност
  • ClickHouse: настани за сообраќај, извештаи, статистика — агрегација во голем обем
  • Дизајнот предвидува релевантните трансакциски податоци да стигнат во ClickHouse како настани, па извештаите за продажба никогаш не ја допираат базата што ја опслужува продавницата

Сопствен, privacy-friendly analytics — наместо Google Analytics

Принципот на модулот за статистика: податоците на твојот сајт остануваат на инфраструктурата на платформата. Не се праќаат до Google или други рекламни мрежи, не се продаваат и не се комбинираат со надворешни кориснички профили. Тоа е first-party analytics во вистинска смисла: податоците за твоите посетители се твои.

Бидејќи пристапот не користи cookies од трети страни за следење, усогласеноста со GDPR станува многу поедноставна. Контекстот е важен: во 2022 година, органите за заштита на податоци во Австрија, Франција и Италија прогласија дека употребата на Google Analytics не е во согласност со GDPR поради трансферите на податоци во САД. Со сопствен analytics, хостиран во Европа, оваа категорија ризик исчезнува од почеток.

Постои и директна практична корист: извештаите пресметани во ClickHouse не се семплирани и не се појавуваат со доцнење од часови, како што се случува со стандардните извештаи во бесплатните analytics алатки. Целосни бројки.

Извештаи за продавница и marketplace — што ќе испорача модулот

За онлајн продавница, ClickHouse ќе значи одговори на прашањата што се важни: кои производи се продаваат, од кои извори доаѓаат клиентите што купуваат, каде се напуштаат кошничките. За multi-vendor marketplace, истите агрегации ќе се извршуваат врз сите нарачки: обем по продавач, провизии, топ производи по категорија — без рачни извози и без табеларни пресметки.

И во голем обем нештата остануваат евтини и брзи. Колонарната компресија ги намалува податоците повеќекратно во однос на суровиот формат, па чуваш историја од години со мал трошок за складирање. А кога сообраќајот расте од илјадници до милиони настани, агрегациите остануваат брзи — моторот е дизајниран од почеток за милијарди редови, а не прилагодуван потоа.

Предности и ограничувања

Предности

  • Агрегации врз милиони настани — извештаи.
  • Analytics-от се извршува на систем одвоен од оној што ги сервира страниците.
  • Податоците за сообраќај остануваат твои, на инфраструктурата на платформата — без трансфер до Google или рекламни мрежи.
  • Без cookies од трети страни за следење — поедноставна усогласеност со GDPR.
  • Моќна колонарна компресија — историја од години со мал трошок за складирање.
  • Open-source (Apache 2.0), без лиценци по обем — трошокот не експлодира кога расте сообраќајот.

Ограничувања

  • Не е трансакциска база на податоци — менувањето или бришењето на поединечни редови е тешка операција; затоа нарачките и плаќањата стојат во PostgreSQL.
  • Оптимизирана за запишување во големи пакети; многу мали и чести insert-и бараат batching — платформата го управува тоа, но е вистинска граница на моторот.
  • Сложените JOIN-ови се помалку флексибилни отколку во PostgreSQL — шемата на настани мора да се дизајнира за анализа од почеток.
  • Пребарувањето на еден ред (point lookup) е побавно отколку во индексирана OLTP база — не ја заменува главната база на продавницата.

Кус заклучок

ClickHouse е правилниот избор за аналитика во голем обем: статистика на сообраќај и продажба во реално време, со твоите податоци, со собирање одвоено од сајтот. За нарачки, плаќања и залиха останува PostgreSQL — затоа стекот на 4buildsite ги комбинира двете, секое во она за што е најдобро. Модулот за статистика изграден врз ClickHouse е во развој.

Табела со спецификации

МожностГраница / прагТипична употреба
Аналитички агрегацииБрзи агрегации врз милиони настани (колонарно + векторизирано)Бавно при пребарување на еден ред — не е за OLTP lookupsИзвештаи за сообраќај и продажба (модулот за статистика, во развој)
Прием на настаниГолеми обеми, запишувани во пакетиМалите и чести insert-и бараат batching / async insertСобирање pageview-и, кликови, нарачки
Складирање & компресијаКолонарна компресија (LZ4/ZSTD), повеќекратно под суровиот обемМногу случајните податоци се компресираат помалкуИсторија на настани по месеци и години, со мал трошок
Ажурирања & бришењаАсинхрони mutations за повремени корекцииНепогодно за чести UPDATE-и врз поединечни редовиGDPR бришења (податоците на корисник, на барање)
Materialized viewsПретходно пресметани агрегати при секое запишувањеАгрегатите мора однапред да се дефинираат, по извештајКонтролни табли: продажба по ден, производ, извор
Реално времеНастаните стануваат достапни за пребарување по нивното собирањеНе е streaming систем на ниво на милисекундаСтатистика во живо за сообраќај и конверзии

ClickHouse наспроти PostgreSQL наспроти Google Analytics / BigQuery — за аналитика

КритериумClickHouse (4buildsite)PostgreSQL (за аналитика)Google Analytics / BigQuery
Брзина на агрегации во голем обемБрзи агрегации врз милиони редовиВидливо опаѓа врз десетици милиони редови (складирање по редови)BigQuery брз; GA4 има стандардни претходно агрегирани извештаи, без слободни упити
Сопственост на податоците / GDPRТвои податоци, на инфраструктурата на платформата, во ЕвропаТвои податоци, на твоите сервериПодатоците кај Google; трансферите на GA во САД прогласени за неусогласени со GDPR од органи на ЕУ во 2022
Cookies & согласностБез cookies од трети страни за следењеЗависи од сопствената имплементацијаБара банер за согласност за следење
Реално времеПодатоците стануваат достапни за пребарување по собирањетоМожно, но тешките извештаи ја оптоваруваат трансакциската базаСтандардните GA4 извештаи може да се појават со доцнење од часови; BigQuery streaming чини дополнително
Трошок во голем обемOpen-source — трошокот е само инфраструктурата, вклучена во претплататаРасте со индекси, vacuum и хардвер при големи обемиBigQuery наплаќа по обем на пребаран податок; enterprise варијантата на GA е скапа
Влијание врз брзината на сајтотАсинхроно собирање, известување на одвоен системИзвештаите можат да се натпреваруваат со нарачките на истата базаСкрипт од трета страна (gtag.js) во страницата — дополнителен JavaScript и надворешни барања

Често поставувани прашања

Дали ClickHouse го забавува мојот сајт или продавница?

Не. ClickHouse работи на систем одвоен од оној што ги сервира страниците — така е дизајнирана архитектурата. Настаните за сообраќај се праќаат асинхроно, а извештаите никогаш не ја допираат базата на податоци на продавницата. Собирањето на статистиката не е дел од патот на вчитување на страницата.

Зошто не користите едноставно Google Analytics?

Три причини. Податоците остануваат твои, на инфраструктурата на платформата, а не кај Google. Не ти требаат cookies од трети страни за следење, па усогласеноста со GDPR е поедноставна — во 2022 година, органи од Австрија, Франција и Италија прогласија дека GA не е во согласност со GDPR. И извештаите се целосни, не семплирани или одложени со часови.

Која е разликата меѓу ClickHouse и PostgreSQL — зошто двете?

PostgreSQL е трансакциската база (OLTP): обработува нарачки, плаќања и залиха, една по една, со гаранции за исправност. ClickHouse е аналитичката база (OLAP): чита милиони настани одеднаш за извештаи. Одвојувањето значи дека тежок извештај никогаш не ги забавува нарачките на твоите клиенти.

Дали моите податоци за сообраќај се безбедни и усогласени со GDPR?

Да — по дизајн. Статистиката е first-party: стои на инфраструктурата на платформата, во Европа, не се продава и не се споделува со рекламни мрежи. Пристапот не користи cookies од трети страни за следење, а податоците на корисник можат да се избришат на барање, согласно GDPR.

Колку „во реално време“ е статистиката?

Настан — посета, клик, нарачка — станува видлив во извештаите откако ќе се собере. Агрегациите за долги периоди (месеци, години) се извршуваат брзо, бидејќи ClickHouse е изграден токму за овој вид упити.

Дали треба нешто да конфигурирам за да имам статистика на мојот сајт?

Нема да е потребно. Модулот за статистика е во развој и е изграден како дел од платформата: кога ќе стане активен во админ панелот, собирањето стартува автоматски за објавените сајтови — без скрипти за инсталирање и без надворешни сметки.

4b2b.net
Деловен екосистем
4conta.ro
Сметководство
4invoices.net
Апликација за фактурирање
4expenses.net
Управување со трошоци
4notify.net
Известувања
4hosting.net
Хостинг
4database.net
Бази на податоци
4buildsite.net
Изработка на веб-страници
4myapp.net
Изработка на апликации
4avatars.net
AI аватари
4chaty.net
AI чатбот
4webagency.net
Софтвер за веб-агенции
4softedu.net
Веб-страници за образование
4softcrm.net
CRM платформа
4softerp.net
ERP систем
4softhr.net
Управување со персонал
4mystaff.net
Портал за вработени
4myprojects.net
Управување со проекти
4mycontracts.net
Договори
4docs.net
Управување со документи
4appointments.net
Закажување термини
4marketingonline.net
Маркетинг
4insurance.net
Осигурување
4property.net
Недвижности
4lawyers.net
Софтвер за адвокати
4mygarage.net
Автосервис
4driving.net
Автошколи
4fleet.net
Управување со возен парк
4myevents.net
Настани
4therapy.net
Терапија
4clinics.net
Клиники
4dental.net
Стоматолошки ординации
4restaurants.net
Ресторани
4beautify.net
Салон за убавина
4gym.net
Фитнес центри
4guards.net
Агенции за обезбедување
4softvet.net
Ветеринарни ординации
4softauto.net
Софтвер за авто бизнис
4construct.net
Градежни фирми
4marketplace.net
Маркетплејс
4shopy.net
Онлајн продавница
4pricing.net
Споредба на цени
4salefood.net
Достава на храна
4rentify.net
Изнајмување
4transports.net
Транспорт
4agencytravel.net
Туристичка агенција
4hotel.net
Управување со хотели
4ong.net
Управување со НВО