Stream vs Batch վերլուծություն
1) Հակիրճ էությունը
Stream-ը վայրկյանների ընթացքում իրադարձությունների շարունակական վերամշակումն է 'հակաֆրոդ/AML, RG-Stuggers, SLA-alerts, վահանակներ։
Batch-ը ամբողջական վերարտադրողականությամբ պարբերական վերահաշվարկ է 'կարգավորող հաշվետվություններ (GGR/NGR), ֆինսվերներ, ML-դանասետներ։
Կենտրոններ ՝ Stream p95 e2e 0։ 5-5 s, Batch D + 1 մինչև 06:00 (lok.) .
2) Ընտրության մատրիցա (TL; DR)
Կանոն 80/20: Ամեն ինչ, որը չի պահանջում արձագանք <5 րոպե - Batch; մնացածը Stream-ում է, գիշերային Batch-ով։
3) Ճարտարապետություն
3. 1 Lambda
Stream առցանց + Batch-ի համար։ Գումարած 'ճկունություն։ Մինուս 'երկու տրամաբանություն։
3. 2 Kappa
Ամեն ինչ հոսքերի նման է։ Batch = «replay» լոգի միջոցով։ Գումարած ՝ մեկ կոդը։ Մինուս 'կրճատումների բարդությունը/արժեքը։
3. 3 Lakehouse-Hybrid ()
Stream no OLAP-line (րոպե) և Bronze/Silver; Batch-ը փոխանցում է Gold-ը (D + 1) և հրապարակում զեկույցները։
4) Տվյալները և ժամանակը
Stream
Պատուհաններ ՝ tumbling/hopping/session։
Watermarks: 2-5 րոպե; late-ը տեղադրվում է և կրկնվում։
Stateful: CEP, dedup, TTL։
Batch
Redrects/CDC: «corpated _ at», լոգ-կրկնօրինակումը։
SCD I/II/III 'ատրիբուտների պատմությունը։
Դիպուկահարներ ՝ ցերեկային/ամսական շերտեր «as-of» -ի համար։
5) iGaming-ում օգտագործվող արտոնագրերը
AML/Antifrod: Stream (velocity/կառուցվածք) + Batch և Cass։
Responsible Gaming: Stream վերահսկում է սահմանները/ինքնախաբեությունները։ Batch հաշիվները։
Վիրահատություններ/SNE: Stream alerts SLA; Batch post-վերլուծությունը և տենդենցները։
Ապրանքը/մարքեթինգը 'Stream կերպար/առաքելություն; Batch cogorts/LTV։
Ֆինանսներ/հաշվետվություններ ՝ Batch (Gold D + 1, WORM փաթեթներ), Stream - ռուսական վահանակներ։
6) DQ, վերարտադրողականություն, վերարտադրություն, վերարտադրություն
Stream DQ 'սխեմաների վալիդացիա, dedup' (event _ id, source) ", completeness պատուհանը, late-ratio, dup-rate; քննադատական DLQ։
Batch DQ 'յուրություն/FK/range/temensal, OLTP/պրովայդերների հետ։ քննադատական www.fail job + զեկույցը։
Վերարտադրությունը
Stream 'տեղանունների հոսքը + deterministic փոխակերպման միջակայքում։
Batch: Time-travel/տրամաբանության տարբերակները («logic _ version») + Gold։
7) Սեփականատիրությունն ու բնակությունը
Stream: կեղծանունացում, onome-դիմակավորում, տարածաշրջանային փոխակրիչներ (EFC/UK/IV), թայմաուտներ արտաքին PII-lookups-ի վրա։
Batch: PII-mapings, RMS/CLS, DSAR/RTBF, Legal Hold, WORM արխիվները։
8) Cost-inginiring
Stream: խուսափել «տաք» կոմպոզիցիայից (salting), սահմանափակել async lookups, TTL վիճակը, կանխատեսումը։
Batch 'կուսակցականացում/կլաստերիզացիա, small prodes, կայուն ագրեգատների նյութականացում, քվոտաներ/գործարկման պատուհան։
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%
հասանելիությունը 3699 է։ 9%
Batch (ուղեցույցներ)
Gold. daily պատրաստ է մինչև 06: 00 լոկ։
completeness ≥ 99. 5%
validity ≥ 99. 9%
MTTR DQ-2424-48 ժամ
11) Թեստեր և օրինագծեր
Պայմանագրեր/սխեմաներ ՝ consumer-driven tes.ru; back-compat CI.
Stream: Կանարյան կանոնները, մութ արձակումը, replay-սիմուլյատորը։
Batch: wwww.y-run նմուշների վրա, համեմատությունը, ստուգումը (reconciliation)։
12) Anti-patterna
Տրամաբանության կրկնօրինակումը 'Stream-ի և Batch-ի տարբեր հաշվարկներ առանց բանաձևերի հավասարեցման։
Սինխրոն արտաքին API-ը Stream-ի տաք ճանապարհին առանց քեշի/թայմաուտների։
Fultreload «Ամեն դեպքում» ռուսական ելույթների փոխարեն։
Watermarks/late քաղաքական։
PII վերլուծական շերտերում; CLS/RSA-ի բացակայությունը։
Gold-վիտրինները, որոնք «լռում են» հետևից։
13) Չարտոնված հիբրիդ (պլեյբուկ)
1. Stream-2019: ingest www.Flink/Beam (watermarks, dedup, CEP)
OLAP-ը (ClickHouse/Pinot) 1-5-ականների համար + Bronze/Silver (append)։
2. Batch-2019: WORM/CDC www.Silver նորմալացում/SCD no Gold ամենօրյա վիտրիններ/հաշվետվություններ (WORM)։
3. Մոսկվա 'մեկ սեմանտիկ շերտ մետրիկ; nightly Stream no Batch; տարաձայնություններ> տիկետներ։
14) RACI
R (Responsible): Streaming Platform (Stream-infra), Interning (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-job: watermark + dedup + 1 CEP կանոնը (AML կամ RG)։
3. OLAP-վիտրինը 1-5 րոպե + dashbords lag/late/dup։
4. Lakehouse Silver (ACID), առաջին Gold։ ggr _ daily (D + 1 մինչև 06: 00)։
Aleksanda 2 (4-8 շաբաթ)
Redrects/CDC-ը, SCD II-ը, մետրի սեմանտիկ շերտը։
Հոսող DQ-ը և nightly-ը Stream no Batch-ից։
Ռեգիոնալացում (EFC/UK/IV), DSAR/RTBF, Legal Hold։
Բրազիլիա 3 (8-12 շաբաթ)
Replay-սիմուլյատոր, canary/A-B կանոններ/metric։
Cost-dashbords և քվոտաներ; tiered storage; DR ուսուցումները։
Փաստաթղթերի ավտոմատ արտադրությունը վիտրին/մետրիկ և lineage։
16)
- Սխեմաներ/պայմանագրեր Registry-ում; back-compat թեստերը կանաչ են։
- Stream: watermarks/allowed-lateness, дедуп, DLQ; OLAP վահանակները վաճառքում։
- Batch: Rements/CDC, SCD II, Gold D + 1 WORM կոդերով։
- Մեկ սեմանտիկ շերտ մետրիկ; nightly Stream no Batch։
- DQ-dashbords 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-ով և արժեքով։