Stream vs Batch талдау
1) Қысқаша мәні
Stream - оқиғаларды секундтар ішінде үздіксіз өңдеу: антифрод/AML, RG-триггерлер, SLA-алерттар, жедел панельдер.
Batch - толық жаңғыртылатын кезеңдік қайта есептеу: реттеуші есептілік (GGR/NGR), қаржылық сверктер, ML-датасеттер.
Бағдарлар: Stream p95 e2e 0. 5-5 с. Batch D + 1 06: 00-ге дейін (лок.) .
2) Таңдау матрицасы (TL; DR)
80/20 ереже: реакцияны талап етпейтін барлық <5 минут - Batch; қалғаны - Batch түнгі валидациясымен Stream.
3) Сәулет
3. 1 Lambda
Біріктіру үшін онлайн + Batch үшін Stream. Плюс: икемділік. Минус: екі логика.
3. 2 Kappa
Барлығы ағындар сияқты; Batch = лог арқылы «реплика». Плюс: бірыңғай код. Минус: реплейлердің күрделілігі/құны.
3. 3 Lakehouse-Hybrid (ұсынылған)
Stream → жедел OLAP-наурыз (минут) және Bronze/Silver; Batch Gold (D + 1) қайта жинайды және есептерді жариялайды.
4) Деректер мен уақыт
Stream
Терезелер: tumbling/hopping/session.
Watermarks: 2-5 мин; late data белгіленеді және жете эмиттеледі.
Stateful: CEP, дедуп, TTL.
Batch
Инкременттер/CDC: 'updated _ at', лог-репликация.
SCD I/II/III: төлсипаттар тарихы.
Снапшоттар: «as-of» үшін күндізгі/айлық қабаттар.
5) iGaming-те қолдану үлгілері
AML/Антифрод: Stream (velocity/құрылымдау) + Batch салыстыру және кейстер.
Responsible Gaming: Stream лимиттерді/өзін-өзі болдырмауды бақылау; Batch есеп тізілімдері.
Операциялар/SRE: Stream SLA; Batch оқиғалар мен трендтерді пост-талдау.
Өнім/маркетинг: Stream персоналдандыру/миссиясы; Batch когорты/LTV.
Қаржы/есептер: Batch (Gold D + 1, WORM-пакеттер), Stream - жедел панельдер.
6) DQ, жаңғыртылуы, реплика
Stream DQ: сұлбаларды валидациялау, дедуп '(event_id, source)', completeness терезелер, late-ratio, dup-rate; сыни → DLQ.
Batch DQ: бірегейлік/FK/range/temporal, OLTP/провайдерлермен салыстыру; сыни → fail job + есеп.
- Stream: + deterministic трансформация ауқымы бойынша топиктерді репликалау.
- Batch: time-travel/логика нұсқасы ('logic _ version') + Gold snapshots.
7) Жекешелiк және резиденттiк
Stream: бүркемелеу, online-бүркемелеу, өңірлік конвейерлер (EEA/UK/BR), сыртқы PII-lookups таймауттар.
Batch: PII-маппингтерді оқшаулау, RLS/CLS, DSAR/RTBF, Legal Hold, WORM-мұрағаттар.
8) Cost-инжиниринг
Stream: «ыстық» кілттерді (salting) болдырмау, async lookups, TTL күйін шектеу, алдын ала қосылу.
Batch: партиялау/кластерлеу, small files компакциясы, тұрақты агрегаттарды материалдандыру, квота/іске қосу терезесі.
9) Мысалдар
9. 1 Stream - Flink SQL (10-мин velocity депозиттер)
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 жалған құжаты)
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 инкременті)
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) Метрика және SLO
Stream (бағдар)
p95 ingest→alert ≤ 2–5 c completeness окна ≥ 99. 5%
schema-errors ≤ 0. 1%
late-ratio ≤ 1%
қол жетімділік ≥ 99. 9%
Batch (бағдар)
Gold. daily сағат 06: 00-ге дейін дайын.
completeness ≥ 99. 5%
validity ≥ 99. 9%
MTTR DQ-инцидент ≤ 24-48 сағ
11) Тестілеу және релиздер
Келісімшарттар/схемалар: consumer-driven tests; back-compat CI.
Stream: канареялық ережелер, қараңғы іске қосу, replay-симулятор.
Batch: іріктемелерде dry-run, метриктерді салыстыру, бақылау жиынтығы (reconciliation).
12) Қарсы үлгілер
Логиканы қайталау: әртүрлі Stream және Batch есептеулері формулаларды теңестірмей.
Кэшсіз/таймаусыз ыстық жолдағы синхронды сыртқы API.
Full reload инкременттер орнына «жағдайға».
watermarks/late-саясатының болмауы.
талдау қабаттарында PII; CLS/RLS болмауы.
Артқы күнмен «мутацияланатын» Gold-витриналар.
13) Ұсынылған будан (плейбук)
1. Stream-контур: ingest → шина → Flink/Beam (watermarks, дедуп, CEP) →
OLAP (ClickHouse/Pinot) 1-5 мин. панельдер үшін + Bronze/Silver (append).
2. Batch контур: инкременттер/CDC → Silver қалыпқа келтіру/SCD → Gold тәуліктік витриналар/есептер (WORM).
3. Келісу: метриктердің бірыңғай семантикалық қабаты; nightly Stream Batch салыстыру; айырмашылықтар> табалдырық → тикеттер.
14) RACI
R (Responsible): Streaming Platform (Stream-инфра), Data Engineering (Batch модельдері), Domain Analytics (метриктер/ережелер), 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/Өнім/Маркетинг/Операциялар.
15) Жол картасы
MVP (2-4 апта):1. Kafka/Redpanda + 2 сыни топика ('payments', 'auth').
2. Flink-джоба: watermark + дедуп + 1 CEP-ереже (AML немесе RG).
3. OLAP-витринасы 1-5 мин + дашбордтар lag/late/dup.
4. Lakehouse Silver (ACID), бірінші Gold. ggr_daily (D + 1 06:00 дейін).
2-фаза (4-8 апта):- Домендер бойынша инкременттер/CDC, SCD II, метриктердің семантикалық қабаты.
- DQ ағыны және nightly Stream Batch салыстыру.
- Аймақтандыру (EEA/UK/BR), DSAR/RTBF, Legal Hold.
- Реплей-симулятор, canary/A-B ережелер/метриктер релиздері.
- Cost-дашбордтар және квоталар; tiered storage; DR-жаттығулар.
- Витриналар/метриктер және lineage құжаттамасының автогенерациясы.
16) Енгізу чек-парағы
- Registry-дегі схемалар/келісімшарттар; back-compat тестілері жасыл.
- Stream: watermarks/allowed-lateness, дедуп, DLQ; Сынамадағы OLAP тақтасы.
- Batch: WORM экспортымен инкременттер/CDC, SCD II, Gold D + 1.
- Метриктердің бірыңғай семантикалық қабаты; nightly Stream Batch.
- DQ-дашбордтар Freshness/Completeness/Validity; алерталар lag/late/dup.
- RBAC/ABAC, шифрлау, резиденттік; DSAR/RTBF/Legal Hold.
- Құны бақылауда (cost/GB, cost/query, state size, репликалар квоталанған).
17) Жиынтық
Stream және Batch бәсекелес емес, бір жетекті екі тісті доңғалақ. Stream «осында және қазір» реакциясын береді, Batch - «таңертең» тексерілетін шындық. Lakehouse-тәсіл гибриді, метрикалардың бірыңғай қабаты және DQ/lineage тәртібі SLA мен құны бойынша оңтайлы, жылдам, ойнатылатын және жинақы аналитикалық контурларды құруға мүмкіндік береді.