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 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ı).
- 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ı.
- 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.