GH GambleHub

Magazine de date și modele OLAP

(Secțiunea: Tehnologie și infrastructură)

Scurt rezumat

Depozit de date (DWH) - nivelul de analiză de bază al iGaming: rapoarte către autoritățile de reglementare, profitabilitate după produs/piață, cohortă LTV, analiză antifraudă, segmentare CRM și tablouri de bord în timp real. DWH sustenabil este construit pe un model clar de date (Star/Snowflake/Data Vault), integrare robustă (ETL/ELT + CDC), performanță atentă (motoare de coloană, părți, MV-uri), semantică metrică strictă, securitate/PII și management al costurilor.

Abordări arhitecturale

Classic DWH (Kimball vs Inmon)

Kimball (Dimensional/Star/fulg de zăpadă): cazuri rapide de raportare; se concentreze pe fapte și dimensiuni, istoria SCD. Valoare rapidă a timpului.
Inmon (Corporate Information Factory): nucleu normalizat + storefronturi; mai grele în timp, dar strict și central.

Data Vault 2. 0

Hubs-Links-Sateliți: Un model scalabil „brut” pentru integrarea sursei și auditarea schimbărilor. Star storefronts sunt construite pe partea de sus.

Lacul de date/Lakehouse

Data Lake: fișiere brute (parchet/ORC) + directoare (stup/lipici/unitate/metastore).
Lakehouse: un singur strat pentru lot/flux, tabele ACID (Delta/Iceberg/Hudi), călătorie în timp, upsert/îmbinare, fișiere compacte, Z-order/clustering.

Medalion (bronz-argint-aur)

Bronz: date brute (brute) + CDC.
Argint: purificat și conform.
Aur: cazuri de afaceri/metrici/cuburi.
Potrivit pentru hibrizi (Kafka → bronz; Silver в Lakehouse; Aur в ClickHouse/BigQuery/Fulg de zăpadă).

Modele OLAP: Stea, Fulg de nea, Vault de date

Schema stelară (stea)

Tabele de fapte: tranzacții (rate, depozite, sesiuni).
Dimensiuni: jucător, joc, furnizor, data/ora, geo, canal de atracție.
Pro: Joynes simplu, performanță prezis.

Fulg de zăpadă

Normalizarea dimensiunilor (ierarhii de țară/regiune/oraș, ierarhii de produse).
Argumente pro: mai puțină dublare; minus - mai multe joynes.

Data Vault → Star

Adăugăm modificări brute la DV (audit, reproductibilitate completă), construim ferestre de raport precum Star/Snowflake.

Integrare: ETL/ELT, CDC, modificări lente

Conducte

Outbox/CDC de la conectorii OLTP (Postgres/MySQL) → Kafka/ → Bronze.
ELT: curățare, dedup, normalizare în Silver.
Logica de afaceri și agregări în Aur/storefronts.

SCD (Schimbarea lentă a dimensiunilor)

Tip 1-Overwrite (pentru câmpuri neesențiale).
Tipul 2: istoric (versiuni datate) - standard pentru profile/canale/preturi.
Tipul 3: depozitarea unei perechi de valori (rare).

Exemplu SCD2 (SQL, vizualizare generală):
sql
-- insert new dimension version
INSERT INTO dim_player (player_sk, player_id, country, valid_from, valid_to, is_current)
SELECT gen_sk(), s. player_id, s. country, now(), '9999-12-31', true
FROM staging_player s
LEFT JOIN dim_player d ON d. player_id = s. player_id AND d. is_current = true
WHERE d. player_id IS NULL OR d. country <> s. country;

-- closing the old version
UPDATE dim_player d
SET valid_to = now(), is_current = false
FROM staging_player s
WHERE d. player_id = s. player_id AND d. is_current = true AND d. country <> s. country;

Strat semantic și măsurători „adevărate”

Introduceți un singur strat semantic: definițiile GGR, NGR, Net Deposits, ARPPU, LTV, Churn, Retention Cohorts.
Valorile ca cod (dbt metrics/LookML/Semantic Layer) → aceleași formule în toate rapoartele.
Calendar: tabel data/ora cu atribute de TZ/regiuni/weekenduri/campanii.

Bolți și motoare: selectarea pentru profil

Coloana și Cloud DWH

ClickHouse: scanări/agregări ultrarapide, reprezentări materializate, proiecții; este diferit pentru evenimente/telemetrie și vitrine de marketing.
BigQuery: serverless, scară, cache-uri automate/clustere; prețul per scanare; convenabil pentru sarcini mixte și ad-hoc.
Fulg de zăpadă: ramură de calcul/depozitare, clustere la cerere, călătorie în timp; transparent pentru diferite echipe.
Deplasare spre roșu/Vertica/Pinot/Druid: opțiuni pentru OLAP/în timp real.

Tuning profil

Partiționarea după dată/regiune/canal.
Clustering/sortare după tastele filtru/joyn.
Compresie și codificare prin dicționare.
Preagregări (rollup, cuburi), vizualizări materializate.
Funcții aproximative (HyperLogLog/approx_distinct) pentru evaluări ieftine.

Inginerie de performanță

Partiționarea și gruparea

Partidul este limita compartimentului. Petreceri zi/oră pentru evenimente.
Clustering (sortare taste/Z-ordine) - accelerează intervalele și se alătură.

Vizualizări materializate (MV)

Pre-raport GGR/NGR pe zi/țară/produs.
Actualizare incrementală din fluxul CDC.

Exemplu de ClickHouse (fuzionare-holding MV):
sql
CREATE MATERIALIZED VIEW mv_ggr_daily
ENGINE = SummingMergeTree()
PARTITION BY toYYYYMMDD(ts)
ORDER BY (country, product_id, toDate(ts)) AS
SELECT toDate(ts) AS d,
country,
product_id,
sum(stake) AS stake_sum,
sum(win)  AS win_sum,
sum(stake - win) AS ggr
FROM bets
GROUP BY d, country, product_id;

Modele incrementale (dbt/ELT)

Strategii 'insert _ overwrite' by party, 'merge' prin chei CDC, 'watermark' prin 'update _ at'.

Alăturați-vă strategiilor

Replica de măsurători în fiecare segment de lot (denorm).
Difuzare dims mici; amestecați fapte mari sortate după cheie.

Cost: control și optimizare

BigQuery/fulg de zăpadă: dimensiunea de scanare limită (părți de proiectare/clustere), permite cache rezultat/vizualizări materializate, limita auto-quest-uri BI.
ClickHouse: dimensiunea lotului, frecvența merjey, bugetul de stocare (TTL pentru evenimente brute, agregări sunt durabile).
Semantica metrică reduce calculul „dublu”.
Tăierea datelor: păstrarea pentru bronz, agregarea pentru aur.

Calitatea datelor (DQ), catalog, descendență

DQ-verificări: completitudine, unicitate, intervale, reguli de afaceri (de exemplu, GGR ≥ 0 în agregate).
Catalog de date și Lineage: descrieri tabel/câmp, proprietari, clasificare PII, urmărire raport la sursă.
Sisteme de control: contract pentru evenimente/CDC, alerte pentru modificări incompatibile.

Siguranță, conformitate și multi-chirie

Segmentare PII: zone individuale, mascare/pseudonimizare, coloane cu criptare KMS.
RBAC/ABAC: roluri la nivelul proiectului/schemei/tabelului/rândului (RLS), role pentru „need-to-know”.
Localizarea datelor: galeti/depozite regionale (EU/TR/LATAM).
Audit de acces: cine a citit/schimbat storefronturi și modele.

DR, copii de rezervă și reproductibilitate

Versionarea codului de date (dbt/git), Dev/QA/Prod mediu.
Instantanee Metastor/catalog + mese de călătorie în timp.
Straturi de retenție/TTL Bronz/Argint/Aur; exportul de vitrine critice.
Ziua jocului: restaurarea vitrinelor, verificarea integrității măsurătorilor.

Storefronturi în timp real și hibride

Stream-to-OLAP: Kafka → ClickHouse/Pinot/Druid pentru vitrine de minut.
Vizualizări materializate + CDC pentru actualizări aproape online (5-15 min).
Stratul semantic rămâne același: valorile sunt identice în timp real și lot.

GGR by Day and Country Showcase Exemplu (Generic SQL)

sql
CREATE TABLE fact_bets (
bet_id   BIGINT,
player_sk BIGINT,
game_sk  BIGINT,
country_sk BIGINT,
stake   DECIMAL(18,2),
win    DECIMAL(18,2),
ts     TIMESTAMP
) PARTITION BY DATE(ts);

CREATE TABLE dim_country (
country_sk BIGINT PRIMARY KEY,
iso2    STRING,
region   STRING,
valid_from TIMESTAMP,
valid_to  TIMESTAMP,
is_current BOOL
);

-- Showcase
CREATE MATERIALIZED VIEW mart_ggr_daily AS
SELECT
DATE(ts) as d,
c. region,
SUM(stake) AS stake_sum,
SUM(win)  AS win_sum,
SUM(stake - win) AS ggr
FROM fact_bets f
JOIN dim_country c ON c. country_sk = f. country_sk AND c. is_current
GROUP BY d, c. region;

Lista de verificare a implementării

1. Definiți sursele și domeniile, fixați dicționarul metric.
2. Selectați modelul: DV pentru straturi brute/auditate + Stea pentru cazuri de afișare.
3. Design partide/clustere pentru interogări cheie și ferestre.
4. Configurați CDC/ELT, politica SCD și cheile surogat.
5. Introduceți un strat semantic (valori ca cod) și un calendar dată/oră.
6. Creați MV-uri/preagregări pentru rapoarte costisitoare.
7. Activați controlul DQ/director/descendență și schemă.
8. Definiți RBAC/PII/localizare, criptare, audit.
9. Configurați monitorizarea p95/p99, costurile, alertele privind degradarea și depășirea.
10. Exerciții DR regulate și reproductibilitatea mediilor.

Anti-modele

„Un fapt gigantic fără partide” → scanări terabyte și scorul este în creștere.
Definiții inconsecvente ale metricii în diferite tablouri de bord.
Lipsa de SCD2 în cazul în care afacerea necesită istoricitate.
Normalizarea prematură a măsurătorilor: joynes inutile și rapoarte lente.
Date brute fără verificări DQ și descendență → rapoarte „nimic”.
Absența permisiunii/TTL → depozitarea gunoiului și explozia costurilor.

Rezumat

Fiabil iGaming-DWH este un model clar (DV→Star), un singur dicționar metric, partiții corecte/grupare, storefronturi materializate, DQ/descendență strictă și RBAC/PII/localizare. Adăugați streaming hibrid pentru prospețime, disciplină bazată pe ELT și valoare - și obțineți o platformă de analiză durabilă care se scalează la turnee, rapoarte de reglementare și cercetare ad-hoc fără surprize în p99 și buget.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.