Stream vs Analiza lotului
1) Scurtă sinteză
Stream - procesarea continuă a evenimentelor în câteva secunde: antifraudă/AML, declanșatoare RG, alerte SLA, panouri operaționale.
Lot - recalculare periodică cu reproductibilitate completă: raportare de reglementare (GGR/NGR), documente financiare, seturi de date ML.
Repere: Stream p95 e2e 0. 5-5 s, Lot D + 1 la 06:00 (blocare.) .
2) matrice de selecție (TL; DR)
Regula 80/20: Orice lucru care nu necesită o reacție <5 minute - în lot; restul este în Stream, cu validare de noapte lot.
3) Arhitecturi
3. 1 Lambda
Stream pentru online + Lot pentru consolidare. Plus: flexibilitate. Minus: două logici.
3. 2 Kappa
Totul este ca fluxurile; Lot = „reluare” prin jurnal. Plus: un singur cod. Minus: complexitatea reluărilor/costurilor.
3. 3 Lakehouse-Hybrid (recomandat)
Stream → online OLAP Marts (minute) și bronz/argint; Lotul reasamblează aur (D + 1) și publică rapoarte.
4) Date și timp
Stream
Ferestre: rostogolire/țopăit/sesiune.
Filigrane: 2-5 min; datele târzii sunt marcate și estompate.
Statful: CEP, dedup, TTL.
Lot
Increments/CDC: 'update _ at', replicare jurnal.
SCD I/II/III: istoricul atributelor.
Instantanee: straturi zi/lună pentru „as-of”.
5) Modele de aplicare în iGaming
AML/Antifraudă: Stream (viteză/structurare) + Reconcilieri și cazuri de lot.
Joc responsabil: Controlul fluxului de limite/autoexcluderi; Registrele de raportare a loturilor.
Operațiuni/SRE: Alerte Stream SLA; Lot post-analiză a incidentelor și tendințelor.
Produs/Marketing: Stream Personalizare/Misiuni; Cohorte de lot/LTV.
Finante/rapoarte: Lot (Gold D + 1, pachete WORM), Stream - panouri operationale.
6) DQ, reproductibilitate, reluare
Stream DQ: validarea schemelor, dedup „(event_id, sursă)”, completitudinea ferestrei, late-ratio, duprate; DLQ critic →.
Lot DQ: unicitate/FK/interval/temporal, reconcilieri cu OLTP/furnizori; critică → eșec de locuri de muncă + raport.
- Stream: replica subiecte după interval + transformare deterministă.
- Lot: versiuni de călătorie în timp/logică ('logic _ version') + instantanee Gold.
7) Confidențialitate și rezidență
Stream: pseudonimizare, mascare online, conducte regionale (SEE/UK/BR), timeout-uri pentru căutări externe PII.
Lot: izolarea cartografierii PII, RLS/CLS, DSAR/RTBF, Legal Hold, arhive WORM.
8) Cost-inginerie
Stream: evitați cheile „fierbinți” (sărare), căutări limită de asincronizare, stări TTL, preagregare.
Lot: partiționare/grupare, compresie fișiere mici, materializarea agregatelor stabile, cote/ferestre de lansare.
9) Exemple
9. 1 Stream - Flink SQL (10-min viteza de depunere)
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 (cod pseudo 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 Lot - MERGE (increment de argint)
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 Lot - Aur 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) Măsurători și SLO
Stream (repere)
p95 ingest→alert ≤ 2-5 c completitudine окна ≥ 99. 5%
erori de schemă ≤ 0. 1%
raport tardiv ≤ 1%
disponibilitate ≥ 99. 9%
Lot (repere)
Aur. zilnic este gata până la 06:00 de blocare.
exhaustivitate ≥ 99. 5%
valabilitate ≥ 99. 9%
Incident MTTR DQ ≤ 24-48 ore
11) Testarea și eliberarea
Contracte/scheme: teste bazate pe consumatori; CI back-compat.
Stream: reguli canare, lansare întunecată, simulator reluare.
Lot: uscat pe eșantioane, compararea metricii, reconciliere.
12) Anti-modele
Logică duplicat: diferite calcule Stream și lot fără aliniere formulă.
API-uri externe sincrone în calea fierbinte Stream fără cache/timeout.
Reîncărcați complet „doar în caz” în loc de incremente.
Fără filigrane/politici târzii.
PII în straturi analitice; fără CLS/RLS.
Aur vitrine care „mutare” retroactiv.
13) Hibrid recomandat (playbook)
1. Stream-loop: ingera autobuz → → Flink/fascicul (filigrane, dedup, CEP) →
OLAP (ClickHouse/Pinot) pentru panouri de 1-5 min + bronz/argint (adăugați).
2. Buclă lot: increments/CDC → Silver Normalization/SCD → Gold Daily Display/Reports (WORM).
3. Potrivire: un singur strat semantic de valori; reconcilierea Stream↔Batch nocturnă; discrepanțe> prag → bilete.
14) RACI
R (Responsabil): Streaming Platform (Stream-info), Data Engineering (Modele de lot), Domain Analytics (metrici/reguli), MLOps (caracteristici/Feature Store).
A (Responsabil): șef de date/CDO.
C (Consultat): Compliance/Legal/DPO, Finance (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).
I (Informat): BI/Produs/Marketing/Operațiuni.
15) Foaie de parcurs
MVP (2-4 săptămâni):1. Kafka/Redpanda + 2 subiecte critice („plăți”, „auth”).
2. Flink de locuri de muncă: filigran + dedup + 1 regula CEP (AML sau RG).
3. Prezentare OLAP 1-5 min + tablouri de bord lag/late/dup.
4. Lakehouse Silver (ACID), primul aur. ggr_daily (D + 1 până la 06:00).
Faza 2 (4-8 săptămâni):- Incremente/CDC după domeniu, SCD II, strat metric semantic.
- Streaming DQ și reconciliere Stream↔Batch noapte.
- Regionalizare (SEE/UK/BR), DSAR/RTBF, Legal Hold.
- Reluare simulator, canar/A-B eliberări de reguli/metrici.
- Tablouri de cost și cote; depozitare pe niveluri; Învăţăturile DR.
- Generarea automată a documentației de prezentare/metrică și a descendenței.
16) Lista de verificare a implementării
- Scheme/contracte în Registru; testele back-compat sunt verzi.
- Stream: filigrane/permise-lateness, дедуп, DLQ; Panouri OLAP în prod.
- Lot: incremente/CDC, SCD II, Gold D + 1 cu exporturi WORM.
- Un singur strat semantic de valori; reconciliere Stream↔Batch nocturnă.
- Plăci DQ de prospețime/completitudine/valabilitate; alert lag/late/dup.
- RBAC/ABAC, criptare, rezidență; DSAR/RTBF/Legal Hold.
- Costul sub control (cost/GB, cost/interogare, dimensiunea statului, reluările sunt alocate cotelor).
17) Linia de jos
Stream și Lot nu sunt concurenți, ci două trepte de aceeași unitate. Stream dă reacția "aici și acum", Lot - adevăr verificabil "în dimineața. "Abordarea hibridă Lakehouse, un singur strat de valori și disciplina DQ/linie vă permit să construiți contururi analitice rapide, reproductibile și conforme, care sunt optime în SLA și costuri.