GH GambleHub

Maglumatlaryň kadalaşmagy

1) Bellenilmegi

Kadalaşmak täzelenmeleriň dublikatlaryny we anomaliýalaryny ýok edýär, ýeke-täk gollanmalary we açarlary kesgitleýär, maglumatlary utgaşdyrylan we arzan edýär. iGaming-de bu GGR/NGR, AML/RG-analizleri, kadalaşdyryjy hasabat, antifrod we ML üçin möhümdir.

2) Nirede kadalaşdyrýarys

Bronze (raw): kadalaşdyrmaýarys - forensika üçin bolşy ýaly saklamak (append-only).
Kümüş (clean/conform): esasy kadalaşma (3NF/BCNF, gollanmalar, açarlar, SCD).
Gold (serve): maksatly penjireler -/BI okamak üçin dolandyrylýan denormalizasiýa mümkin.

3) Esasy ýörelgeler

1. Schema-first: Ähli tablisalarda aç-açan shemalar we açarlar bar.
2. Bitewi identifikatorlary: 'user _ pseudo _ id', 'session _ id', 'game _ id', 'provider _ id', 'transaction _ id'.
3. Ýeke-täk gollanmalar: walýutalar, bazarlar/ýurisdiksiýalar, KYC/RG statuslary, oýun üpjün edijileri, traffik kanallary.
4. Wagt we walýuta: saklamak 'event _ time' (UTC) we kadalaşdyrylan 'amount _ base' + 'fx _ source'.
5. Ewolýusiýa: semantik wersiýalar, diňe "sessiz" arakesmeler bolmazdan gabat gelýän üýtgeşmeler.
6. PII-minimalizasiýa: ulanyjy - pseudo-ID arkaly; mapping aýratyn saklanylýar, giriş çäklidir.

4) Adaty görnüşleri çalt

1NF: atom bahalary, sütünlerde massiwsiz (massiwler → çagalar tablisalary).
2NF: atributlar ähli açara baglydyr.
3NF: tranzitiw garaşlylyk ýok (atribut diňe açara bagly).
BCNF: Her kesgitleýji açar. "Ýadro" üçin ulanyň (payments/gameplay).

Amal: Tölegleriň we oýun işjeňliginiň kümüş modellerini azyndan 3NF saklaýarys; has berk BCNF - gollanmalar we baglanyşyk tablisalary üçin.

5) Standart domen modeli (Kümüş)

5. 1 gollanmalar

`dim. users '(psevdo-ID, ýurt, ýaş aralygy, RG-statuslar).
`dim. games '(game_id, provider_id, reanr, RTP, üýtgewsizlik).
`dim. providers '(provider_id, görnüşi, ygtyýarnamasy).
`dim. markets '(ýurisdiksiýa kody, düzgünleşdiriji).
`dim. fx_rates` (date, ccy_from, ccy_to, rate, fx_source).

5. 2 Faktlar (wakalaryň/geleşikleriň dar tablisalary)

`fact. payments` (transaction_id, user_pseudo_id, amount_orig, currency, amount_base, market, event_time, psp_ref, method).
`fact. bets` (bet_id, user_pseudo_id, game_id, stake_base, stake_ccy, outcome, event_time).
`fact. payouts` (payout_id, user_pseudo_id, game_id, amount_base, event_time).

Baglanyşyklar: faktlar, durnukly açarlar boýunça gollanmalar. Ähli pullary "başlangyç walýutada" we "esasy walýutada" köpeldýäris (amount_base), 'fx _ source' belleýäris.

6) Haýal üýtgeýän ölçegler (SCD)

Type I (täzeden ýazmak): orfografiki/kritiki däl düzedişler.
Type II (taryh): 'valid _ from/valid _ to/is _ current', üýtgeşmeleriň barlagy (mysal üçin, RG statusynyň üýtgemegi).
Type III (alternatiw sütün): gysga deňeşdirmeler üçin "öň/soň".

Maslahat: RG/KYC/marketing kanaly üçin - SCD II; Oýun gollanmalary üçin (RTP) - täsiriň tassyklanmagy bilen SCD II.

SCD II mysaly (ýönekeýleşdirilen):
sql
CREATE TABLE dim. users_scd (
user_pseudo_id STRING,
country STRING,
rg_status STRING,
valid_from TIMESTAMP,
valid_to  TIMESTAMP,
is_current BOOLEAN
);

7) De-duplikasiýa we açarlar

Içerki gatnaşyklar üçin surrogat açarlary (BIGINT/UUID).
Tebigy açarlar (mysal üçin, PSP-den 'transaction _ id') - aýratyn tassyklamak we saklamak.
Dedup '(event_id, source)' -da ingest + Silver-daky biznes açarlary.

Tölegleriň bahasy (mysal):
sql
CREATE TABLE silver. payments AS
SELECT EXCEPT(rn) FROM (
SELECT p., ROW_NUMBER() OVER (PARTITION BY transaction_id ORDER BY event_time) rn
FROM bronze. payment_events p
)
WHERE rn = 1;

8) Walýutalary we taýmzonlary standartlaşdyrmak

'event _ time' - hemişe UTC; penjireler üçin bazaryň ýerli/wagt zolagyny goşýarys.
Walýutalar: 'amount _ orig' i 'amount _ base' (mysal üçin, EUR) + 'fx _ source', 'fx _ rate _ used'.
Her gün: 'dim. Çeşme we heş-gol bilen fx_rates'.

Jemleriň kadalaşmagy (mysal):
sql
SELECT t. transaction_id,
t. amount_orig,
t. currency,
r. rate AS fx_rate_used,
t. amount_orig r. rate AS amount_base
FROM bronze. payment_events t
JOIN dim. fx_rates r
ON r. date = DATE(t. event_time) AND r. ccy_from = t. currency AND r. ccy_to = 'EUR';

9) Gollanmalaryň yzygiderliligi

Gollanmalaryň bitewi sanawy (games, providers, markets, currencies).
DQ walidatorlary: 'in _ set', FK-baglanyşyklar, SCD-iň özboluşlylygy, gapma-garşylygy.
Daşarky çeşmelerden (oýun üpjün edijileri, ýurtlar, PSP) "inçe" dimensiýalaryň awtogenerasiýasy.

10) Haçan denormallaşdyrmaly

Gold üçin denormalizasiýa:
  • durnukly "giň" hasabatlary (GGR, töwekgelçilikli penjireler);
  • BI-haýyşlary/daşbordlary çaltlaşdyrmak;
  • realtime-vitrin (ClickHouse/Pinot) SLA okamak üçin.
Düzgünler:
  • Hakykatyň çeşmesi Silver bolup galýar.
  • Denormallaşdyrylan meýdanlar - Silver-dan hasaplanan/göçürilen meýdanlar; logikanyň wersiýasy.
  • Islendik denormalizasiýa resminamalaşdyrylýar we dogrulygyna barlanýar.

11) "Ýyldyz" we "gar tanky" modeli

Staryldyz: bir hakykat + tekiz ölçegler - okamak has aňsat we çalt, ýazmak/utgaşdyrmak has gymmat.
Gar tanky: ölçegler kadalaşdyryldy (kiçi gollanmalar birikdirildi) - dublikatlardan az, haýyşlar has kyn.

Maslahat: "Gold" -da köplenç "ýyldyz", "Silver" -da - kadalaşdyrylan "gar bölekleri".

12) Shemalaryň ewolýusiýasy (safe changes)

Back-compatible: nullable sütünleri goşmak; baýdakly täze salgylanma bahalary.
Breaking: adyny üýtgetmek/görnüşini üýtgetmek/semantik üýtgeşmeler - diňe '/v2 'we migrasiýa döwri üçin goşa ýazgy arkaly.
Şertnamalar: JSON/Euro shema registry, consumer-tests на совместимость.

13) kadalaşmak üçin DQ-gözegçilikler

Iň az toplumy:
  • Açarlaryň özboluşlylygy: 'transaction _ id', 'bet _ id'.
  • Salgylanma bitewiligi: FK na 'dim.'.
  • Walýutalar: 'currency' from whitelist, 'fx _ rate _ used' non NULL, 'amount _ base> = 0'.
  • Wagt: akylly penjirede 'event _ time'; "geljekki" wakalaryň ýoklugy.
  • SCD-dogrulygy: kesişmeýän aralyklar 'valid _ from/valid _ to'.

14) SQL modelleriniň mysallary

Jedelleriň hakykaty (3NF):
sql
CREATE TABLE silver. fact_bets (
bet_id STRING PRIMARY KEY,
user_pseudo_id STRING NOT NULL,
game_id STRING NOT NULL,
stake_ccy DECIMAL(18,2) NOT NULL,
currency CHAR(3) NOT NULL,
stake_base DECIMAL(18,2) NOT NULL,
market CHAR(2) NOT NULL,
event_time TIMESTAMP NOT NULL
);
GGR üçin ýyldyz (Gold):
sql
CREATE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) AS event_date,
m. market,
g. provider_id,
SUM(b. stake_base) AS stakes_eur,
SUM(p. amount_base) AS payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) AS 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. markets m ON m. code = b. market
JOIN dim. games g  ON g. game_id = b. game_id
GROUP BY 1,2,3;

15) Gizlinlik we gabat gelmek

Ulanyjynyň "Silver" -da lakamlaşdyrylmagy; hakyky ID bilen baglanyşyk - aýratyn goralýan konturda.
RLS/CLS we meýdanlary gizlemek (e-poçta/PAN analitikada elýeterli däl).
Kataloglary/açarlary sebitleşdirmek, shemalary giňeltmek üçin DPO-gözegçilik.

16) Gözegçilik we lineage

Bronze → Silver → Gold-dan Data lineage, üýtgeşmeleriň we şertnamalaryň wersiýalary.
Metrikler: completeness, validity, FK-ýalňyşlyklar, dublikatlar, wagt boýunça "deşikler", haýyşnamanyň bahasy.
Maglumat kitaplarynyň we FX çeşmeleriniň arakesmelerinde alertler.

17) RACI

R: Data Engineering (Kümüş/Altyn modeller), Data Platform (shemalaryň sanawy, DQ).
A: Head of Data/Architecture.
C: Compliance/DPO (PII/retention), Finance (FX/GGR), Risk (RG/AML).
I: BI/Önüm/Marketing/Amallar.

18) Durmuşa geçirmegiň ýol kartasy

MVP (2-4 hepde):

1. Kataloglaryň sanawy (markets, currencies, providers, games).

2. Silver modelleri 'fact. payments`, `fact. bets ',' dim. '(3NF), SCD II for' dim. users`.

3. Walýutalaryň/taýmzonlaryň kadalaşmagy, esasy DQ düzgünleri (FK/uniqueness/in_set).

4. Ilkinji Gold-vitrin (GGR Daily) we deňeşdirme synaglary.

2-nji faza (4-8 hepde):
  • SCD giňeltmek, oýun wakalaryny ýapmak, üpjün ediji konform modelleri.
  • Shemalaryň laýyklygynyň awtotestleri, migrasiýa simulýatory, meta-maglumatlar katalogy.
  • Açarlary/partiýalary optimizirlemek, toplamak/Z-order.
3-nji faza (8-12 hepde):
  • Gold, SLA/bahasy üçin denormalizasiýa syýasaty; "ýyldyz/gar tanky" templeytalary.
  • Resminamalaryň awtogenerasiýasy, daşbordlarda lineage grafasy.
  • Sebitleýin kataloglar we şifrlemek açarlary, DR-maşklar.

19) Hil barlagy

  • Bitewi açarlar we gollanmalar tassyklandy.
  • 3NF kümüş, SCD "haýal" ölçeglere ulanylýar.
  • Walýutalar/wagt zolaklary kadalaşdy; 'fx _ source' kesgitlenýär.
  • DQ düzgünleri (FK/uniqueness/range/in_set) işjeň.
  • Denormalizasiýa resminamalaşdyryldy, dogrylyk synaglary geçirildi.
  • Täze/doly çyzgylar we metrikler daşbordlarda görünýär.

20) Ýygy-ýygydan ýalňyşlyklar we olardan nädip gaça durmaly

Analitikada PII garyşdyrma: mappingleri aýyryň, CLS/RLS ulanyň.
Silver-yň ýeterlik derejede kadalaşmazlygy: 3NF getiriň, ýogsam gymmat goldaw we deňeşdirme ýalňyşlyklary.
FX "hasabatyň hakykaty boýunça": kurslar "yzky" san bilen däl-de, wakada ýazylmalydyr.
Esasy ölçegler üçin SCD ýok: RG/KYC/kanallaryň taryhy ýitýär.
Gold-yň üýtgedilmegi: artykmaç join's → dolandyrylýan denormalizasiýa.
Shemalaryň aç-açan ewolýusiýasy: registry we consumer-tests ulanyň.

21) Jemleýji

Normalizasiýa - bu Kümüş derejeli düzgün: faktlar we ölçegler üçin 3NF/BCNF ýeke-täk açarlar we gollanmalar, dogry taryh (SCD) we wagt/walýutalaryň standartlaşdyrylmagy. Şeýle "skelet" bilen Gold-vitrinler öňünden aýdyp boljak, hasabatlary deňeşdirip boljak we eýeçiligiň bahasy gözegçilik astynda saklanar.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Telegram
@Gamble_GC
Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.