GH GambleHub

Məlumatların zənginləşdirilməsi

1) Təyinat və biznes dəyəri

Zənginləşdirmə «xam» hadisələri faydalı faktlara çevirir, kontekst və əlamətlər əlavə edir:
  • Maliyyə/hesabat: fx-məbləğlərin normallaşdırılması, bazarlara/vergi dərəcələrinə bağlanması, GGR/NGR hesablanması.
  • Komplayens/AML/RG: Risk skorları, sanksiya/RER etiketləri, RG limitləri, davranış əlamətləri.
  • Marketinq/məhsul: trafik mənbələri, seqmentlər, missiyalar/axtarışlar, personallaşdırma.
  • SRE/əməliyyatlar: trafik üçün geo/ASN, müştəri/cihaz növü, fayllar və buraxılışlar.

Əsas nəticə modellərin dəqiqliyini, hesabatların keyfiyyətini və qərar qəbul sürətini artırmaqdır.


2) Zənginləşdirici mənbələr (təxmini kataloq)

Referans/kataloqlar: oyunlar, provayderlər, bazarlar/yurisdiksiyalar, valyutalar, vergi cədvəlləri, bayram təqvimi.
KYC/KYB/RG: yoxlama səviyyələri, statuslar, özünü istisna etmələr, limitlər, yaş qrupları.
AML/sanksiyalar/PEP: skrininq hitləri, siyahılar, risk səviyyələri.
Şəbəkə və qurğular: IP → geo/ASN, cihaz/OS/brauzer, device fingerprint.
Ödəniş provayderləri (PSP): BIN cədvəlləri, metodları, MCC, risk etiketləri.
FX/vaxt: hadisə tarixinə valyuta məzənnələri, yerli saat kəmərləri/DST.
Məzmun və marketinq: mənbələr/kampaniyalar/UTM, filiallar, seqmentlər.
Modellər və evristiklər: əvvəlcədən öyrənilmiş skorinqlər, embeddinqlər, kateqoriyalı mappinqlər.


3) Zənginləşdirmə növləri

Lookup-join: açar nöqtəsi (game_id, BIN, ip_range, user_pseudo_id).
Dimension attach: ölçü qoşulma (dim.) faktlara.
Derived fields: hesablanan sütunlar (amount_base, local_time, tax_rate).
Aggregations/velocity: pəncərə sayğacları (N dərəcələri/dəq, depozit məbləği/saat).
Risk/behavioral features: «son hadisənin vaxtı», share-of-wallet, gecə fəaliyyəti.
Geo/ASN/Device: ölkə kodu, region, operator, cihaz/brauzer növü.
Semantic mappings: provayderlərin/oyunların təsnifatı, oyunçu klasterləri.
ML-ficks: online/oflayn modelləşdirmə üçün əlamətlər (Feature Store).


4) Harada zənginləşdirmək üçün: Batch vs Stream

Stream (real-time): antifrod, RG-tetikleyicilər, SRE alertləri - gecikmələr p95 ≤ 2-5 s; cache lookup (Redis/Scylla), time ilə provayderlərə asenxron sorğular.
Batch (mikro-batch/gündəlik): Gold vitrinləri (GGR/RG/AML), uyğunlaşmalar, hesabatlar - sabitlik və tamlıq gecikmədən daha vacibdir.
Hibrid: sürətli online əlamət + gecə həddindən artıq (reconciliation/accuracy).


5) Memarlıq referansı

1. Bronze - xam hadisələr (append-only).
2. Silver (clean/conform) - normallaşma, açarlar, ilkin lookup 'i (fx, geo, dim.) .
3. Enrichment Layer - genişləndirilmiş əlamətlər, pəncərə aqreqatları, risk nişanları.
4. Feature Store - əlamətlərin reyestri (onlayn/oflayn uyğunluq).
5. Gold - BI/tənzimləyici/model altında vitrinlər; dəyişməz artefaktlar.
6. Xidmətlər - API/GraphQL, hesabat ixracatı, real vaxt riskləri.

Komponentlər: Kafka/Redpanda, Flink/Spark/Beam, Redis/Scylla (lookup), ClickHouse/Pinot (operativ oxu), Lakehouse (Delta/Iceberg/Hudi).


6) Müqavilələr və sxemlər

Schema-first: 'event _ time', 'schema _ version', sabit açarlar (user_pseudo_id, game_id, transaction_id).
Zənginləşdirmə nişanları: 'enrichment. version`, `enrichment. sources`, `fx_source`, `geo_source`, `model_version`.
Version: yeni əlamətlər nullable kimi əlavə olunur; breaking-dəyişikliklər - '/v2 'və ikiqat qeyd vasitəsilə.


7) Zənginləşdirmə nümunələri (SQL/psevdokod)

7. 1 FX-normallaşma və yerli vaxt

sql
SELECT p.transaction_id,
p.amount_orig,
p.currency,
r.rate   AS fx_rate_used,
p.amount_orig r.rate AS amount_base,
p.event_time,
convert_timezone(m.tz, 'UTC', p.event_time) AS local_time,
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'
JOIN dim.markets m ON m.code = p.market;

7. 2 Geo/ASN IP (psevdokod)

python geo = geo_db.lookup(ip)
asn = asn_db.lookup(ip)
record["geo_country"] = geo.country record["asn"] = asn.number record["enrichment"]["geo_source"] = "mmdb:2025-10-01"

7. 3 Depozit sürətinin pəncərə əlamətləri (stream)

sql
SELECT user_pseudo_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS deposits_sum_10m
FROM silver.payments
GROUP BY user_pseudo_id, TUMBLE(event_time, INTERVAL '10' MINUTE);

7. 4 RG limitləri ilə uyğunlaşma

sql
SELECT b., r.daily_deposit_limit, r.self_exclusion
FROM silver.bets b
LEFT JOIN dim.rg_limits r USING (user_pseudo_id);

8) Zənginləşdirmə keyfiyyəti (DQ)

Minimum qaydalar:
  • FX: 'fx _ rate _ used' NULL deyil, 'fx _ source' whitelist, hesablanmış 'amount _ base ≥ 0'.
  • Geo/ASN: uğurlu lookups payı ≥ 98% (bazarlar üzrə), 'country' istinad kitabında.
  • RG/AML etiketləri: 'valid _ from/valid _ to (SCD II) kəsişmir; tarixdə «dəliklərin» olmaması.
  • Aqreqatlar/pəncərələr: pəncərələrin düzgünlüyü (ikiqat hesablama yoxdur), completeness ≥ 99. 5%.
  • Model versiyaları: 'model _ version' mövcuddur, işarələrin sürüklənməsinə nəzarət.
YAML qaydalarının nümunəsi:
yaml table: enriched.payments rules:
- name: fx_present type: not_null column: fx_rate_used severity: critical
- name: country_known type: in_set column: geo_country set_ref: ref.countries severity: major
- name: rg_scd_valid type: scd_validity columns: [valid_from, valid_to]
severity: major

9) Gizlilik və uyğunluq

PII-nin minimallaşdırılması: psevdo ID ilə zənginləşdirin, real identifikatorlar - ayrıca konturda.
Geo-lokalizasiya və rezidentlik: regional marşrutlaşdırma (EEA/UK/BR), ayrı şifrələmə açarları.
DSAR/RTBF: zənginləşdirilmiş proyeksiyalar «gizlətmə «/redaksiyasını dəstəkləməlidir; istisnalar üçün hüquqi əsas saxlayın.
Legal Hold: hesabat artefaktları/halları üçün silinmələrin dondurulması.


10) Müşahidə və lineage

Linedge: xam hadisə → lookup/aqreqatlar → vitrinlər/modellər; mənbələrin versiyalarını qeyd edin ('fx _ source', 'geo _ source', 'bin _ source').
SLI/SLO: freshness p95 (Silver) ≤ 15 мин; uğurlu geo-lookups ≥ 98%; doldurulmuş əsas əlamətləri olan qeydlərin payı ≥ 99%; latency enrich axını p95 ≤ 2-5 s.
Daşbordlar: mənbələrə görə istilik kompleteness xəritəsi, kataloqlar/modellər versiyalarının xəritəsi, «bahalı» join 'lərin monitorları, əlamətlərin sürüşməsi.


11) Qiymət və performans

Caches/materialization: tez-tez lookup 'və Redis/Scylla; periodik snapshot.
Kompakt xüsusiyyətlər: aqreqatları saxlayın («xam» siyahılar deyil); Parquet/sütun formatları istifadə edin.
Partiyalaşdırma: tarix/bazar/tenant; tez-tez süzülən sahələr üzrə klasterləşdirmə.
Adaptiv tezlik: ağır enrich jobs - gecə; realtime - yalnız kritik.
Chargeback: cost/query və cost/GB-nin komandalar/fiqurlar üzrə uçotu.


12) Nümunələr və anti-nümunələr

Nümunələr:
  • Dimension Lookup + RG/KYC/provayderləri üçün SCD II.
  • Taymaut və fallback ilə Async Enrichment (etiket «unknown» + təkrar).
  • Online/offline razılaşma və keçid testləri ilə Feature Store.
  • Zənginləşdirmə üçün Rule-as-Code (eşik/kateqoriya kartları).
Anti-nümunələr:
  • Cache olmadan isti yolda xarici API-yə sərt bağlama.
  • Mənbələrin etiketsiz versiyaları ('fx _ source', 'geo _ source').
  • Denormalization «hər şey ilə» Silver (dəyəri/mürəkkəblik partlayışlar).
  • PII-nin analitik təbəqələrə gətirilməsi.

13) Proseslər və RACI

R (Responsible): Data Engineering (enrich/stream paylaynları), Domain Owners (əlamətlərin semantikası), MLOps (Feature Store).
A (Accountable): Head of Data / Chief Data Officer.
C (Consulted): Compliance/Legal/DPO, Finance (FX/налоги), Risk (RG/AML), SRE.
I (Informed): BI/Məhsul/Marketinq/Əməliyyatlar.


14) Tətbiqi yol xəritəsi

MVP (2-4 həftə):

1. Zənginləşdirici mənbələrin kataloqu (fx, geo, markets, RG/KYC).

2. Silver-normallaşma + əsas lookup 'i (fx/geo/dim.) .

3. İlk velocity aqreqatları (depozitlər/dərəcələr) və enriched. v1 cədvəllər.

4. Daşbord completeness/freshness, mənbələrin versiyası.

Faza 2 (4-8 həftə):
  • Sanksiyalar/RER/CUV, BIN-PSP cədvəlləri, device fingerprint.
  • Feature Store (əlamət nüvəsi) + online cache, Flink realtime-zənginləşdirilməsi.
  • Enrich qatında DQ qaydaları, lineage və «dry-run» simulyasiyası.
Faza 3 (8-12 həftə):
  • Personalizasiya (missiyalar/axtarışlar) və RG/AML detektorları online.
  • Dəyərin idarə edilməsi (kvotalar, materiallaşdırma, Z-order), multi-region.
  • Əlamət və kataloq sənədlərinin avtogenerasiyası («feature cards»).

15) Satış öncəsi keyfiyyət yoxlama siyahısı

  • Razılaşdırılmış açarlar və sxemlər, mənbələrin versiyaları imzalanmışdır.
  • fx/geo/RG/sanksiyalar/pəncərə üçün DQ qaydaları; alertlər və SLO.
  • Xarici lookup üçün caches/taymaut və fallback.
  • Linedge və dashbord dəyəri/performans.
  • Zənginləşdirilmiş cədvəllər üçün DSAR/RTBF/Legal Hold prosedurları.
  • Əlamətlərin sənədləşdirilməsi (owner, formullar, SLO, təsir).

16) Tez-tez səhvlər və onlardan necə qaçmaq olar

Kataloq/modellərin qeyd olunmamış versiyaları: həmişə '_ source' və 'model _ version' yazın.
Fx «geri» hesablanması: hadisə zamanı kursu istifadə edin; FX mənbəyini saxlayın.
PII qarışdırma: mappinqləri tokenləşdirin və təcrid edin.
Aqreqatlarda ikiqat uçot: pəncərələri və dedupu yoxlayın.
Cache olmadan sinxron xarici zənglər: async + cache/retray daxil edin.
Heç bir keçid phic: onlayn/offline vahid transformasiya kodu, uyğunluq testləri.


17) Lüğət (qısa)

Lookup/Dimension attach - məlumat kitabçasının açar faktına qoşulması.
Feature Store - ML üçün qeydiyyat və xidmət əlamətləri.
SCD II - ölçmələrin validlik intervalları ilə tarixləşdirilməsi.
FX - valyuta məzənnələri və məbləğlərin normallaşdırılması.
ASN - müstəqil şəbəkə sistemi; antifrod və geo-analitika üçün faydalıdır.


18) Yekun

Zənginləşdirmə hadisələri biliyə çevirmək üçün bir nizam-intizamdır: razılaşdırılmış açarlar və sxemlər, nəzarət edilən lookup 'və və aqreqatlar, versiyalı mənbələr, məxfilik, DQ və müşahidə. Təsvir edilmiş nümunələri izlədikdən sonra, təkrar edilə bilən, qənaətcil və komplayent vitrinlər və hesabat, personalizasiya və real vaxt risk detektorlarına hazır əlamətlər əldə edəcəksiniz.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.