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.
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.
- `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ə.
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.