GH GambleHub

Analisi stream vs Batch

1) Breve essenza

Stream: gestione continua degli eventi in secondi: antifrode/AML, trigger RG, alert SLA, pannelli operativi.
Batch è un ricalcolo periodico con riproduzione completa: report regolatori (GGR/NGR), finswerk, dataset ML.

Punti di riferimento: Stream p95 e2e 0. 5-5 c, Batch D + 1 fino alle 06:00 (lock.) .

2) Matrice di selezione (TL; DR)

CriteriStreamBatch
Reazioni SLAsecondi/minutiore/giorni
Completezza (completeness)elevata ma possibile correzione latemolto alta, controllata D + 1
Riproduzione «as-of»più complessa (replay)più semplice (time-travel/snapshots)
Costo per unitàpiù costoso del percorso onlinepiù economico per volume
Attività tipicheAML/RG alert, SRE, vetrine real-timereport, compressioni, ML off-line
Storializzazione (SCD)limitatamenteC'è un sacco di gente
Regolatore/WORMattraverso Gold-perimetralenativo (Gold/D + 1)

Regola 80/20: tutto ciò che non richiede una reazione <5 minuti - in Batch; il resto è in Stream, con la validazione notturna della Batch.

3) Architetture

3. 1 Lambda

Stream per online + Batch per il consolidamento. In più, flessibilità. Meno due logiche.

3. 2 Kappa

Tutto come flussi; Batch = «repliche» attraverso il logo. In più, un unico codice. Meno: complessità delle repliche/costo.

3. 3 Lakehouse-Hybrid (raccomandato)

Stream operativi OLAP (minuti) e Bronze/Silver; Batch sovrascrive Gold (D + 1) e pubblica i report.

4) Dati e tempo

Stream

Le finestre sono tumbling/hopping/sessions.
Watermarks: 2-5 min; late data viene contrassegnato e completato.
Stateful: CEP, deadup, TTL.

Batch

Inverti/CDC: «updated _ at», replica logica.
SCD I/II/III: cronologia degli attributi.
Snapshot - Livelli diurni/mensili per «as-of».

5) Pattern di applicazione in iGaming

AML/Antifrode: Stream (velocity/strutturazione) + Batch crociera e valigetta.
Stream controllo limiti/auto-esclusioni Registro dei rapporti Batch.
Operazioni/SRE: Stream alert SLA; Batch post-analisi incidenti e trend.
Prodotto/marketing: Stream personalizzazione/missione; Batch coorti/LTV.
Finanziari/Report: Batch (Gold D + 1, pacchetti WORM), Stream - pannelli operativi.

6) DQ, riproduzione, repliche

Stream DQ: convalida diagrammi, deadup '(event _ id, source)', completeness finestre, late-ratio, dup-rate; DLQ critico.
Batch DQ: unicità/FK/range/temporale, compressione con OLTP/provider; fail job + report.

Riproduzione:
  • Stream: repliche di topic nell'intervallo + deterministic di trasformazione.
  • Batch: time-travel/versioni logiche ('logic _ variante') + slot Gold.

7) Privacy e residenza

Stream: alias, maschera in linea, linee di montaggio regionali (EEA/UK/BR), timeout per PII-lookups esterni.
Batch: isolamento di mupping PII, RLS/CLS, DSAR/RTBF, Legale Hold, archivi WORM.

8) Cost-engineering

Stream: evitare chiavi «hot» (salting), limitare async lookups, TTL stato, preagregazione.
Batch: partizionamento/clustering, compressione small files, materializzazione di aggregazioni stabili, quote/finestre di avvio.

9) Esempi

9. 1 Stream - Flink SQL (10 min velocity depositi)

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 (pseudo-codice 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

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) Metriche e SLO

Stream (punti di riferimento)

p95 ingest→alert ≤ 2–5 c completeness окна ≥ 99. 5%

schema-errors ≤ 0. 1%

late-ratio ≤ 1%

Disponibilità ≥ 99. 9%

Batch (punti di riferimento)

Gold. daily è pronto entro le 6:00.

completeness ≥ 99. 5%

validity ≥ 99. 9%

Incidente MTTR DQ 24-48 ore

11) Test e release

Contratti/schemi: consumer-driven test; back-compat CI.
Stream: regole canarie, avvio scuro, simulatore replay.
Batch: dry-run nei campionamenti, confronto delle metriche, sommazione di controllo (recordcilion).

12) Anti-pattern

Duplicazione logica: calcoli di Stream e Batch diversi senza allineamento delle formule.
API esterne sincronizzate nel percorso caldo Stream senza cache/timeout.
Full reload «per sicurezza» al posto degli incantesimi.
Nessun watermarks/late-policy.
PII nei livelli analitici nessun CLS/RLS.
Vetrine Gold che mutano a posteriori.

13) Ibrido consigliato (playbook)

1. Tracciato stream: ingest → → Flink/Beam (watermarks, deadup, CEP) →

OLAP (ClickHouse/Pinot) per pannelli 1-5-min + Bronze/Silver (append).
2. Tracciato batch - Inverti/CDC da Silver normalizzazione/SCD da Gold vetrine/report giornalieri (WORM).
3. Allineamento: un unico livello semantico delle metriche; crocevia nightly Stream↔Batch; Discrepanze> → Ticet.

14) RACI

R (Respontible) - Streaming platform (Stream-Infra), Data Engineering (Batch Model), Domain Analytics (metriche/regole), MLOs (Fitch/Feature Store).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/Legal/DPO, Finance (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).
I (Informed): BI/Prodotto/Marketing/Operazioni.

15) Road map

MVP (2-4 settimane):

1. Kafka/Redpanda + 2 topic critici ('payments', 'auth').

2. Flink-jobs: watermark + deadup + 1 regola CEP (AML o RG).

3. Vetrina OLAP 1-5 min + dashboard lag/late/dup.

4. Lakehouse Silver (ACID), prima Gold. ggr _ daily (D + 1 fino alle 6:00).

Fase 2 (4-8 settimane):
  • Inverti/CDC per dominio, SCD II, livello semantico delle metriche.
  • Compressione in streaming DQ e nightly.
  • Regionalizzazione (EEA/UK/BR), DSAR/RTBF, Legale Hold.
Fase 3 (8-12 settimane):
  • Replica simulatore, canary/A-B rilascio regole/metriche.
  • Cost-dashboard e quote; tiered storage; Esercitazioni DR.
  • Generazione automatica della documentazione di vetrine/metriche e lineage.

16) Assegno-foglio di implementazione

  • Schemi/contratti in Registry; back-compat test sono verdi.
  • Stream: watermarks/allowed-lateness, дедуп, DLQ; pannelli OLAP in vendita.
  • Batch: Incanto/CDC, SCD II, Gold D + 1 con esportazioni WORM.
  • Uno strato semantico delle metriche; nightly .
  • DQ-dashboard Freshness/Completeness/Validity; alert lag/late/dup.
  • RBAC/ABAC, crittografia, residenza; DSAR/RTBF/Legal Hold.
  • Costo sotto controllo (cost/GB, cost/query, state size, repliche in quota).

17) Totale

Stream e Batch non sono concorrenti, ma due ingranaggi dello stesso motore. Stream risponde «qui e ora», Batch è la verità da verificare «al mattino». L'approccio ibrido Lakehouse, un unico strato di metriche e la disciplina DQ/lineage consentono di costruire tracciati analitici veloci, riproducibili e complessi, ottimali per SLA e costo.

Contact

Mettiti in contatto

Scrivici per qualsiasi domanda o richiesta di supporto.Siamo sempre pronti ad aiutarti!

Avvia integrazione

L’Email è obbligatoria. Telegram o WhatsApp — opzionali.

Il tuo nome opzionale
Email opzionale
Oggetto opzionale
Messaggio opzionale
Telegram opzionale
@
Se indichi Telegram — ti risponderemo anche lì, oltre che via Email.
WhatsApp opzionale
Formato: +prefisso internazionale e numero (ad es. +39XXXXXXXXX).

Cliccando sul pulsante, acconsenti al trattamento dei dati.