GH GambleHub

Taryhy maglumatlar bilen işlemek

1) Bellenilmegi we ýörelgeleri

Maksat: öňki ýagdaýlary hasabatlaryň, modelleriň we derňewleriň gaýtalanyp bilinjek, takyk we barlaň ýaly derejede saklamak we gaýtadan işlemek.

Ýörelgeler:
  • Time-aware by design: shemalarda we soraglarda wagtyň aýdyň modelleri.
  • Reproducibility: D senesi üçin şol bir hasabat hemişe şol netijäni berýär.
  • Auditability: subut edilip bilinjek gelip çykyşy (lineage), üýtgemeýän gatlaklar, WORM zerur ýerlerde.
  • Cost-aware: arhiw gatlaklary, gysyş, düşnükli SLA bilen cold storage.
  • Privacy-by-design: retrospektiv amallarda we hukuk soraglarynda PII dolandyryşy.

2) Wagt modelleri

Waka-wagt: hakyky wakanyň wagty (stawka, goýum).
Processing-time: ulgam ýazgyny gaýtadan işläninde (dürli bolup biler).
Bitemporal: düzedişler üçin saklamak hem event-, hem processing-time.
Validity aralyklary: 'valid _ from', 'valid _ to', 'is _ current'.
As-of queries: "T pursatynda bilşiňiz ýaly" maglumatlary saýlamak.

Meýdan şablony:
sql event_time TIMESTAMP, -- event time processed_at TIMESTAMP, -- TIMESTAMP valid_from processing time, -- start of version validity valid_to TIMESTAMP, -- end of validity (NULL if current)
is_current   BOOLEAN

3) Saklamak gatlaklary we formatlary

Lakehouse: Bronze (raw append-only) → Silver (clean/SCD/normalizasiýa) → Gold (vitrinler).
ACID-форматы: Delta/Iceberg/Hudi (MERGE/Upsert, time-travel, snapshots).
Düzgünleşdiriji artefaktlar üçin Tiered storage: hot/warm/cold + WORM.
Partiýa ýerleşişi: 'event _ date', 'market', 'tenant'; klaster/Z-order ýygy-ýygydan predikatlar boýunça (user/game/provider).

4) Ölçegleriň taryhy (SCD)

SCD I: täzeden ýazmak - kritiki däl düzedişler üçin.
SCD II: doly taryhy; RG/KYC/trafik kanallary/oýun atributlary üçin maslahat berilýär.
SCD III: "öň/soň" - seýrek deňeşdirme ýagdaýlary.

SCD II mysaly:
sql
MERGE INTO dim. users_scd t
USING stage. users u
ON t. user_pseudo_id = u. user_pseudo_id AND t. is_current = TRUE
WHEN MATCHED AND (t. rg_status <> u. rg_status OR t. country <> u. country) THEN
UPDATE SET is_current = FALSE, valid_to = CURRENT_TIMESTAMP
WHEN NOT MATCHED THEN
INSERT (user_pseudo_id, country, rg_status, valid_from, valid_to, is_current)
VALUES (u. user_pseudo_id, u. country, u. rg_status, CURRENT_TIMESTAMP, NULL, TRUE);

5) Faktlaryň taryhy: suratlar we bitemporal

Suratlar (snapshots): günüň/aýyň ahyrynda agregatlaryň suraty (mysal üçin, gapjygyň balansy) - taryhy hasabatlaryň täzeden döredilmegini çaltlaşdyrýar.
Bitemporal faktlar: giç düzedişleri retrospektiv hasaplamalardan tapawutlandyrmak üçin waka-wagty we prosessing-wagty ýazýarys.
Exactly-once taryhy: 'event _ id' dedupy + MERGE.

6) Time-travel we köpeltmek

Time-travel: düzedişler, hadysalar, deňeşdirmeler üçin "T pursatynda" tablisalary okamak.
Logikanyň wersiýasy: transformasiýa artefaktlary (SQL/DBT, konteýnerleriň wersiýalary) we çykyş tablisalarynda "logic_version" bellikleri.
Frozen outputs: Gold-artefaktlar hasaba alynýar we gaýtadan ýazylmaýar, hash we eksport žurnaly elýeterlidir.

Soragyň as-of mysaly:
sql
SELECT
FROM silver. fact_bets VERSION AS OF 1678901234567
WHERE event_date = DATE '2025-10-31';

7) Backfill и Reprocessing

Backfill: taryhy aralygy ilkinji/goşmaça ýüklemek.
Reprocessing: kemçilikler düzedilenden ýa-da işewürlik düzgünleri üýtgedilenden soň gaýtadan hasaplamak.

Şkaflar:
  • Görkezijilik (MERGE/upsert), diapazonlar, kwotalar, metrikleri deňeşdirmek bilen "garaňky aralyk" (dry-run).
  • Netijäni belleýäris: 'recalc _ reason', 'logic _ version', 'reprocessed _ at'.
Runbook (shema):

1. Freeze häzirki Gold; 2) DLQ/DQ barlagy; 3) Silver; 4) metrikleri deňeşdirmek; 5) Gold gaýtadan ýygnamak; 6) neşir etmek we gol çekmek.

8) Takyklygy barlamak (reconciliation)

Gözegçilik pullary: dolanyşyklary/sanlary OLTP, PSP/üpjün edijiler bilen deňeşdirmek.
Iki aýlawly barlag: nusgada garaşsyz pipeline (A/B deňeşdirme).
Çäklendirmeler: mysal üçin, GGR ≤ 0 tapawudy. Günde 2%.

SQL nusgalary:
sql
-- Duplicates
SELECT transaction_id, COUNT() c
FROM silver. payments
GROUP BY transaction_id
HAVING COUNT() > 1;

-- Unknown Currencies/Markets
SELECT p. currency
FROM silver. payments p
LEFT JOIN ref. currencies r ON r. code = p. currency
WHERE r. code IS NULL;

9) Walýutalar, wagt, senenama: taryhy takyklyk

FX: 'fx _ rate _ used' we 'fx _ source' belleýäris.
Bazaryň ýerli wagty: Senenamalaryň gollanmasy arkaly DST/wagt zolaklary.
Baýramçylyklar/möwsümlilik: senenamanyň aýratyn tablisasy, modellerde we hasabatlarda ulanýarys.

FX kadalaşma mysaly:
sql
SELECT p. transaction_id,
p. amount_orig,
r. rate AS fx_rate_used,
p. amount_orig r. rate AS amount_base,
r. fx_source
FROM bronze. payment_events p
JOIN dim. fx_rates r
ON r. date = DATE(p. event_time) AND r. ccy_from = p. currency AND r. ccy_to = 'EUR';

10) PII, Complayens we Legal Hold

PII-minimallaşdyrmak: lakamlaşdyrmak, aýratyn goralýan mapping.
DSAR/RTBF: hasaplanyp bilinýän proýeksiýalar we taryhy gatlaklaryň saýlama redaktirlemeleri; saklamagyň kanuny borjy boýunça kadadan çykmalar dokumentleşdirilýär.
Legal Hold: diapazonlara/obýektlere, hasabat artefaktlary üçin WORM "doňdurma" baýdaklary.
Audit: elýeterliligiň we eksportyň üýtgemeýän ýazgylary.

11) Taryh üçin DQ we lineage

DQ-kod (mysal):
yaml table: silver. fact_bets slo:
completeness_percent: 99. 5 freshness_minutes: 60 rules:
- name: unique_bet type: unique columns: [bet_id]
severity: critical
- name: market_known type: in_set column: market set_ref: ref. markets
- name: ts_in_range type: temporal expression: "event_time BETWEEN date_sub(now(), interval 5 year) AND now()"

Lineage: giriş/transformasiýa/çykyş wersiýalaryny ýazga alýarys; garaşlylyk grafasy retro üýtgemeler üçin hökmanydyr.

12) Öndürijiligi we bahasy

Partiýa ýerleşdirilmegi: senesi/bazary/tenanty boýunça; 'user _ pseudo _ id '/' game _ id' boýunça agressiw klaster, eger köplenç süzülýän bolsak.
Formatlar: Parquet + statistika/gysyş; yzygiderli VACUUM/OPTIMIZE.
Materializasiýa: "gymmat" taryhy agregasiýalar üçin deslapky; çärýekleýin/ýyllyk hasabat üçin snapshotlar.
Arhiwlemek: köne partiýalary cold storage-a geçirmek (dikeldiş üçin SLA resminamalaşdyrylýar).
Sampler: diňe gözleg meseleleri üçin, düzgünleşdiriji/maliýe üçin däl.

13) ML üçin taryhy çyzgylar

Feature registry: Her hatarda formula, owner, SLO, 'model _ version' bar.
Utgaşdyrmak online/offline: bir kod transformasiýa bazasy, geçiş synaglary.
Alamatlaryň süýşmegi: PSI/KS döwürler boýunça, taryhy paýlamalary saklamak.

14) Haýyşnamalaryň nusgalary

As-of (senede): hasabatlaryň gaýtalanmagy.
Cohort-analiz: hasaba alyş/ilkinji goýumlaryň kogortlary, rolling penjireler.
Slowly changing facts: корректные join’ы с SCD II (`event_time BETWEEN valid_from AND COALESCE(valid_to, '9999-12-31')`).

SCD II bilen join 'a mysaly:
sql
SELECT b. bet_id, u. rg_status
FROM silver. fact_bets b
JOIN dim. users_scd u
ON u. user_pseudo_id = b. user_pseudo_id
AND b. event_time >= u. valid_from
AND (u. valid_to IS NULL OR b. event_time < u. valid_to);

15) Amallar we RACI

R (Responsible): Data Engineering (modeller/SCD/backfill), Data Platform (ACID/arhiw), Finance/Compliance (deňeşdirmeler/saklamak talaplary).
A (Accountable): Head of Data/CDO.
C (Consulted): Legal/DPO (DSAR/RTBF/Legal Hold), SRE (bahasy/SLA), Arhitektura.
I (Informed): BI/Önüm/Marketing/Amallar.

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

MVP (3-5 hepde):

1. Time-travel (Delta/Iceberg/Hudi) we esasy partizanlaşma bilen ACID tablisalary.

2. Esasy ölçegler üçin SCD II (users/games/providers).

3. Möhüm agregatlaryň gündelik snapshots (GGR Daily).

4. DQ-kod (uniqueness/in_set/temporal) + lineage-graf.

2-nji faza (5-10 hepde):
  • Bitemporal faktlar, as-of API/SQL-şablonlary, runbooks backfill/reprocessing.
  • FX/senenama/DST-baýlaşdyrmak, OLTP DWH barlagy/üpjün edijiler.
  • Hasabat bukjalary üçin arhiw cold storage, WORM, Legal Hold.
3-nji faza (10-16 hepde):
  • Doly awtomatlaşdyryş "replay & what-if", metrikleri we regressiýa töwekgelçiligini deňeşdirmek.
  • Taryhy çyzgylar we ML drift-gözegçilik, saklamak bahasy boýunça chargeback.
  • Metrikleriň we gaýtalanýan hasabatlaryň "as-of" dokumentasiýasy.

17) Azyk önüminden öň çek-sanawy

  • Tablisalar wagt-syýahatyny goldaýar; VACUUM/RETENTION syýasaty ylalaşyldy.
  • SCD II kritiki ölçegler üçin durmuşa geçirildi; join 'lar synagdan geçirildi.
  • D/M-de esasy agregatlaryň suratlary bar we yşyklar bilen barlanýar.
  • DQ düzgünleri işjeň; lineage logikanyň girelgelerini/çykyşlaryny we wersiýalaryny görkezýär.
  • DSAR/RTBF/Legal Hold taryhy gatlaklarda synagdan geçirildi.
  • Arhiwlemek we cold storage -dan dikeltmek resminamalaşdyryldy we barlandy.
  • Gözegçilik astynda saklamak bahasy (cost/GB, cold paýy, SLA dikeldiş).

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

Wagt modeliniň ýoklugy: event/processing/validity goşuň.
FX "tersine": elmydama wakanyň ugruny, 'fx _ source' -ni saklaň.
SCD bilen nädogry join's: 'is _ current' däl-de, dogry aralygy ulanyň.
Üýtgeýän Gold-vitrinler: hasabat çykyşlary üýtgewsiz (ýa-da wersiýa bilen) bolmaly.
lineage/DQ bolmasa: subut etmek we gözegçilik nokatlary ýok - olary ilkinji günden giriziň.
Dolandyrylmadyk çykdajy: gyzgyn bölekleri öçüriň, boşadyň, cold-a geçiriň.

19) Sözlük

As-of Query - "T pursatynda nähili görünýärdi".
Bitemporal - bir wagtyň özünde wakany we wagt prosessingini düzetmek.
Snapshot - döwrüň ahyrynda ýagdaýyň/agregatlaryň materiallaşdyrylan suraty.
Time-travel - tablisalaryň taryhy wersiýalaryny okamak.
WORM - üýtgewsiz saklamak (Write Once Read Many).

20) Jemleýji

Taryhy maglumatlar bilen işlemek diňe bir "uzyn saklamak" däl, eýsem wagtyň tertibi bolup durýar: açyk modeller event/processing/bitemporal, SCD we snapshots, reproducible as-of soraglar, berk deňeşdirmeler we gabat gelmek-gözegçilikler, gözegçilik etmek we tygşytly saklamak arhitekturasy. Bu gollanmany ýerine ýetirmek bilen, auditiň we işewürlik logikasynyň üýtgemegine çydamly hasabat, seljeriş we ML üçin ygtybarly taryhy binýady alarsyňyz.

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.