Stream vs Batch analizi
1) Qısa mahiyyət
Stream - hadisələrin saniyələr ərzində davamlı emalı: antifrod/AML, RG tetikleyiciləri, SLA alertləri, əməliyyat panelləri.
Batch - tam reproduktivliyi ilə periodik yenidən hesablama: tənzimləyici hesabatlar (GGR/NGR), maliyyə sverkləri, ML-datasetlər.
Göstərici: Stream p95 e2e 0. 5-5 s, Batch D + 1 06:00 (lok.) .
2) Seçim matrisi (TL; DR)
80/20 qaydası: reaksiya tələb etməyən hər şey <5 dəqiqə - Batch; qalan - Stream, gecə validasiya Batch ilə.
3) Memarlıq
3. 1 Lambda
Konsolidasiya üçün online + Batch üçün Stream. Plus: çeviklik. Mənfi: iki məntiq.
3. 2 Kappa
Bütün axınlar kimi; Batch = log vasitəsilə «replay». Plus: vahid kod. Mənfi: repleylərin mürəkkəbliyi/dəyəri.
3. 3 Lakehouse-Hybrid (tövsiyə olunur)
Stream → əməliyyat OLAP-mart (dəqiqə) və Bronze/Silver; Batch Gold (D + 1) yığır və hesabatları dərc edir.
4) Məlumat və vaxt
Stream
Pəncərələr: tumbling/hopping/session.
Watermarks: 2-5 dəq; late data etiketlənir və emitasiya olunur.
Stateful: CEP, dedup, TTL.
Batch
Inkrementlər/CDC: 'updated _ at', log-replikasiya.
SCD I/II/III: atributların tarixi.
Snapshot: «as-of» üçün gündəlik/aylıq təbəqələr.
5) iGaming tətbiq nümunələri
AML/Antifrod: Stream (velocity/strukturlaşdırma) + Batch yoxlama və cases.
Responsible Gaming: Stream limitləri/özünü istisna nəzarət; Batch hesabat reyestrləri.
Əməliyyatlar/SRE: Stream SLA; Hadisələrin və trendlərin post-analizi.
Product/Marketing: Stream personalization/missiya; Batch kohorts/LTV.
Maliyyə/Hesabatlar: Batch (Gold D + 1, WORM paketləri), Stream - əməliyyat panelləri.
6) DQ, təkrarlanabilirlik, replica
Stream DQ: sxemlərin validasiyası, dedup '(event_id, source)', pəncərələrin completeness, late-ratio, dup-rate; kritik → DLQ.
Batch DQ :/FK/range/temporal unikallığı, OLTP/provayderləri ilə müqayisə; kritik → fail job + hesabat.
- Stream: + deterministik transformasiya diapazonu üzrə topik replica.
- Batch: time-travel/məntiq versiyası ('logic _ version') + Gold snapshots.
7) Gizlilik və rezidentlik
Stream: psevdonimization, online-maskalama, regional konveyerlər (EEA/UK/BR), xarici PII-lookups üçün vaxt.
Batch: izolyasiya PII-mapping, RLS/CLS, DSAR/RTBF, Legal Hold, WORM-arxivlər.
8) Cost-mühəndislik
Stream: «isti» açarları (salting) qarşısını almaq, async lookups məhdudlaşdırmaq, TTL halları, ön aqreqasiya.
Batch: partifikasiya/klasterləşdirmə, kiçik files kompaksiyası, sabit aqreqatların materiallaşdırılması, kvotalar/başlanğıc pəncərələri.
9) Nümunələr
9. 1 Stream - Flink SQL (10-dəq velocity depozitlər)
sql
SELECT user_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS sum_10m
FROM stream. payments
GROUP BY user_id, TUMBLE(event_time, INTERVAL '10' MINUTE);
9. 2 Stream - CEP (AML psevdokod)
python if count_deposits(10MIN) >= 3 and sum_deposits(10MIN) > THRESH \
and all(d. amount < REPORTING_LIMIT for d in window):
emit_alert("AML_STRUCTURING", user_id, snapshot())
9. 3 Batch - MERGE (Silver increment)
sql
MERGE INTO silver. payments s
USING stage. delta_payments d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;
9. 4 Batch — Gold GGR (D+1)
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) event_date,
b. market, g. provider_id,
SUM(b. stake_base) stakes_eur,
SUM(p. amount_base) payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) ggr_eur
FROM silver. fact_bets b
LEFT JOIN silver. fact_payouts p
ON p. user_pseudo_id = b. user_pseudo_id
AND p. game_id = b. game_id
AND DATE(p. event_time) = DATE(b. event_time)
JOIN dim. games g ON g. game_id = b. game_id
GROUP BY 1,2,3;
10) Metrika və SLO
Stream
p95 ingest→alert ≤ 2–5 c completeness окна ≥ 99. 5%
schema-errors ≤ 0. 1%
late-ratio ≤ 1%
mövcudluğu ≥ 99. 9%
Batch
Gold. daily 06:00 lok qədər hazır.
completeness ≥ 99. 5%
validity ≥ 99. 9%
MTTR DQ-hadisə ≤ 24-48 saat
11) Test və buraxılışlar
Müqavilələr/sxemlər: consumer-driven tests; back-compat CI.
Stream: Kanarya qaydaları, qaranlıq başlanğıc, replay simulyator.
Batch: nümunələrdə dry-run, metrik müqayisə, nəzarət toplaması (reconciliation).
12) Anti-nümunələr
Mantığın təkrarlanması: düsturları bərabərləşdirmədən müxtəlif Stream və Batch hesablamaları.
Cache/time olmadan isti Stream yolda sinxron xarici API.
Tam reload «hər ehtimala qarşı» inkrementlər əvəzinə.
watermarks/late siyasətinin olmaması.
PII analitik təbəqələrdə; CLS/RLS yoxdur.
Geriyə doğru «mutasiya» edən qızıl vitrinlər.
13) Tövsiyə hibrid (playbook)
1. Stream kontur: ingest → şin → Flink/Beam (watermarks, dedup, CEP) →
OLAP (ClickHouse/Pinot) 1-5 min panel + Bronze/Silver (append) üçün.
2. Batch kontur: artım/CDC → Silver normallaşma/SCD → Gold gündəlik vitrinlər/hesabatlar (WORM).
3. Koordinasiya: metriklərin vahid semantik təbəqəsi; nightly Stream, Batch; uyğunsuzluqlar> eşik → biletlər.
14) RACI
R (Responsible): Streaming Platform (Stream-infra), Data Engineering (Batch modelləri), Domain Analytics (Metrik/Qaydalar), MLOps (Feature Store).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/Legal/DPO, Finance (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).
I (Informed): BI/Məhsul/Marketinq/Əməliyyatlar.
15) Yol xəritəsi
MVP (2-4 həftə):1. Kafka/Redpanda + 2 tənqidi topika ('payments', 'auth').
2. Flink job: watermark + dedup + 1 CEP qaydası (AML və ya RG).
3. OLAP vitrin 1-5 dəq + dashboard lag/late/dup.
4. Lakehouse Silver (ACID), ilk Gold. ggr_daily (D + 1 - 06:00).
Faza 2 (4-8 həftə):- Domen artımları/CDC, SCD II, metrik semantik təbəqə.
- Stream DQ və nightly Stream, Batch.
- Regionallaşdırma (EEA/UK/BR), DSAR/RTBF, Legal Hold.
- Replay-simulyator, canary/A-B buraxılış qaydaları/metrik.
- Cost-dashboard və kvotalar; tiered storage; DR təlimləri.
- Vitrin/metrik və lineage sənədlərinin avtomatik generasiyası.
16) Giriş çek siyahısı
- Registry sxemləri/müqavilələri; back-compat testlər yaşıl.
- Stream: watermarks/allowed-lateness, дедуп, DLQ; Prodda OLAP panelləri.
- Batch: WORM ixracatı ilə artım/CDC, SCD II, Gold D + 1.
- Vahid semantik metrik təbəqə; nightly Stream Batch.
- DQ-daşbordları Freshness/Completeness/Validity; alertlər lag/late/dup.
- RBAC/ABAC, şifrələmə, rezidentlik; DSAR/RTBF/Legal Hold.
- Nəzarət altında dəyəri (cost/GB, cost/query, state size, replies kvota).
17) Yekun
Stream və Batch rəqib deyil, iki təkərli təkərlər. Stream «burada və indi» reaksiyasını verir, Batch - «səhər» yoxlanılan həqiqət. Lakehouse hibrid yanaşma, vahid metrik təbəqə və DQ/lineage nizam-intizam SLA və dəyəri optimal sürətli, təkrar və komplayent analitik konturlar qurmaq üçün imkan verir.