Batch vs Stream: haçan näme
Näme üçin saýlamaly?
Islendik maglumat ulgamy täzelik (latency), çykdajy, goldaw çylşyrymlylygy we ygtybarlylyk arasynda deňagramlylygy saklaýar.
Batch - ýokary geçiriş ukyby we ýazgy üçin arzan bahasy bolan maglumatlaryň döwürleýin "bölekleri".
Akym - minimal gijikdirme we ýatda/lokal duralgalarda ýagdaý bilen wakalary üznüksiz gaýtadan işlemek.
Modeller barada gysgaça
Batch
Çeşme: faýllar/tablisalar/snapshotlar.
Trigger: meýilnama (sagat/gün) ýa-da şert (täze parket faýly).
Güýçli taraplary: ýönekeýlik, determinizm, maglumatlaryň doly mazmuny, arzan uly hasaplamalar.
Gowşak: "onlaýn" ýok, ýokary gizlinlik, hakyky wagt signalsyz "penjireler".
Stream
Çeşme: brokerler (Kafka/NATS/Pulsar), CDC, nobatlar.
Trigger: Waka.
Güýçli: pes gijikdirme, reaktiwlik, önüm bilen tebigy integrasiýa.
Gowşak: wagtyň çylşyrymlylygy (event vs processing), tertibi/goşa, ýagdaýy, işleýşi.
Çözgüt: Saýlama matrisi
80/20 düzgüni: eger SLA minutlara/sagatlara gijä galmaga mümkinçilik berse we reaktiw fiç bolmasa, batch alyň. "Şu ýerde we häzir" reaksiýasy möhüm bolsa ýa-da janly penjireler gerek bolsa - akym (köplenç barlamak üçin goşmaça gijeki batch).
Adaty ssenariler
Batch - haçan gowy:- Gündelik hasabat, billing döwürleri, ML-okuw, uly joinler, "tutuş toplum" bilen de-duplikasiýa.
- Çuňňur tassyklamaly medalon-model (bronze/silver/gold).
- Köpçülikleýin bektestler we penjireleri gaýtadan ýygnamak.
- Antifrod/gözegçilik, SRE aladalary, hakyky wagt balansy/missiýalary, "häzirki" teklipleri.
- "Waka-fakt" integrasiýasy (EDC), materiallaşdyrylan pikirleri täzelemek (CQRS).
- Mikroservisler: bellikler, webhuklar, iş wakalaryna reaksiýalar.
- Akym iş dükanlaryny we signallary emele getirýär; gijeki batch barlagy, toplumyny we arzan taryhy hasaplamalary edýär.
Arhitektura
Lambda (Stream + Batch)
Giriş we onlaýn akym; Doldurmak we düzetmek üçin batch.
Artykmaçlyklary: çeýeligi we SLA. Minuslar: goşa logika, kody köpeltmek.
Kappa (все — Stream + Replay)
Hakykat çeşmesi hökmünde ýeke-täk log; batch-gaýtadan hasaplamalar = replay.
Artykmaçlyklary: bir kod bazasy, bir semantika. Minuslar: has çylşyrymly işlemek, logy saklamak üçin talaplar.
Hybrid-Pragmatic
Akym "operasiýa" + agyr joinler/ML/düzedişler üçin wagtal-wagtal batch joblary.
Iş ýüzünde - iň köp ýaýran wariant.
Wagt, tertip, penjireler (akym üçin)
Prosessing time däl-de, waka wagtyna bil baglaň.
Watermark we 'allowed _ lateness' dolandyryň; giç wakalar üçin retractions/upserts goldaň.
Agregatlaryň açarlaryna görä partladyň, "gyzgyn açarlary" meýilleşdiriň.
Täsirleriň ygtybarlylygy we semantikasy
Batch
BD amallary ýa-da partiýalary/tablisalary atom bilen çalyşmak.
Idempotentlik - deterministik hasaplamalar we overwrite/insert-overwrite arkaly.
Stream
At-least-once + demokratik sinks (upsert/merge, agregatlaryň wersiýalary).
Effekt boýunça EOS üçin "okaldy-ýazdy-ýazdy".
'event _ id '/' operation _ id' tablisalary.
Ammar we formatlar
Batch
Data Lake (Parquet/Delta/Iceberg), OLAP (ClickHouse/BigQuery), obýekt ammary.
Atomic replace, time travel üçin ACID tablisalary.
Stream
Logy/temalar brokerlerde, state stores (RocksDB/embedded), KV/Redis, OLTP proýeksiýalary üçin.
Shemalaryň sanawy (Ýewro/JSON/Proto), laýyklyk düzgünleri.
Bahasy we SLO
Batch: "paketler" bilen töleýärsiňiz - uly mukdarda girdejili, ýöne ≥ meýilnamanyň gijikdirilmegi.
Stream: hemişelik rantaim çeşmeleri, ýokary QPS-de iň ýokary bahasy; SLA sekuntda.
p95/p99 latency, aşa yza galmak, ABŞ-da çykdajy/waka we TCO goldaw hasaplaň.
Synag
Jemi: altyn-toplumlar, property-based invariantlar, hapa girelgeleri döretmek.
Batch: kesgitleýiş, idempotent täzeden başlamak, "öň/soň" gümmezlerini deňeşdirmek.
Stream: out-of-order/dublikatlar, effekt bilen ofset düzedişiniň arasynda fol-injection, replay-synaglar.
Gözegçilik etmek
Batch: job dowamlylygy, feýlleriň/retraýlaryň paýy, penjireleriň täzeligi, skan-cost.
Akym: wagt/habarlar, watermark, late-rate, döwlet ululygy/ýygylyk checkpoint, DLQ-nyrh.
Hemme ýerde: 'trace _ id', 'event _ id', shemalaryň/konweýerleriň wersiýalary.
Howpsuzlyk we maglumatlar
PII/PCI - iň az, at-rest/in-flight şifrlemek, shemalarda meýdançalary bellemek ('x-pii').
Stream üçin - state/checkpoint's goragy, topiklere ACL.
GDPR/ýatdan çykarmak hukugy: Stream-de - kripto-silmek/proýeksiýalarda redaksiýa; Batch - partiýalary gaýtadan hasaplamak.
Geçiş strategiýalary
Batch → Stream: Wakalary çap etmekden başlaň (Outbox/CDC), bar bolan topluma degmezden kiçijik hakyky wagt penjiresini galdyryň.
Akym → Batch: Hasabat/barlamak we akym synklaryna ýükleri azaltmak üçin gündelik toplumlary goşuň.
Anti-patternler
Moda üçin "Hemme zat akymda": hakyky zerurlyk bolmazdan gymmat we kyn.
"Bir ullakan gijeki batch" talaplary <5 minut.
Iş ölçegleri üçin processing time ulanylmagy.
Çig CDC jemgyýetçilik wakalary hökmünde: gaty baglanyşyk, ewolýusiýa agyry.
synks → restartlarda iki gezek täsir etmeýär.
Saýlaw barlagy
- SLO täzelik: näçe sekunt/minut/sagat rugsat berilýär?
- Giriş durnuklylygy: out-of-order/dublikatlar barmy?
- Onlaýn reaksiýalar/penjireler gerekmi?
- Bahasy: rantaim 24/7 vs "meýilnama boýunça penjire".
- Düzediş usuly: retract/upsert ýa-da gijeki sanamak.
- Topar we operasiýa kämillik (gözegçilik etmek, on-call).
- "Birmeňzeş täsir" üçin talaplar.
- PII/retensiýa/ýatdan çykarmak hukugy.
Salgylanma patternleri
Iş penjiresi (Hybrid):- Akym: EDC → UI üçin proýeksiýalar (KV/Redis, OLTP), idempotent upsert.
- Batch: nightly cold in OLAP, reconciliation, ML-fichs.
- Akym: session-penjireler, CEP-düzgünler, alertler <1-5 s.
- Batch: modelleri gaýtadan taýýarlamak, awtonom tassyklamak.
- Akym: triggerler, hakyky wagt segmentleri.
- Batch: skoringler, LTV modelleri, hasabatlar.
FAQ
Batch-da "real-time" diýen ýaly alyp bolarmy?
Hawa: mikrobatçi/trigger joblary (her 1-5 minutda) - eglişik, ýöne windows/late-events kynçylyksyz.
Lambda çemeleşmesi hemme ýerde zerurmy?
Ýok. Eger akym ähli meseleleri ýapsa we replay edip bilseňiz - Kappa has aňsat. Ýogsam - gibrid.
Bahany nädip hasaplamaly?
compute + storage + ops jemläň. Stream üçin "24/7" duralgasynyň we gyssagly gijeleriň bahasyny goşuň; Batch üçin - maglumatlaryň "möhleti geçen" bahasy.
Jemi
Pes çykdajy, ýönekeýlik we döwürleýin toplumlar möhüm bolanda Batch saýlaň; Akym - reaktiwlik we täzelik möhüm bolanda. Iş ýüzünde gibrid ýeňýär: akym - onlaýn we signallar üçin, batch - doly we arzan taryhy hasaplamalar üçin. Esasy zat SLO-ny goýmak, idempotentligi/syn edilmegi üpjün etmek we düzedişleriň ýoluny öňünden düzmek.