GH GambleHub

Məlumatların təsdiqi

1) Niyə iGaming platformasına lazımdır

Hesabatlara və KPI-yə etimad: GGR/NET, dönüşüm, saxlama, RG siqnalları.
ML/skoring etibarlılığı: antifrod/tövsiyələr/RG üçün düzgün xüsusiyyətlər.
Real-time əməliyyatlar :/UX ödənişlərinə məruz qalmadan sürüklənmə/hadisə itkisi zamanı alertlər.
Komplayens: PII/sirlərin olmaması; sübut edilə bilən izlənilebilirlik.

2) Harada valid: nəzarət səviyyələri

1. Enjest (batch/stream): sxem, növləri, məcburi sahələr, idempotency/dedup.
2. Axın prosessinqi: pəncərələr/su işarələri, sifariş, qaçırma/gecikmə, exactly-once.
3. ETL/ELT və transformasiya: linklər/coyns, aqreqatlar, biznes balansları.
4. DWH/vitrinlər (Gold): masalar arasında uyğunluq, təravət, açarların unikallığı.
5. Feature Store/online: fich diapazonları, online oflayn uyğunluq.
6. BI/API: hesablamalar və filtrlər, latency/freshness SLAs, k-anonimlik.

3) Yoxlama növləri (kataloq)

Sxemlər: tip/nullable/enum/regex/JSON-shape; uyğun olmayan dəyişikliklər → stop.
Domen: ≥ 0 məbləğləri, ∈ valyutası {EUR, USD, TRY, BRL}, ≤ limit dərəcəsi, lisenziya ∈ ölkə.
Kimlik/açarlar: birincil açar unikaldır, xarici key «asma» deyil.
Sahələrin keyfiyyəti: doluluq, uzunluqlar, format (IBAN, BIN, e-mail token).
Statistika/baza xətləri: tezliklər, paylama, kvantil dəhlizləri.
Anomaliyalar: həcmdə/hissələrdə kəskin sıçrayışlar, sıfır/dublikatlar, schema drift.
Təravət: max (ts) X-dən yuxarı deyil; lag ingest → gold ≤ T.
Konsistentlik: detallar üzrə məbləğ = birləşdirilmiş; multi-table reconciliation.
Gizlilik/Təhlükəsizlik: Sıfır-PII icazə verilən zonalar xaricində; tokenizasiya/maskalar.
Tənzimləyici: RG/AML sahələri mövcuddur və inandırıcı (tarixlər, əlamətlər).

4) Data Contracts (məlumat müqavilələri)

Müqavilə mənbə və istehlakçılar arasında sxem + keyfiyyət qaydaları + SLO qeyd edir.

Minimum müqavilə (fraqment):
yaml dataset: payments_ingest_v2 owner: team-payments schema:
id: {type: string, pattern: "^[a-f0-9]{32}$", unique: true}
ts: {type: timestamp, timezone: "UTC", nullable: false}
amount: {type: decimal(18,2), min: 0. 00}
currency: {type: string, enum: ["EUR","USD","TRY","BRL"]}
psp: {type: string, required: true}
quality:
freshness_max: "PT5M"
completeness_min: 0. 995 duplicate_rate_max: 0. 001 pii_allowed: false slo:
p95_ingest_latency_ms: 30000 success_rate: 0. 995

Müqavilə dəyişiklikləri semver və miqrasiya vasitəsilə: 'MAJOR' sındırır, 'MINOR' sahəni əlavə edir, 'PATCH' təsviri düzəldir.

5) «Gözləntilər» (expectations) və siyasət

Gözləntilər - paylaynlarda (batch/stream) yerinə yetirilən deklarativ yoxlamalar.

Gözləmə nümunələri (YAML):
yaml expectations:
- name: unique_primary_key check: "unique(id)"
severity: "error"
- name: amount_non_negative check: "amount >= 0"
severity: "error"
- name: currency_enum check: "currency in ['EUR','USD','TRY','BRL']"
severity: "error"
- name: ts_fresh_enough check: "now() - max(ts) <= interval '5 minutes'"
severity: "warn"
- name: pii_absent check: "no_plain_pii(columns: ['email','card','iban'])"
severity: "error"
Cavab siyasəti:
  • 'error' → karantin partiyası/batcha, xəbərdarlıq + bilet; blok downstream.
  • 'warn' → keçir, lakin təhlil üçün bir vəzifə yaradır; keyfiyyət işarəsi.
  • 'info' → yalnız monitorinq.

6) Axın: yoxlamaların xüsusiyyətləri

Watermarks/late data: «≤ 120s» gecikməsinə icazə veririk, əks halda - karantin; son pəncərələri kompensasiya.
Idempotency: hadisə açarı + hash payload → deadup broker/axın.
Exactly-once: kritik axınlar (ödənişlər/raundlar) üçün əməliyyat sinqi (+ idempotent sinks).
Həcm sayğacları: «gözlənilən» vs «pəncərədən alınan»; uyğunsuzluq → alert.

Flink qaydaları şablonu (psevdo):
scala val deduped = stream
.keyBy(_.id)
.process(new DeduplicateWithin(Time. minutes(10)))

val validated = deduped
.filter(_.amount >= 0)
.filter(_.currency in Set("EUR","USD","TRY","BRL"))

emitToQuarantineIfLate(validated, allowedLateness = 120. seconds)

7) DWH/SQL: invariant və yoxlama

SQL-yoxlama (nümunə):
sql
-- uniqueness
SELECT id, COUNT() c FROM gold. payments GROUP BY 1 HAVING c>1;

-- freshness
SELECT NOW() - MAX(ts) AS lag FROM gold. payments;

-- reconciliation of totals
SELECT
SUM(amount) AS by_rows,
(SELECT total_amount FROM gold. payments_summary WHERE date=CURRENT_DATE) AS by_summary
FROM gold. payments
WHERE date = CURRENT_DATE;

Vitrinlərlə matç: gündəlik yoxlamalar 'detail → summary', uyğunsuzluq hesabatları, avtomatik sorğu.

8) Gizlilik və təhlükəsizlik

PII-default redaktə: girişdə maskalar/tokenlər; «xam» e-poçt/kart/telefon log qadağan.
Icazə siyasəti: PII ilə cədvəllər - ayrı təbəqə/kataloq, rollar üzrə giriş (RBAC/ABAC).
Hesabatların K-anonimliyi: kəsikdə minimum N sətir.
Leak detektorları: PII şablonları, «sirləri» (açarlar/tokenlər) üçün müntəzəm yoxlamalar.
Yurisdiksiyalar: geo/tenant-izolyasiya (ölkə/marka/lisenziya), ayrı-ayrı açarlar.

9) Keyfiyyət metrikası və SLO

Keyfiyyət ölçmələri (D):
  • Freshness - max (ts) gecikməsi.
  • Completeness - boş olmayan/gözlənilən qeydlərin payı.
  • Uniqueness - açarların təkrarlanması.
  • Consistency - invariantlar və balanslar (cədvəllərarası).
  • Accuracy - xarici mənbə/domen qaydaları ilə yoxlama.
  • Validity -/enum/regex növlərinə uyğunluq.
SLO nümunələri:
  • `Freshness payments_gold ≤ 5 мин` (p95).
  • `Completeness game_rounds ≥ 99. 7 %/gün '.
  • `Duplicate_rate ≤ 0. 1‰`.
  • `PII_leak = 0`.

10) Alertlər, biletlər və runbook

Routing: Slack/PagerDuty → domen sahibi; avtomatik olaraq nümunələr və diff tətbiq.
Qruplaşdırma: «labels: dataset = payments, brand = TR» dəstinə bir hadisə.

Runbook (nümunə "Freshness breach: payments_gold"):

1. ingest lag və broker növbə yoxlayın.

2. PSP tərəfindən «gözlənilən vs alındı» müqayisə.

3. Retrains aktiv/PSP marşrutu keçid.

4. Səbəbini izah edin; bektlərin restartı; post-mortem keçirmək.

11) Version, testlər və waiver prosesi

Semver keyfiyyət qaydaları: 'quality @MAJOR. MINOR. PATCH`.
Vahid transformasiya testləri (SQL/DBT/payton) və mənbələr üçün müqavilə testləri.
GOLDEN-setlər: məlum uyğunsuzluq/sızma halları reqressiyada məcburidir.
Waiver (istisna): qaydanı pozmaq üçün qısa müddətli icazə (təsvir, sahibi, müddət, kompensasiya tədbirləri).

12) Kataloqlar/artefaktlar (hazır şablonlar)

12. 1 Dataset pasportu

yaml dataset: gold. game_rounds owner: team-games steward: data-governance contracts: ["games_rounds_v3"]
quality_slo:
freshness_p95: "PT10M"
completeness_min: 0. 997 uniqueness_max_dup: 0. 0005 alerts:
channels: ["#dq-incidents","#games-ops"]
severity_map: {error: "P1", warn: "P2"}

12. 2 Karantin siyasəti

yaml quarantine:
storage: "s3://quarantine/payments/"
retention: "P30D"
access: ["team-payments","data-governance"]
auto_reprocess:
cron: "/15  "
max_attempts: 3

12. 3 Expectation для Feature Store

yaml featureset: fs_payments_online_v1 checks:
- name: feature_freshness check: "now() - max(feature_ts) <= interval '60 seconds'"
severity: "error"
- name: range_amount_avg check: "amount_avg in [0, 2000]"
severity: "warn"
- name: enum_device check: "device in ['ios','android','web']"
severity: "error"

13) iGaming xüsusiyyətləri: hazır hallar

Ödənişlər/PSP: depozitlərin/hesabatların məbləğinin PSP hesabatları ilə müqayisəsi; çatışmayan statuslar → karantin batch; 'decline _ rate'.
Oyun provayderləri: 'rounds _ per _ min' vs baseline + schema drift by provayder → A provayder transformasiya bloku, status banner.
RG/AML: məcburi sahələr (limitlər, öz-istismar, KYC-statuslar); vaxtı keçmiş KYC → ödəniş blokunda bayraq, komplayens bilet.
Marketinq/CRM: kampaniya parametrlərinin etibarlılığı, UTM, hadisələrin deadup; vitrinlərdə k-anonimlik.

14) Tətbiqi yol xəritəsi

0-30 gün (MVP)

1. Əsas dəstlər üçün müqavilələri daxil edin: payments, game_rounds, users, features.
2. Gözləmə kataloqu (10-15 baza) + karantin + alertlər.
3. Dashbord Freshness/Completeness/Uniqueness; hadisələrin hesabatı.
4. Runbook’и для `Freshness`, `Duplicates`, `Schema drift`.

30-90 gün

1. Cədvəllərarası yoxlamalar və balanslar; waiver prosesi və semver qaydaları.
2. Axın-validasiya (late data, dedup, watermarks); PII detektorları.
3. CI/CD ilə inteqrasiya: mənbələr və transformasiyalar üçün müqavilə testləri.
4. SLO keyfiyyətli OKR domen komandaları.

3-6 ay

1. AIOps-eşik ipuçları; səbəblərin avtomatik lokallaşdırılması.
2. Çapraz marka/geo keyfiyyət siyasəti və uyğunluq hesabatları.
3. Post-mortem P1 insidentləri → qızıl-set və qaydaların doldurulması.
4. Axınların alertinqi və anomaliyaların analizi ilə əlaqə (vahid kontur).

15) RACI

Data Governance (A/R): standartlar, müqavilələr, qaydaların auditi.
Domain Owners (R): domen gözləntiləri və invariantlar.
Data Platform (R): gözləmə çərçivəsi, karantin, risk, monitorinq.
Security/DPO (A/R): gizlilik/PII/k-anonimlik, geo/tenant-izolyasiya.
SRE/Observability (C): hadisələrin marşrutlaşdırılması, SLO/SLI.
Product/Finance (C): biznes balansları, hadisələrin prioritetləri.

16) Anti-nümunələr

Validasiya «yalnız DWH» - gec, bahalı, ağrılı.
Heç bir karantin yoxdur - «palçıq» Gold/ML-ə gedir və etimadı pozur.
Mövsümlük/saat/bazar olmadan sərt astanalar → fırtına alert.
Sahibinin olmaması və qaydaların semver → xaos istisnaları.
PII və «ümumi kanalda ekran görüntüləri» ilə Log.
Daimi kontur əvəzinə birdəfəlik «sanitar günlər».

17) Əlaqəli bölmələr

DataOps-Practices, Data Audit və Version, Mənbə və Data Way, Data Stream Alerts, Anomaliyalar və Korrelyasiya Analizi, Access Control, Data Security & Şifreleme, Data Depolama Siyasəti, MLOps: modellərin istismarı.

Yekun

Validasiya sonda filtr deyil, enjestdən və axından vitrinlərə və onlayn fiçə qədər keyfiyyət müqaviləsidir. Aydın gözləntilər, karantin, alertlər və SLO məlumatları etibarlı bir aktivə çevirir: hesabatlar düzgündür, modellər sabitdir, ödənişlər təhlükəsizdir, uyğunluq sakitdir.

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!

Telegram
@Gamble_GC
İ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.