Servicii DevOps · PostgreSQL & ClickHouse

PostgreSQL pentru tranzacții.ClickHouse pentru analitică.Aceeași factură SFS la sfârșit de lună.

Două dintre cele mai bune baze de date open-source ale lumii, livrate ca un singur stack gestionat în Republica Moldova. PostgreSQL 16 pentru workload-urile tale transacționale — comenzi, conturi, programări, mișcări de stoc. ClickHouse 24 pentru analitică reală — log-uri, evenimente, rapoarte agregate peste milioane de rânduri în sub o secundă. Tu scrii cererile, noi ținem clusterul în picioare 24/7, în română sau rusă.

Lucrăm cu vinării digitale care urmăresc senzori de podgorie minut cu minut, cu rețele de retail care procesează tranzacții din zeci de magazine, cu fintech-uri care vor să respecte cerințele BNM și CNPF, cu telecomuri care macină miliarde de înregistrări CDR. Toate au în comun aceeași poveste: PostgreSQL pentru sursa adevărului tranzacționale, ClickHouse pentru întrebări analitice instant. Le-am construit ca să poată trăi împreună, replicate, monitorizate și conform Legii 133/2011 privind protecția datelor cu caracter personal.

16PostgreSQLVersiune curentă suportată
24ClickHouseCu MergeTree și SSL
< 50 msPG p50Pentru interogări scurte
< 1 sCH p95Pe miliarde de rânduri
De ce ambele

PostgreSQL și ClickHouse nu sunt în concurență. Sunt complementare.

Cele mai multe echipe care încearcă să facă raportare în PostgreSQL ajung mai devreme sau mai târziu la întrebări care durează minute. Cele mai multe echipe care încep direct în ClickHouse își dau seama că au nevoie tot de un transactional store pentru OLTP. Recomandarea noastră, dovedită în zeci de implementări moldovenești: PostgreSQL pentru sursa adevărului (ACID, joins complexe, foreign keys), ClickHouse pentru read-heavy analytics (compresie 10x, MergeTree, agregări instant). Replicare logică sau CDC între ele cu Debezium sau pg_logical, fără a strica nici una.

PostgreSQL — Sursa adevărului

Baza de date relațională cea mai matură open-source: ACID, JSONB nativ pentru documente, full-text search în română și rusă, indexuri parțiale și expresie, extensii puternice (PostGIS pentru date geo moldovenești, pg_trgm pentru căutare fuzzy, timescaledb pentru time-series scurte).

  • Tranzacții ACID cu izolare serializable
  • JSONB pentru date semistructurate, indexuri GIN
  • Replicare streaming + replica logică
  • Backup point-in-time cu WAL archiving
OLTP · ACID · JSONB · PostGIS

ClickHouse — Motorul analitic

Bază de date columnară OLAP gândită pentru analitică agregată peste seturi mari. Comprimă datele de 5-10 ori, scanează miliarde de rânduri în secunde, suportă SQL aproape standard cu funcții window și agregări avansate. Pentru rapoarte de retail, analiză CDR telecom, atribuire de marketing.

  • Compresie LZ4 sau ZSTD pe coloană
  • MergeTree cu sharding orizontal
  • Materializări incrementale automate
  • Integrare nativă Kafka, Postgres, S3
OLAP · Columnar · Compresie 10x · Kafka

Stack-ul combinat

PostgreSQL primește scrierile aplicației tale (un client plasează o comandă, un POS înregistrează o vânzare, un senzor de vinărie trimite o citire). ClickHouse primește evenimentele agregabile (un click pe site, o citire de senzor, un eveniment de log). Tabel analitic în PostgreSQL pentru auditing strict, MergeTree în ClickHouse pentru întrebări de dashboard. Replicare cu Debezium, pg_logical sau Apache Kafka, după preferință.

01

PostgreSQL 16 gestionat în Republica Moldova

Versiunea curentă cu suport extins, extensii preîncărcate și backup point-in-time activ din primul minut.

Provisionăm clusterul PostgreSQL 16 cu replicare streaming către un nod stand-by în alt rack al datacenter-ului, plus replicare logică opțională către o instanță de read-replica geografic separată (Frankfurt ↔ București). Extensiile cele mai utile vin preîncărcate: PostGIS pentru date geografice (util când marchezi puncte de livrare în Chișinău, Bălți sau Comrat), pg_trgm pentru căutare fuzzy în nume de produse cu diacritice românești, timescaledb pentru time-series de mici dimensiuni, pgvector pentru embedding-uri AI. WAL archiving rulează pe S3 compatibil pentru point-in-time recovery la orice secundă din ultimele 14 zile (sau 30 zile la planurile Codru și Carpați). Conexiunile sunt limitate prin PgBouncer pentru a preveni epuizarea de slot-uri.

  • PostgreSQL 16 cu replicare streaming în primar-secundar
  • PostGIS, pg_trgm, timescaledb, pgvector preîncărcate
  • PgBouncer cu transaction pooling în fața clusterului
  • Backup PITR cu WAL archiving pe bucket S3
  • Monitorizare cu pg_stat_statements și pg_stat_io expuse
PostgreSQL 16 · PgBouncer · PITR 14-30 zile · PostGIS + pgvector · WAL pe S3
02

ClickHouse 24 cu MergeTree și replicare ZooKeeper

Cluster ClickHouse cu MergeTree replicat, ZooKeeper pentru coordonare și TLS 1.3 pe toate conexiunile.

Provisionăm ClickHouse 24 cu MergeTree replicat între cel puțin două noduri în primul plan și cu sharding orizontal pe planurile superioare. ZooKeeper rulează în quorum de trei noduri pentru coordonare. Codecul implicit este ZSTD level 3 pentru economie de spațiu fără penalitate notabilă pe scriere — un dataset tipic de log-uri se comprimă de la 100 GB la 12-15 GB. Materializările incrementale (`MATERIALIZED VIEW`) și `Projection`-urile noi permit precalcul de agregări pentru rapoarte zilnice livrate în milisecunde. Integrarea Kafka este preconfigurată: dai topic-ul și schema, ClickHouse consumă automat și scrie în MergeTree. Pentru CDC din PostgreSQL recomandăm Debezium → Kafka → ClickHouse.

  • ClickHouse 24 cu MergeTree replicat și ZooKeeper
  • Codecul ZSTD-3 implicit pentru compresie 6-10x
  • Sharding orizontal pe planurile Codru și Carpați
  • Tabele Kafka + tabele MaterializedPostgreSQL preconfigurate
  • TLS 1.3 pe protocoalele native, HTTP și inter-shard
ClickHouse 24 · MergeTree · ZooKeeper quorum · ZSTD-3 · Kafka native
03

Operare, securitate și conformitate cu Legea 133/2011

Backup-uri verificate săptămânal, criptare at-rest pe LUKS, audit log centralizat, DPA semnabil la activarea serviciului.

Backup-urile rulează automat: PostgreSQL face base backup zilnic plus WAL continuu pe un bucket S3 cu object-lock; ClickHouse face snapshot al MergeTree parts noaptea. O dată pe săptămână, un job de verificare restaurează backup-urile într-un mediu izolat și rulează `pg_dump --schema-only` + un query de smoke test, iar rezultatul intră într-un raport săptămânal care îți ajunge pe email. Discurile NVMe stau pe LUKS cu chei deținute în HashiCorp Vault, iar conexiunile aplicației către PostgreSQL și ClickHouse trec prin TLS 1.3 cu certificate Let's Encrypt rotite automat. Pentru conformitate cu Legea 133/2011 privind protecția datelor cu caracter personal, semnăm DPA la activarea serviciului și emitem la cerere raport de prelucrare pentru ANSCC.

  • Backup PostgreSQL PITR + snapshot ClickHouse zilnic
  • Verificare săptămânală automată cu restaurare în sandbox
  • Criptare at-rest cu LUKS + chei în HashiCorp Vault
  • TLS 1.3 pe toate conexiunile, certificate rotite automat
  • DPA semnabil la activare, conform Legii 133/2011 + RGPD
PITR · Verify săptămânal · LUKS + Vault · TLS 1.3 · Legea 133/2011 + RGPD
Arhitecturi tipice

Patru pattern-uri arhitecturale folosite zilnic în Moldova

Nu există un singur "mod corect" de a combina PostgreSQL și ClickHouse. Pentru fiecare profil de business există un pattern care s-a dovedit eficient. Acestea sunt cele patru pe care le instalăm cel mai des la clienții moldoveni — porni de la unul și ajustezi pe parcurs.

Pattern 01

Dual-write din aplicație

Aplicația scrie în PostgreSQL pentru sursa adevărului și, în paralel, trimite evenimente într-un topic Kafka care alimentează ClickHouse. Simplu de înțeles, controlul total al schemei. Trade-off: trebuie să tratezi cu grijă cazurile de eșec parțial (PG scris dar Kafka nu).

Latență tipică: <100 ms · Risc: scriere parțială
Pattern 02

CDC cu Debezium

Debezium citește WAL-ul PostgreSQL și emite evenimente CDC în Kafka. ClickHouse consumă topic-ul. Zero modificări în aplicație, schimbările sunt garantate să ajungă (cu ordonare). Trade-off: adăugare de infrastructură (Debezium + Kafka).

Latență tipică: 1-3 s · Risc: low, ordonare garantată
Pattern 03

MaterializedPostgreSQL nativ în ClickHouse

ClickHouse 24 are un engine MaterializedPostgreSQL care se conectează direct la PG, citește WAL-ul și menține tabelele sincronizate fără middleware. Cel mai simplu pentru date de referință (catalog, clienți). Trade-off: pentru tabele foarte mari poate consuma resurse PG.

Latență tipică: 2-5 s · Risc: scădere ușoară a IOPS pe PG
Pattern 04

Hub Kafka cu mai mulți consumatori

Aplicațiile scriu evenimente în Kafka. PostgreSQL consumă cele tranzacționale, ClickHouse consumă cele analitice. Indicat pentru companii cu mai multe aplicații (retail multi-magazin, fintech multi-produs). Trade-off: design upfront mai costisitor.

Latență tipică: <1 s · Risc: complexitate operațională
Planuri cluster

Patru dimensiuni de cluster gestionat

Toate planurile includ PostgreSQL primar + standby cu replicare streaming și ClickHouse replicat cu ZooKeeper. Diferența este capacitatea, sharding-ul ClickHouse și retenția backup-ului. Resize la cald este suportat pe planurile Codru și Carpați.

01 · Dezvoltare, staging, sarcini mici

Cluster Prut

859 L/ lună
TVA 20% inclus
PostgreSQL
2 vCPU · 4 GB · 60 GB NVMe
ClickHouse
2 vCPU · 4 GB · 80 GB NVMe
PostgreSQL primar + standbyClickHouse 1 shard, 2 repliciBackup PITR 14 zileSuport bilingv 24/7
02 · Echipe în producție lejeră

Cluster Nistru

1.759 L/ lună
TVA 20% inclus
PostgreSQL
4 vCPU · 8 GB · 160 GB NVMe
ClickHouse
4 vCPU · 8 GB · 240 GB NVMe
Resize la cald RAM pe PGClickHouse 1 shard, 3 repliciBackup PITR 30 zileMaterialized Views auto-create
03 · SaaS, e-commerce, analitică reală

Cluster Codru

3.499 L/ lună
TVA 20% inclus
PostgreSQL
8 vCPU · 16 GB · 320 GB NVMe
ClickHouse
8 vCPU · 16 GB · 480 GB NVMe
Sharding orizontal CH (2 shard-uri)Replica logică PG geografic separatăBackup PITR 30 zile, snapshot zilnic CHDebezium + Kafka preconfigurate
04 · Telecom, fintech, retail multi-magazin

Cluster Carpați

6.999 L/ lună
TVA 20% inclus
PostgreSQL
16 vCPU · 32 GB · 640 GB NVMe RAID 1
ClickHouse
16 vCPU · 32 GB · 960 GB NVMe RAID 1
PG cu connection pooling (PgBouncer)CH cu 4 shard-uri și ZooKeeper quorumBackup PITR 60 zile + verify săptămânalDBA on-call dedicat la incidente
Cazuri de utilizare

Patru scenarii moldovenești unde stack-ul PG + CH își dovedește valoarea

Sub fiecare exemplu real este un stack tehnic concret pe care îl putem provisiona ca template. Pornim de la unul, ajustăm parametrii și avem clusterul în producție în câteva zile.

Cazul 01

Vinărie digitală cu senzori IoT în podgorie

O vinărie din zona Codru montează senzori de temperatură, umiditate și pH în butoaie. Aplicația de producție scrie ordinele de îmbuteliere în PostgreSQL (cu PostGIS pentru localizarea fiecărui butoi). Senzorii trimit citiri în Kafka, ClickHouse le agregă pe minut, oră și zi pentru dashboard-ul oenologilor. Întrebări tipice rezolvate în sub o secundă pe 18 luni de date.

Stack tipic: PostgreSQL + PostGIS · Kafka · ClickHouse MergeTree · Grafana
Cazul 02

Retail multi-magazin cu peak la Black Friday

O rețea de retail cu 40 de magazine în Republica Moldova. POS-urile scriu vânzările în PostgreSQL prin API REST, cu garanție de ACID pentru contabilitate. Evenimentele de vânzare se replică prin Debezium în ClickHouse, unde dashboard-ul de management arată cifrele pe magazin, categorie și oră în timp real. La Black Friday scalăm shard-urile CH la dublu.

Stack tipic: PostgreSQL OLTP · Debezium CDC · ClickHouse MergeTree · Metabase
Cazul 03

Fintech moldovenească cu cerințe BNM și CNPF

Startup fintech care procesează plăți recurente. PostgreSQL ține registrul de tranzacții cu izolare serializable și audit log inalterabil (extensia pgAudit). ClickHouse primește log-urile structurate (request, response, latențe, erori) prin Kafka și permite întrebări forensice rapide. Datele sunt criptate at-rest cu LUKS, chei în Vault.

Stack tipic: PostgreSQL + pgAudit · LUKS + Vault · ClickHouse · OpenTelemetry
Cazul 04

Operator telecom cu miliarde de CDR-uri lunar

Operatorul scrie CDR-urile (Call Detail Records) într-un cluster ClickHouse cu sharding pe IMSI. Datele relevante pentru facturare (clienți, contracte, tarife) stau în PostgreSQL. La sfârșit de lună, un job SQL agregă CDR-urile per client și scrie totalul de facturat în PostgreSQL pentru emiterea facturii electronice SFS.

Stack tipic: ClickHouse shard pe IMSI · PostgreSQL contracte · Airflow ETL
Operare 24/7

Ce facem noi ca să nu te trezești la 3 dimineața

Un cluster gestionat înseamnă mai mult decât "am instalat PG și CH pe niște VM-uri". Iată ce intră concret în prețul lunar.

Monitorizare proactivă

Metrici pg_stat_statements, pg_stat_io, system.metrics ClickHouse, latențe replicare, lag-ul ZooKeeper — totul în Grafana cu alertare PagerDuty/Telegram. Dacă lag-ul replicării sare peste 30 s, primim un alert înainte ca tu să observi.

Backup și verificare

Backup zilnic PostgreSQL (base + WAL) pe S3 cu object-lock, snapshot ClickHouse noaptea. O dată pe săptămână restaurăm într-un sandbox și rulăm smoke test, raport pe email la persoana ta de contact tehnic.

Scalare și optimizare

Resize CPU/RAM/disc la cald sau cu reboot scurt (~90 s), tuning parameter PostgreSQL (shared_buffers, work_mem, autovacuum) și ClickHouse (merge_tree settings, background_pool_size) revizuit lunar la planurile Codru și Carpați.

Securitate și RGPD

LUKS pe NVMe, chei în Vault, TLS 1.3 pe toate conexiunile, role-based access cu rotație automată credențialelor aplicației, audit log inalterabil. DPA semnabil pentru conformitate Legea 133/2011 și RGPD european.

Întrebări frecvente

Ce întreabă echipele DevOps moldovenești înainte de migrare

Pot conecta direct din aplicația mea, sau este nevoie de un proxy?

Poți conecta direct prin string-ul PostgreSQL standard sau prin connector ClickHouse (HTTP sau native protocol). În spate noi punem PgBouncer în fața PG pentru transaction pooling, deci poți avea sute de conexiuni simultane fără să saturezi slot-urile. Suportăm și conectare prin chi-cli, dbeaver, datagrip — orice client SQL standard.

Cum se face migrarea de la baza mea actuală?

Pentru PostgreSQL: un inginer senior face pg_dump al schemei, restaurează într-un cluster nou, sincronizează datele prin pg_logical replication până când lag-ul ajunge sub o secundă, apoi tăiem aplicația în mai puțin de 30 de secunde. Pentru ClickHouse: copiere prin clickhouse-copier sau export CSV/Parquet din vechea bază, încărcare în noul cluster cu INSERT INTO ... SELECT din S3. Tot procesul vine fără cost adițional.

Care este SLA-ul real?

99,99 % uptime contractual pentru ambele baze. Compensare automată în MDL la ciclul următor dacă SLA-ul nu se respectă. În practică, ultimii 12 luni am avut 99,997 % pentru clusterul mediu — adică sub 16 minute de indisponibilitate cumulată anual.

Pot face read-only replicas pentru raportare?

Da. PostgreSQL permite hot standby cu replicare streaming — citești de pe replica fără să încarci primarul. ClickHouse permite scaling read prin adăugare de replici la fiecare shard. Pe planurile Codru și Carpați, replicile pot fi în alt datacenter (Frankfurt ↔ București) pentru rezistență la pană regională.

Suportați pgvector pentru AI embeddings?

Da, pgvector vine preinstalat în toate planurile PostgreSQL 16. Suportăm dimensiuni vector până la 2000, indexuri HNSW și ivfflat. Pentru workload-uri intensive de căutare semantică (de exemplu, motoare de recomandare pentru e-commerce moldovenesc), recomandăm Codru sau mai mare.

Care este politica de retenție a backup-urilor?

Prut și Nistru: 14 zile PITR pentru PG, snapshot zilnic pentru CH ținut 14 zile. Codru: 30 zile pentru ambele. Carpați: 60 zile pentru ambele plus verificare săptămânală cu restaurare în sandbox. Retenții extinse (90+ zile) la cerere, pe planuri customizate.

Pornim împreună

Activăm clusterul tău PG + CH în mai puțin de 24 de ore.

Programează o discuție de 30 de minute cu echipa DevOps. Stabilim împreună profilul tău de date (volum, frecvență de scriere, pattern-uri de citire), recomandăm planul potrivit și provisionăm o instanță de test gratuită pentru 7 zile cu date sintetice. Dacă nu îți servește, nu plătești nimic.