Data Lake e DWH per casinò: schemi, scaricamenti SLA
Testo completo dell'articolo
1) Perché il casinò Data Lake e DWH
Rapporto e compilazione: scarichi regolatori (GGR/NGR, KYC/AML, RG), controllo del denaro.
Prodotto/marketing: LTV/retrazione, segmentazione, A/B, raccomandazioni.
Operazioni: monitoraggio dei provider, PSP, SLA live e biglietteria.
Soluzioni dati: vetrine veloci (DWH) sopra Lake (Lake).
Lake conserva i livelli crudi e puliti, DWH fornisce le richieste rapide e i modelli controllati.
2) Architettura arbitrale (lakehouse)
Sources (OLTP, Kafka, Webhooks, CDC)
│
├─Bronze (raw, append-only; Parquet/Delta/Iceberg)
│   ingestion_time, source_metadata, no schema changes in place
├─Silver (cleaned, conformed; dedup, PII masking, SCD2)
│   business keys, constraints, quality checks
└─Gold (marts; star/snowflake; cube tables, aggregates)
└─DWH/Query Engines (Snowflake/BigQuery/Trino/Spark SQL)Форматы: Delta Lake / Apache Iceberg / Hudi (ACID в lake, time travel, MERGE).
File: Parket + ZSTD/Snappy, target di 128-512 MB; Compagine di file minori.
Catalogo: Hive/Unity/Iceberg Catalog; zone dì bronze/silver/gold'sui serbatoi per region/tenant.
3) Diagrammi di dominio (concettuale)
3. 1 Portafoglio/contabilità
3. 2 Puntate/Settlent (RGS/live)
`bet`: `bet_id`, `round_id`, `player_id`, `game_id`, `stake_minor`, `currency`, `placed_at`, `brand/region`, `provider_id`, `in_bonus`.
`settlement`: `settlement_id`, `bet_id`, `round_id`, `win_minor`, `settled_at`, `jackpot_hit`, `bonus_state`.
3. 3 Pagamenti (cassa/PSP/cripto)
`payment_intent`: `intent_id`, `player_id`, `method`, `status`, `amount`, `currency`, `psp`, `created_at`.
«capture/refund/changeback»: tabelle separate con riferimenti a «intent _ id», «psp _ ref», codici di causa.
Крипто: `txid`, `network`, `confirmations`, `finalized_at`.
3. 4 Bonus/wager/jackpot
`bonus_grant`, `bonus_progress (wager)`, `jackpot_contribution`, `jackpot_payout`.
3. 5 Referenze e misurazioni
dim _ player (pseudo-ID, geo, canali, stato RG - senza PII nell'analisi), dim _ game, dim _ provider, dim _ psp, dim _ brand, dim _ region, misurazioni di calendario.
Chiavi e compatibilità: nei modelli Silver/Gold sono stabili le chiavi aziendali («bet _ id», «round _ id», «payout _ id», «intent _ id») e la semantica degli eventi «idempotati».
4) Flussi di carico: streaming + microbiatchi
Streaming (Kafka/Pulsar): eventi OLTP e webhoop, outbox/CDC, garanzie «almeno una volta» con deduplicazione in Silver.
CDC (Debezium/Login di replica) - Consente di modificare le tabelle OLTP (wallet/payments) di → Bronze.
Microbatchi: i rapporti PSP/banche/castodi (SFTP/API) di Bronze Raw Files stabiliscono la normalizzazione.
MERGE in Silver: deadup dì idempotency _ key/event _ id ", eliminazione dei ritardatari (" watermark "), SCD2 nelle misure.
5) SLA download e finestra di ritardo (watermarks)
5. 1 SLA tipici (punti di riferimento)
Wallet/ledger events: Bronze 1-2 min, Silver 5-10 min, Gold marts 15 min.
Bets/settlements: Bronze 1-2 min, Silver 10 min, Gold 30 min.
Payments (PSP webhooks): Bronze 5 min, Silver 15 min, Gold 30-60 min.
Cripto finalità: dipende dalla rete; una vetrina con una lag N di conferma.
Rapporti giornalieri PSP/banche: T + 1 fino alle 9:00 locali della regione.
5. 2 Finestre di ritardo
Watermark per tempo evento ('occurred _ at') + tolleranze:- portafogli/scommesse: 24-48 ore, pagamenti/PSP: 72 ore (ci sono siti retro), cripto: fino a 24 ore per reorghi rari.
- Eventi reprocess recenti - Ricalca le vetrine Gold incrementalmente (MERGE), registro delle regolazioni.
5. 3 Comunicazione SLA
La directory dei dati contiene gli attributi SLA: 'freshness _ target', 'freshness _ status', 'expected _ lag _ p95', 'watermark'.
Dashboard «freschezza» con alerti di infrazione.
6) Qualità dei dati (DQ) e contratti
Data Contracts per ogni argomento: schemi Avro/JSON, semver, campi obbligatori, invarianti aziendali (ad esempio, «win _ minor n' 0», «currency d'ISO-4217»).
Controlli DQ Silver: unicità delle chiavi, integrità referenziale, bilanciamento del portafoglio, validità dei codici PSP/cause, intervalli di date.
Severity: «ERRANTE», «WARN», «INFO».
Monitoring:% di violazioni, top cause, ticket automatico.
Sampling & replay - Conservare Bronze crude per il riciclo.
7) PII, residenza e sicurezza
La vetrina PII è separata dagli analisti: in Silver/Gold è un alias, maschera/hashtag, tokenizzazione.
Data residency: EU/UK/BR, ecc. - baguette/directory fisicamente separate; nessuna lettura crociata regionale senza consenso e proxy.
Доступ: RBAC/ABAC (Lake/DWH), row-level security по `tenant/brand/region`.
Crittografia: at-rest (KMS) e in-transit, chiavi per region/brand, controllo di accesso WORM e modifiche alle regole.
Diritto all'oblio: meccanismo di localizzazione dei dati di gioco senza cancellazione dei record finanziari (de-identità).
8) Modellazione delle vetrine Gold (stella)
8. 1 Fà tabelle
«fact _ bets» (puntata e settlent per riga/o due tabelle), «fact _ wallet _ entries», «fact _ payments» (depositi/cache/restituzioni), «fact _ bonus _ wager», «fact _ jackpot».
8. 2 Misure
`dim_date/time`, `dim_player` (pseudonymous), `dim_game`, `dim_provider`, `dim_psp`, `dim_brand`, `dim_region`, `dim_currency`.
8. 3 Metriche e calcoli
GGR/NGR, ritenzione/frequenza, RTP (per gioco/provider/regione), conversione di deposito, settle lag, success-rate PSP, cost-per-success, FX-PnL, jackpot content/payouts.
9) Prestazioni e costi
Partizionamento per «occurred _ date» + «region/tenant», talvolta «game _ id» per gli aggregati gold.
Clustering/Z-Order: «player _ id», «game _ id», «psp», «currency».
Compattazione e vuoto: pianificati'OTTIMIZE/COMPACT ', rimozione delle versioni «sospese» (data la rettifica legale).
Cache: result-cache/warehouse cache, materialization views per pannelli caldi.
Gli indici in DWH sono cluster/segmentati (Snowflake clustering keys, BigQuery partition + cluster).
Costo: Bronze fredde nel deposito oggetti, Gold hot/marzo-unità - in DWH; auto-parcheggio/auto-scale.
10) Linea, cartelle e documentazione
Data Catalog (OpenMetadata/Amundsen/Collibra) - Descrizione delle tabelle, proprietario, SLA, campi PII, criteri di accesso.
Linea: dall'origine (evento/CDC) alla vetrina e al rapporto; visibilità delle dipendenze per modifiche sicure.
Schemi Changelog: semver e registro dei deprecati; test di compatibilità con i pipline CI.
11) Assemblaggio dei dati
Ogni giorno:- 'wallet _ entry' i bilanci totali (accumulo di ), pagamenti: rapporti PSP/banche fact _ payments, cripto:' txid/network 'fact _ payments'.
- Категории: `match`, `timing`, `missing_source`, `missing_platform`, `amount_mismatch`.
- Alert: «mismatch»> soglia; aging non corretti> N giorni.
12) Tabelle SLA di istanze (esempio)
13) Pipline: da cosa raccogliamo
Ingestion: Kafka Connect/Debezium, servizi di ingestione cloud, SFTP pullers.
ETL/ELT: Spark/DBT/Trino/Beam/Flink, Airflow/Argo per l'orchestra.
Qualità: Great Expectations/Deeqase/dbt test.
Monitoraggio: OpenTelemetry + metriche Lake/DWH (freshness delay, job latency, cost).
Incidenti e ripetizione: reprocess da Bronze, chiavi di deduplicazione, pipline versionate.
14) Assegno fogli
Architettura e sicurezza
- Formato Lakehouse (Delta/Iceberg/Hudi) con ACID e time travel.
- Separare 'bronze/silver/gold', outbox/CDC come sorgenti principali.
- Isolamento PII, tornizzazione, RLS per «tenant/brand/region».
- Residenza a livello di baguette/cataloghi, chiavi/segreti per region.
- Controllo WORM delle modifiche a diagrammi, regole e regole di accesso.
Qualità e SLA
- Data Contracts e diagrammi semver test di compatibilità.
- Watermarks e reprocess, vetrine incrementali MERGE.
- Dashboard di freschezza e SLA-alert; owner di ogni tabella.
- Ricomposizione per portafoglio/pagamento/cripto.
Prestazioni e costi
- Partizionamento e clustering Compagine di file minori.
- Vetrine materializzate sotto i rapporti chiave.
- Scale automatico/auto-arcking, Retenschen policy e archivi.
15) Bandiere rosse (anti-pattern)
BI e i rapporti regolatori colpiscono direttamente OLTP.
Bronze «si scrive» e perde i dati crudi.
Niente watermarks, eventi tardivi «tagliati».
Nessuna deduplicazione dì idempotency _ key '/' event _ id 'è stata ripresa in Gold.
PII e denaro di diverse regioni sono conservati insieme senza RLS e residenza.
Gli schemi cambiano silenziosamente (senza semver/contratti) rompendo le vetrine.
Milioni di piccoli file Parket senza compattazione sono costosi.
Niente SLA/dashboard di freschezza; «sorprese» nel rapporto trimestrale.
16) Conclusione
Data Lake + DWH nel iGaming non è solo un magazzino, ma un ecosistema controllato: schemi e contratti standardizzati, ACID-lakehouse, nitidi SLA freschezza e finestre di ritardo, qualità e linea, sicurezza PII e residenza. Aggiungi la ricomposizione e i risparmi in termini di partizionamento/compagine, fornendo le basi per la rendicontazione, le soluzioni alimentari e la scalabilità aziendale senza migrazioni notturne o Excel manuali.
