GH GambleHub

Maʼlumotlarni validatsiya qilish

1) Nima uchun iGaming platformasiga kerak

Hisobotlar va KPIga ishonch: GGR/NET, konversiyalar, ushlab turish, RG-signallar.
ML/skoring ishonchliligi: antifrod/tavsiyalar/RG uchun to’g "ri chiziqlar.
Real vaqt operatsiyalari: to’lovlar/UX zarar ko’rishidan oldin siljish/hodisalarni yo’qotish alertlari.
Komplayens: PII/sirlar bo’lmasligi kerak bo’lgan joylarda ularning mavjud emasligi; isbotlanishi mumkin bo’lgan izlanuvchanlik.

2) Qayerda validlash kerak: nazorat darajalari

1. Injest (batch/stream): sxema, turlar, majburiy maydonlar, idempotency/dedup.
2. Strim-protsessing: deraza/suv belgilari, tartib, o’tkazib yuborish/kechiktirish, exactly-once.
3. ETL/ELT va transformatsiyalar: havolalar/joylar, agregatlar, biznes-balanslar.
4. DWH/vitrinalar (Gold): jadvallar orasidagi mustahkamlik, yangilik, kalitlarning o’ziga xosligi.
5. Feature Store/onlayn: fich diapazonlari, oflayn onlayn muvofiqlik.
6. BI/API: hisoblash va filtrlar, SLAs latency/freshness, k-anonimlik.

3) Tekshirish turlari (katalog)

Sxemali: tip/nullable/enum/regex/JSON-shape; mos kelmaydigan o’zgarishlar → to’xtash.
Domen: ≥ 0, valyuta ∈ {EUR, USD, TRY, BRL}, ≤ limit stavkasi, litsenziya ∈ mamlakat.
Identifikatsiya/kalitlar: birlamchi kalit noyobdir, foreign key «osilgan» emas.
Maydonlarning sifati: toʻldirilishi, uzunligi, formati (IBAN, BIN, e-mail token).
Statistika/bazaviy chiziqlar: chastotalar, taqsimotlar, kvantil koridorlar.
Anomaliyalar: hajm/ulushlarning keskin sakrashi, nul/dublikatlar, schema drift.
Yangiligi: max (ts) X dan katta emas; lag ingest → gold ≤ T.
Konsistentlik: detallar bo’yicha summa = yig’ma; multi-table reconciliation.
Maxfiylik/xavfsizlik: ruxsat etilgan zonalardan tashqarida Zero-PII; tokenizatsiya/niqob.
Regulyator: RG/AML maydonlari mavjud va ishonchli (sanalar, belgilar).

4) Data Contracts (ma’lumotlar kontraktlari)

Kontrakt manba va iste’molchilar o’rtasida + sifat qoidalari + SLO sxemasini belgilaydi.

Eng kam kontrakt (parcha):
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

Kontraktni o’zgartirish semver va migratsiya orqali amalga oshiriladi:’MAJOR’buzadi,’MINOR’qo’shadi,’PATCH’tavsifini tuzatadi.

5) «Kutish» (expectations) va siyosat

Kutish - payplaynlarda (batch/stream) bajariladigan deklarativ tekshirishlar.

Kutish namunalari (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"
Javob berish siyosati:
  • ’error’ → partiya/batcha karantini, xabar berish + chipta; downstream bloki.
  • ’warn’ → oʻtadi, lekin tahlil qilish vazifasini yaratadi; sifat belgisi.
  • ’info’ → faqat monitoring.

6) Striming: tekshirishlarning o’ziga xos xususiyatlari

Watermarks/late data:’≤ 120s’kechikishiga yo’l qo’yamiz, aks holda - karantin; oxirgi derazalar bilan qoplaymiz.
Idempotency: hodisa kaliti + hash payload → deadup brokerda/oqimda.
Exactly-once: kritik oqimlar (to’lovlar/raundlar) uchun tranzaksion sing (+ idempotent sinks).
Hajm hisoblagichlari: «kutilgan» vs «derazadan olingan»; farqi → alert.

Flink qoidalari namunasi:
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: invariantlar va solishtirmalar

SQL tekshiruvi (misol):
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;

Vitrinalar bilan o’yin: har kuni taqqoslash’detail → summary’, tafovutlar hisoboti, avtomatik tekshirish.

8) Maxfiylik va xavfsizlik

PII - andoza tahriri: kirish joyidagi niqob/tokenlar; «xom» e-mail/kartalar/telefonlarni loglarda taqiqlaymiz.
Ruxsatnomalar siyosati: PII bo’lgan jadvallar - alohida qatlam/katalog, rollar bo’yicha kirish (RBAC/ABAC).
Hisobotlarning K-anonimligi: kesimdagi minimal N satr.
Leak-detektorlar: PII shablonlarini muntazam tekshirish, «sirlar» (kalitlar/tokenlar).
Yurisdiksiyalar: geo/tenant-izolyatsiya (mamlakat/brend/litsenziya), alohida kalitlar.

9) Sifat metrikasi va SLO

Sifat o’lchovlari (D):
  • Freshness - ortda qolish max (ts).
  • Completeness - boʻsh boʻlmagan/kutilayotgan yozuvlar ulushi.
  • Uniqueness - kalitlarning dublikatlari.
  • Consistency - invariantlar va balanslar (jadvallararo).
  • Accuracy - tashqi manba/domen qoidalari bilan tekshirish.
  • Validity -/enum/regex turlariga muvofiqlik.
SLO misollari:
  • `Freshness payments_gold ≤ 5 мин` (p95).
  • `Completeness game_rounds ≥ 99. Kuniga 7%.
  • `Duplicate_rate ≤ 0. 1‰`.
  • `PII_leak = 0`.

10) Alertlar, biletlar va runbook

Routing: Slack/PagerDuty → domen egasi; avtomatik ravishda sampllar va diff qo’llaniladi.
Guruhlash: «labels: dataset = payments, brand = TR» toʻplamiga bitta hodisa.

Runbook ("Freshness breach: payments_gold") misoli:

1. ingest lag va brokerning navbatini tekshirish.

2. PSP orqali «kutilgan vs olingan» ni solishtirish.

3. Retrayni yoqish/PSP yoʻnalishini oʻzgartirish.

4. Sababini izohlash; bektlarning restarti; post-mortem o’tkazish.

11) Versionlash, testlar va waiver-jarayon

Sifat qoidalari Semver:’quality @MAJOR. MINOR. PATCH`.
Unit-testlar transformatsiyalar (SQL/DBT/payton) va manbalar uchun kontrakt-testlar.
GOLDEN-setlar: farqlar/sizib chiqishlarning maʼlum holatlari regressiyada majburiy hisoblanadi.
Waiver (istisno): qoidani buzishga qisqa muddatli ruxsatnoma (tavsifi, egasi, muddati, kompensatsiya choralari).

12) Kataloglar/artefaktlar (tayyor shablonlar)

12. 1 Sanaset pasporti

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 siyosati

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 xususiyatlari: tayyor keyslar

To’lovlar/PSP: depozitlar/hisobotlar summasini PSP hisobotlari bilan solishtirish; yetishmayotgan maqomlar → karantin batcha; ’decline _ rate’ ga alert.
O’yin provayderlari: yiqilish’rounds _ per _ min’vs baseline + schema drift provayderdan → A provayderining transformatsiya bloki, maqom banneri.
RG/AML: majburiy maydonlar (limitlar, self-exclusion, KYC-maqomlar); to’lov bloki uchun muddati o’tgan KYC → bayroq, komplayens chiptasi.
Marketing/CRM: kampaniya parametrlari, UTM, voqealar dedupi; k-vitrinalarda anonimlik.

14) Joriy etish yo’l xaritasi

0-30 kun (MVP)

1. Asosiy toʻplamlar uchun shartnomalarni kiritish: payments, game_rounds, users, features.
2. Kutish katalogi (10-15 bazaviy) + karantin + alert.
3. Dashbord Freshness/Completeness/Uniqueness; hodisalar hisoboti.
4. Runbook’и для `Freshness`, `Duplicates`, `Schema drift`.

30-90 kun

1. Jadvallararo solishtirishlar va balanslar; waiver-jarayon va semver qoidalari.
2. Strim-validatsiya (late data, dedup, watermarks); PII detektorlar.
3. CI/CD bilan integratsiya: manbalar va transformatsiyalarning kontrakt-testlari.
4. Domen buyruqlari uchun SLO sifati.

3-6 oy

1. AIOps - ostonalar; sabablarni avto-mahalliylashtirish.
2. Kross-brend/geo sifat siyosati va komplayens hisobotlari.
3. P1 hodisalarning post-mortemalari → golden-setlar va qoidalarni to’ldirish.
4. Oqimlar alertingi va anomaliyalar tahlili bilan bog’lanish (yagona kontur).

15) RACI

Data Governance (A/R): standartlar, kontraktlar, qoidalar auditi.
Domain Owners (R): domen kutishlari va invariantlar.
Data Platform (R): kutish, karantin, alertlar, monitoring.
Security/DPO (A/R): maxfiylik/PII/k-anonimlik, geo/tenant-izolyatsiya.
SRE/Observability (C): hodisalarni yoʻnaltirish, SLO/SLI.
Product/Finance (C): biznes balanslari, hodisalarning ustuvorliklari.

16) Anti-patternlar

Validatsiya «faqat DWH» - kech, qimmat, og’riqli.
Karantin yo’q - «axloqsizlik» Gold/MLga kirib, ishonchni buzadi.
Mavsumiy/soat/bozorlarsiz qattiq ostonalar → alertlar bo’roni.
Egasining yo’qligi va qoidalar semveri → istisnolar tartibsizligi.
PII va «umumiy kanalga skrinshotlar».
Doimiy kontur o’rniga bir martalik «sanitariya kunlari».

17) Bog’liq bo’limlar

DataOps-amaliyotlar, Ma’lumotlar auditi va versiya, Ma’lumotlarning kelib chiqishi va yo’li, Ma’lumotlar oqimidagi alertlar, Anomaliyalar va korrelyatsiyalarni tahlil qilish, Kirish nazorati, Ma’lumotlar xavfsizligi va shifrlash, Ma’lumotlarni saqlash siyosati, MLOps: modellardan foydalanish.

Jami

Validatsiya - bu oxiridagi filtr emas, balki injest va oqimdan tortib vitrinalargacha bo’lgan sifat shartnomasi va onlayn fich. Aniq kutish, karantin, alertlar va SLO maʼlumotlarni ishonchli aktivga aylantiradi: hisobotlar toʻgʻri, modellar barqaror, toʻlovlar xavfsiz, komplayens xotirjam.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Telegram
@Gamble_GC
Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.