GH GambleHub

Analyse Stream vs Batch

1) Une brève essence

Stream - traitement continu des événements en quelques secondes : antifrod/AML, déclencheurs RG, alertes SLA, panneaux opérationnels.
Batch - recalculations périodiques avec reproductibilité complète : rapports réglementaires (GGR/NGR), Finsverks, ML-datacets.

Repères : Stream p95 e2e 0. 5-5 s, Batch D + 1 à 06:00 (lok.) .

2) Matrice de sélection (TL ; DR)

CritèreStreamBatch
Réactions SLAsecondes/minutesheures/jours
Exhaustivité (completeness)haute mais possible late-correctionstrès haut, contrôlé D + 1
Reproductibilité « as-of »plus difficile (replay)plus facile (temps-voyage/snapshots)
Coût par unitéplus cher la voie en lignemoins cher par volume
Tâches typesAML/RG alerte, SRE, vitrines temps réelrapports, rapprochements, ML off-line
Historique (SCD)LimitativementIl y a
Régulateur/WORMvia Gold-transbornative (Gold/D + 1)

Règle 80/20 : tout ce qui ne nécessite pas de réaction <5 minutes est dans Batch ; le reste est à Stream, avec la validation nocturne de Batch.

3) Architectures

3. 1 Lambda

Stream pour en ligne + Batch pour la consolidation. Plus : flexibilité. Moins : deux logiques.

3. 2 Kappa

Tout comme les flux ; Batch = « repli » à travers le journal. Plus : code unique. Moins : complexité des relais/coût.

3. 3 Lakehouse-Hybride (recommandé)

Stream → OLAP-marts opérationnels (minutes) et Bronze/Argent ; Batch revisite Gold (D + 1) et publie des rapports.

4) Données et temps

Stream

Fenêtres : tumbling/hopping/session.
Watermarks : 2-5 min ; late data est marquée et finie.
Stateful : CEP, dedup, TTL.

Batch

Incréments/CDC : 'updated _ at', réplication log.
SCD I/II/III : historique des attributs.
Snapshots : couches diurnes/mensuelles pour « as-of ».

5) Modèles d'application dans iGaming

AML/Antifrod : Stream (velocity/structuration) + Batch rapprochements et cas.
Responsible Gaming : Contrôle stream des limites/auto-exceptions ; Registres de rapports Batch.
Opérations/SRE : Stream alerte SLA ; Batch post-analyse des incidents et des tendances.
Produit/marketing : Personnalisation de flux/missions ; Cohortes Batch/LTV.
Finances/rapports : Batch (Gold D + 1, paquets WORM), Stream - panneaux opérationnels.

6) DQ, reproductibilité, repli

Stream DQ : validation des schémas, dédup' (event_id, source) ', fenêtre complète, late-ratio, dup-rate ; un → critique de DLQ.
Batch DQ : unicité/FK/range/temporal, rapprochement avec les fournisseurs/OLTP ; critique → rapport fail job +.

Reproductibilité :
  • Stream : repliement des tops par gamme de transformation + deterministic.
  • Batch : time-travel/version logique ('logic _ version') + snapshots Gold.

7) Intimité et résidence

Stream : pseudonymisation, masquage en ligne, convoyeurs régionaux (EEE/UK/BR), temporisation sur les PII-lookups externes.
Batch : isolation des mappings PII, RLS/CLS, DSAR/RTBF, Legal Hold, archives WORM.

8) Cost-engineering

Stream : éviter les clés « chaudes » (salting), limiter async lookups, TTL d'état, pré-agrégation.
Batch : lot/clustering, compaction de petits fichiers, matérialisation d'agrégats stables, quotas/fenêtres de démarrage.

9) Exemples

9. 1 Stream - Flink SQL (10 min de dépôts 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 (pseudo-code 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 (Incrément 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) Métriques et SLO

Stream (repères)

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

schema-errors ≤ 0. 1%

late-ratio ≤ 1%

disponibilité ≥ 99. 9%

Batch (repères)

Gold. daily prêt jusqu'à 06:00 lok.

completeness ≥ 99. 5%

validity ≥ 99. 9%

Incident DQ MTTR ≤ 24-48 h

11) Tests et releases

Contrats/schémas : tests de consommation ; back-compat CI.
Stream : règles canaries, démarrage sombre, simulateur de replay.
Batch : dry-run sur les échantillons, comparaison des métriques, sommation de contrôle (reconciliation).

12) Anti-modèles

Duplication logique : différents calculs Stream et Batch sans alignement de formules.
API externes synchrones dans le chemin d'accès Stream chaud sans cache/temporisation.
Reload complet « au cas où » au lieu d'incréments.
Pas de stratégie watermarks/late.
PII dans les couches analytiques ; absence de CLS/RLS.
Des vitrines dorées qui « mutent » rétroactivement.

13) Hybride recommandé (Pleybuk)

1. Circuit Stream : ingest → pneu → Flink/Beam (watermarks, dedup, CEP) →

OLAP (ClickHouse/Pinot) pour panneaux 1-5 min + Bronze/Argent (append).
2. Contour de batch : incréments/CDC → Normalisation de l'argent/SCD → Gold vitrines/rapports journaliers (WORM).
3. Alignement : une seule couche sémantique de métriques ; le rapprochement nocturne des Stream↔Batch ; écarts> seuil → tiquets.

14) RACI

R (Responsible) : Streaming Platform (Stream infra), Data Engineering (Batch Model), Domain Analytics (métriques/règles), MLOps (fiches/Feature Store).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/Legal/DPO, Finance (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).
I (Informed) : BI/Produit/Commercialisation/Opérations.

15) Feuille de route

MVP (2-4 semaines) :

1. Kafka/Redpanda + 2 axes critiques ('payments', 'auth').

2. Flink-joba : watermark + dedup + 1 règle CEP (AML ou RG).

3. OLAP-vitrine 1-5 min + dashboards lag/late/dup.

4. Lakehouse Silver (ACID), le premier Gold. ggr_daily (D + 1 à 06:00).

Phase 2 (4-8 semaines) :
  • Incréments/CDC par domaine, SCD II, couche sémantique de métriques.
  • Le streaming DQ et les rapprochements nightly sont Stream↔Batch.
  • Régionalisation (EEE/Royaume-Uni/BR), DSAR/RTBF, Legal Hold.
Phase 3 (8-12 semaines) :
  • Simulateur de relais, versions canary/A-B des règles/métriques.
  • Cost-dashboards et quotas ; tiered storage; Exercice DR.
  • Autogénération de la documentation vitrine/métriques et lineage.

16) Chèque de mise en œuvre

  • Régimes/contrats dans le Registre ; les tests back-compat sont verts.
  • Stream: watermarks/allowed-lateness, дедуп, DLQ; Panneaux OLAP dans la vente.
  • Batch : incréments/CDC, SCD II, Gold D + 1 avec exportations WORM.
  • Une seule couche sémantique de métriques ; nightly rapprochement Stream↔Batch.
  • DQ-dashboards Freshness/Completeness/Validity ; alerte lag/late/dup.
  • RBAC/ABAC, cryptage, résidence ; DSAR/RTBF/Legal Hold.
  • Coût sous contrôle (cost/GB, cost/query, taille de l'état, les replis sont quantifiés).

17) Résultat

Stream et Batch ne sont pas des concurrents, mais deux engrenages d'un même moteur. Stream donne la réaction « ici et maintenant », Batch est la vérité vérifiable « pour le matin ». L'approche hybride Lakehouse, une seule couche de métriques et la discipline DQ/lineage permettent de construire des boucles analytiques rapides, reproductibles et compressives, optimales en SLA et en coût.

Contact

Prendre contact

Contactez-nous pour toute question ou demande d’assistance.Nous sommes toujours prêts à vous aider !

Commencer l’intégration

L’Email est obligatoire. Telegram ou WhatsApp — optionnels.

Votre nom optionnel
Email optionnel
Objet optionnel
Message optionnel
Telegram optionnel
@
Si vous indiquez Telegram — nous vous répondrons aussi là-bas.
WhatsApp optionnel
Format : +code pays et numéro (ex. +33XXXXXXXXX).

En cliquant sur ce bouton, vous acceptez le traitement de vos données.