Maglumatlary tassyklamak
1) Näme üçin iGaming-platforma gerek?
Hasabatlara we KPI ynam: GGR/NET, öwrülişikler, saklamak, RG-signallar.
ML/skoring ygtybarlylygy: antifrod/teklipler/RG üçin dogry çyzgylar.
Hakyky wagt amallary: tölegler/UX ejir çekmezden öň dyrmaşan/wakalary ýitiren ýagdaýynda alertler.
Komplayens: PII/syrlaryň bolmaly bolmadyk ýerinde ýoklugy; subut edilip bilinjek ýol.
2) Nirede tassyklamaly: gözegçilik derejeleri
1. Injest (batch/stream): shema, görnüşler, hökmany meýdanlar, idempotency/dedup.
2. Akym prosessing: penjireler/suw belgileri, tertip, geçişler/gijä galmalar, exactly-once.
3. ETL/ELT we üýtgeşmeler: baglanyşyklar/joýnlar, agregatlar, iş balanslary.
4. DWH/vitrinler (Gold): tablisalaryň arasyndaky yzygiderlilik, täzelik, açarlaryň özboluşlylygy.
5. Feature Store/Online: Fich diapazonlary, offline yzygiderlilik online.
6. BI/API: hasaplamalar we süzgüçler, SLAs latency/freshness, k-anonimlik.
3) Barlaglaryň görnüşleri (katalog)
Shema :/nullable/enum/regex/JSON-shape; gabat gelmeýän üýtgeşmeler → dur.
Domen: ≥ 0, walýuta ∈ {EUR, USD, TRY, BRL}, ≤ çäk stawkasy, ygtyýarnamanyň ∈ ýurdy.
Şahsyýet/açarlar: esasy açar özboluşly, foreign key "asylan" däl.
Meýdanlaryň hili: doldurylyş, uzynlyk, format (IBAN, BIN, e-mail token).
Statistika/esasy çyzyklar: ýygylyklar, paýlanmalar, kwantil koridorlary.
Anomaliýalar: göwrümiň/paýyň ýiti bökmegi, nol/dublikatlar, shema drift.
Täzelik: max (ts) X-den uly däl; lag ingest → gold ≤ T.
Yzygiderlilik: jikme-jiklikler boýunça jemi = jemlenen; multi-table reconciliation.
Gizlinlik/howpsuzlyk: Rugsat berlen zolaklardan daşarda Zero-PII; maskalary belläň.
Düzgünleşdiriji: RG/AML meýdanlary hem bar we dogry (seneler, alamatlar).
4) Data Contracts (Maglumat şertnamalary)
Şertnama çeşme bilen sarp edijileriň arasynda shema + hil düzgünleri + SLO düzýär.
Iň az şertnama (bölek):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
Şertnamanyň üýtgemegi semver we migrasiýa arkaly: 'MAJOR' döwýär, 'MINOR' meýdan goşýar, 'PATCH' düşündirişini düzedýär.
5) "Garaşmak" (expectations) we syýasat
Garaşmak - paýlaýnlarda ýerine ýetirilýän deklaratiw barlaglar (batch/stream).
Garaşylýan mysallar (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"
Jogap bermek syýasaty:
- 'error' → partiýa/batça karantini, duýduryş + bilet; downstream.
- 'warn' → geçýär, ýöne derňemek üçin bir iş döredýär; hil belligi.
- 'info' → diňe gözegçilik.
6) Akym: barlaglaryň aýratynlyklary
Watermarks/late data: "≤ 120s" gijä galmaga rugsat berýäris, ýogsam - karantin; ahyrky penjireler bilen öwezini dolýarys.
Idempotency: waka açary + hash payload → dellalda/akymda.
Exactly-once: möhüm akymlar (tölegler/tapgyrlar) üçin geleşik sing (+ indempotent sinks).
Göwrümi hasaplaýjylar: "garaşylýan" vs "penjireden" alnan "; tapawut → alert.
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 we deňeşdirmeler
SQL barlagy (mysal):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;
Penjireler bilen oýun: gündelik deňeşdirmeler 'detail → summary', gapma-garşylyklaryň hasabatlary, awtomatiki bilet.
8) Gizlinlik we howpsuzlyk
PII-redaksiýa: girelgede maskalar/bellikler; "çig" e-mail/kartoçkalary/telefonlary loglarda gadagan edýäris.
Rugsat syýasaty: PII bilen tablisalar - aýratyn gatlak/katalog, rollar boýunça giriş (RBAC/ABAC).
Hasabatyň K-anonimligi: kesişde iň az setirler N.
Leak-detektorlar: PII, "syrlar" (açarlar/bellikler) şablonlaryna yzygiderli barlaglar.
Ýurisdiksiýalar: geo/tenant-izolýasiýa (ýurt/marka/ygtyýarnama), aýratyn açarlar.
9) Hil ölçegleri we SLO
Hil ölçegleri (D):- Freshness - yzda max (ts).
- Completeness - boş/garaşylýan ýazgylaryň paýy.
- "Uniqueness" - açarlaryň dublikatlary.
- Consistency - inwariantlar we balanslar (tablisalarara).
- Accuracy - daşarky çeşme/domen düzgünleri bilen barlamak.
- Takyklyk -/enum/regex görnüşlerine laýyklyk.
- `Freshness payments_gold ≤ 5 мин` (p95).
- `Completeness game_rounds ≥ 99. 7 %/gün '.
- `Duplicate_rate ≤ 0. 1‰`.
- `PII_leak = 0`.
10) Alertler, biletler we runbook
Routing: Slack/PagerDuty → domen eýesi; sempleri we diff awtomatiki usulda ulanýarys.
Toparlanma: "labels: dataset = payments, brand = TR" toplumyna bir waka.
1. Lag ingest we brokeriň nobatyny barlaň.
2. PSP boýunça "garaşylýan vs alyndy".
3. PSP ugruny çaltlaşdyrmak/üýtgetmek.
4. Sebäbini düşündirmek; bektleriň gaýtadan başlamagy; post-mortem geçirmek.
11) Wersiýalaşdyrmak, synaglar we waiver-proses
Hil düzgünleriniň semweri: 'quality @MAJOR. MINOR. PATCH`.
Unit-transformasiýa synaglary (SQL/DBT/payton) we çeşmeler üçin şertnama synaglary.
GOLDEN-toplumlar: tapawudyň/syzmagyň belli halatlary - regressiýada hökmany.
Waiver (kadadan çykma): düzgüni bozmaga gysga möhletli rugsat (düşündiriş, eýesi, möhleti, öwezini dolmak çäreleri).
12) Kataloglar/artefaktlar (taýýar şablonlar)
12. 1 Datasetiň pasporty
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 syýasaty
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 aýratynlyklary: taýýar haltalar
Tölegler/PSP: goýumlaryň/pullaryň mukdaryny PSP hasabatlary bilen deňeşdirmek; ýitirilen statuslar → karantin batça; 'decline _ rate' üçin alert.
Oýun üpjün edijileri: 'rounds _ per _ min' vs baseline + schema drift '-den düşmek → A üpjün edijisiniň transformasiýa bloky, status banneri.
RG/AML: hökmany meýdanlar (çäkler, öz-exclusion, KYC-statuslar); möhleti geçen KYC → töleg bloguna baýdak, komplayens bileti.
Marketing/CRM: Kampaniýa parametrleriniň dogrulygy, UTM, wakalar; penjirelerde k-anonimlik.
14) Durmuşa geçirmegiň ýol kartasy
0-30 gün (MVP)
1. Esasy toplumlar üçin şertnamalary öz içine alyň: payments, game_rounds, users, features.
2. Garaşylýan katalog (10-15 esasy) + karantin + alertler.
3. Daşbord Freshness/Completeness/Uniqueness; wakalaryň hasabaty.
4. Runbook’и для `Freshness`, `Duplicates`, `Schema drift`.
30-90 gün
1. Tablisalarara deňeşdirmeler we balanslar; waiver-proses we semver düzgünleri.
2. Akym-walidasiýa (late data, dedup, watermarks); PII detektorlary.
3. CI/CD bilen integrasiýa: çeşmeleriň we üýtgeşmeleriň şertnama-synaglary.
4. OKR domen buýruklarynda SLO hil.
3-6 aý
1. AIOps - bosaganyň maslahatlary; sebäpleriň awtomatiki lokalizasiýasy.
2. Çapraz marka/geo hil syýasaty we laýyklyk hasabatlary.
3. Post-mortemalar P1 hadysalary → golden-setleri we düzgünleri doldurmak.
4. Akymlaryň alertingi we anomaliýalaryň seljermesi bilen baglanyşyk (ýeke konturly).
15) RACI
Data Governance (A/R): standartlar, şertnamalar, düzgünleriň barlagy.
Domain Owners (R): Domen garaşmalary we üýtgemeleri.
Data Platform (R): garaşmagyň çarçuwasy, karantin, aladalar, gözegçilik.
Howpsuzlyk/DPO (A/R): Gizlinlik/PII/k-anonimlik, geo/tenant-izolýasiýa.
SRE/Observability (C): hadysalaryň ugrukdyrylmagy, SLO/SLI.
Product/Finance (C): iş balanslary, hadysalaryň ileri tutulýan ugurlary.
16) Anti-patternler
"Diňe DWH-de" tassyklamak - giç, gymmat, agyrýar.
Karantin ýok - "hapa" Gold/ML-e gidýär we ynamy bozýar.
Möwsümlilik/sagat/bazar bolmazdan gaty bosagalar → alert tupany.
Eýesiniň ýoklugy we düzgünleriň semweri → kadadan çykmalaryň bulam-bujarlygy.
PII we "umumy kanala ekran suratlary".
Hemişelik konturyň ýerine bir gezeklik "sanitariýa günleri".
17) Baglanyşykly bölümler
DataOps-praktikalar, Maglumatlaryň barlagy we wersiýalygy, Maglumatlaryň gelip çykyşy we ýoly, Maglumatlaryň akymlaryndan alertler, Anomaliýalaryň we korrelasiýalaryň seljermesi, Elýeterlilik gözegçiligi, Maglumatlaryň howpsuzlygy we şifrlemek, Maglumatlary saklamak syýasaty, MLOps: modelleriň işleýşi.
Jemi
Tassyklamak ujunda süzgüç däl-de, injestden we akymdan vitrinlere çenli we onlaýn surat. Aç-açan garaşmak, karantin, aladalar we SLO maglumatlary ygtybarly aktiwe öwürýär: hasabatlar dogry, modeller durnukly, tölegler howpsuz, laýyklyk asuda.