Тасдиқи маълумот
1) Чаро платформаи IGaming ба он ниёз дорад?
Боварӣ ба ҳисоботҳо ва KPI: GGR/NET, табдилдиҳӣ, нигоҳдорӣ, сигналҳои RG.
Эътимоднокии ML/баҳодиҳӣ: хусусиятҳои дуруст барои зидди қаллобӣ/тавсияҳо/RG.
Амалиётҳои вақти воқеӣ: Огоҳиҳо дар бораи коҳиш/аз даст додани ҳодисаҳо пеш аз пардохт/UX таъсир мерасонанд.
Мувофиқат: ҳеҷ PII/асрори он ҷое, ки онҳо набояд бошанд; пайгирии исботшаванда.
2) Дар куҷо бояд тасдиқ кард: сатҳи назорат
1. Тазриқ (партия/ҷараён): схема, намудҳо, майдонҳои зарурӣ, idempotency/dedup.
2. Коркарди ҷараён: тирезаҳо/нишонаҳои обӣ, фармоиш, нуқсонҳо/таъхирҳо, маҳз як маротиба.
3. ETL/ELT ва дигаргуниҳо: пайвандҳо/шодмонӣ, агрегатҳо, тавозуни тиҷорат.
4. DWH/мағозаҳо (тилло): мувофиқати байни мизҳо, тару тоза, беҳамтоии калидҳо.
5. Дӯкони хусусият/онлайн: диапазонҳои хусусият, мувофиқати offlayn↔onlayn.
6. BI/API: ҳисобҳо ва филтрҳо, SLA-ҳо оид ба таъхир/тару тоза, k-беном.
3) Намудҳои чекҳо (каталог)
Схемавӣ: намуди/nullable/enum/regex/JSON-шакл; тағиротҳои номувофиқ барои боздоштани →.
Домен: ≥ 0 миқдор, асъори ∈ {EUR, USD, TRY, BRL}, ≤ меъёри лимит, strana ∈ litsenzii.
Шиносӣ/калидҳо: калиди асосӣ беназир аст, калиди хориҷӣ "овезон" нест.
Сифати майдон: пуррагӣ, дарозӣ, формат (IBAN, BIN, аломати почтаи электронӣ).
Омор/асосҳо: басомадҳо, тақсимот, долонҳои квантӣ.
Аномалияҳо: хӯшаҳои ҳаҷм/фраксия, сифрҳо/нусхаҳо, кашиши схема.
Тару тоза: max (ts) аз X калонтар нест; ақиб мондан → тилло ≤ Т.
Мувофиқат: ҷамъи қисмҳо = хулоса; мусолиҳаи бисёрсоҳавӣ.
Махфият/амният: Zero-PII берун аз минтақаҳои иҷозатшуда; токенизатсия/ниқобҳо.
Танзимкунанда: Майдонҳои RG/AML мавҷуданд ва дурустанд.
4) Шартномаҳои маълумот
Шартнома нақшаи + қоидаҳои сифат + SLO-ро дар байни манбаъ ва истеъмолкунандагон ислоҳ мекунад.
Шартномаи ҳадди аққал (порча):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
Тағироти шартнома - тавассути ноқил ва муҳоҷират: 'MAJOR' танаффус мекунад, 'MINOR' майдонро илова мекунад, 'PATCH' тавсифро ислоҳ мекунад.
5) Интизориҳо ва сиёсатҳо
Интизорӣ - санҷишҳои декларативӣ дар қубурҳо (партия/ҷараён).
Намунаҳои интизориҳо (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"
Сиёсати вокуниш:
- 'хатогӣ' → карантини ҳизбӣ/партия, ҳушдор + чипта; блоки поёноб.
- 'varn' → мегузарад, аммо вазифаи таҳлилро эҷод мекунад; аломатгузории сифат.
- 'info' → танҳо мониторинг.
6) Ҷараён: Хусусиятҳои чекҳо
Нишонаҳои обӣ/маълумоти дер: биёед дер '≤ 120s' бошем, вагарна - карантин; ҷуброн бо тирезаҳои ниҳоӣ.
Idempotency: калиди ҳодиса + бори гарони hash → монеа дар брокер/ришта.
Маҳз як маротиба: суруди транзаксионӣ (+ ғалтакҳои idempotent) барои ҷараёнҳои интиқодӣ (пардохтҳо/давраҳо).
Ҳисобкунакҳои ҳаҷм: "интизоршаванда" ва "қабулшуда" дар як тиреза; номувофиқатӣ → ҳушдор.
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: инвариантҳо ва мусолиҳаҳо
Санҷишҳои SQL (мисол):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;
Мувофиқати тиреза: мувофиқати ҳаррӯзаи 'тафсилот → хулоса', ҳисобот дар бораи номувофиқатӣ, чиптаи автоматӣ.
8) Махфият ва амният
Нашри пешфарз PII: ниқобҳои вуруд/токенҳо; мо дар гузоришҳо "хом" почтаи электронӣ/кортҳо/телефонҳоро манъ мекунем.
Сиёсати иҷозат: ҷадвалҳо бо PII - қабати алоҳида/феҳрист, дастрасӣ аз рӯи нақшҳо (RBAC/ABAC).
K-беном будани гузоришҳо: сатрҳои ҳадди ақали N дар бурида.
Детекторҳои ихроҷ: санҷишҳои мунтазам барои намунаҳои PII, "асрҳо" (калидҳо/нишонаҳо).
Қаламравҳо: гео/иҷорагир-изолятсия (кишвар/бренд/литсензия), калидҳои алоҳида.
9) Нишондиҳандаҳои сифат ва SLO
Андозагирии сифат (D):- Тару тоза - ақибмонӣ макс (ts).
- Пуррагӣ - таносуби сабтҳои холӣ/интизоршаванда.
- Ягонагӣ - калидҳои такрорӣ.
- Мутобиқат - ғайривариантҳо ва мувозинатҳо (байни ҷадвал).
- Дурустӣ - санҷиш бо сарчашма/қоидаҳои домени беруна.
- Эътибор - намудҳои мувофиқ/enum/regex.
- 'Тару тоза payments_gold ≤ 5 мил' (саҳ. 95).
- 'Мукаммалӣ game_rounds ≥ 99. 7 %/рӯз '.
- 'Duplicate _ rate ≤ 0. 1‰`.
- 'PII _ ихроҷ = 0'.
10) Огоҳиҳо, чиптаҳо ва дафтарчаи корӣ
Масир: Соҳиби домени Slack/Pager ба таври худкор намунаҳо ва diff -ро татбиқ кунед.
Гурӯҳбандӣ: як ҳодиса дар як маҷмӯа "тамғакоғазҳо: маҷмӯа = пардохт, бренди = TR".
1. Рӯйхати вуруд ва навбати брокерро санҷед.
2. Муқоиса кунед "интизоршаванда vs гирифташуда" аз ҷониби PSP.
3. Фаъол кардани масири Retrai/Switch PSP.
4. Сабаби эзоҳ; бозоғозии пушт; пас аз марг.
11) Раванди версия, санҷишҳо ва радкунӣ
Семвери қоидаҳои сифат: 'сифат @ MAJOR. МИНОР. ПАТЧ '.
Санҷишҳои воҳиди трансформаторҳо (SQL/DBT/python) ва санҷишҳои шартномавӣ барои манбаъҳо.
Маҷмӯаҳои GOLDEN: ҳолатҳои маълуми номутобиқатӣ/ихроҷ дар регрессия ҳатмӣ мебошанд.
Радкунӣ: иҷозати кӯтоҳмуддат барои вайрон кардани қоида (тавсиф, соҳиб, мӯҳлат, чораҳои ҷубронӣ).
12) Каталогҳо/артефактҳо (қолабҳои тайёр)
12. 1 Шиносномаи додаҳо
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 Сиёсати карантинӣ
yaml quarantine:
storage: "s3://quarantine/payments/"
retention: "P30D"
access: ["team-payments","data-governance"]
auto_reprocess:
cron: "/15 "
max_attempts: 3
12. 3 Интизории для Дӯкони хусусият
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: парвандаҳои тайёр
Пардохтҳо/PSP: муқоисаи пасандозҳо/бозпас гирифтан ба ҳисоботи PSP; статусҳои гумшуда → карантини қассобӣ; ҳушдор барои афзоиши 'коҳиш _ суръат'.
Провайдерҳои бозӣ: партофтани 'rounds _ per _ min' vs baseline + schema аз провайдер → блоки табдилдиҳии провайдери А, баннер.
RG/AML: майдонҳои ҳатмӣ (маҳдудиятҳо, канорагирӣ, ҳолати KYC); мӯҳлати гузаштаи KYC → парчам дар блоки пардохт, чипта мувофиқи он.
Маркетинг/CRM: дурустии параметрҳои маърака, UTM, таҳияи чорабиниҳо; k-беном дар мағозаҳо.
14) Харитаи роҳсозӣ
0-30 рӯз (MVP)
1. Шартномаҳоро барои маҷмӯаҳои асосӣ дохил кунед: пардохтҳо, game_rounds, корбарон, хусусиятҳо.
2. Феҳристи интизориҳо (10-15 асосӣ) + карантин + огоҳиҳо.
3. Тару тоза/мукаммалӣ/ягонагӣ; гузориши ҳодиса.
4. Runbook 'i dlya' Freshness ',' Duplicates ',' Schema drift '.
30-90 рӯз
1. Мусолиҳа ва тавозуни байниҳамдигарӣ; раванди радкунӣ ва қоидаҳои ноқил.
2. Тасдиқи ҷараён (маълумоти дер, бунбаст, нишонаҳои обӣ); Детекторҳои PII.
3. Интегратсия бо CI/CD: шартномаҳо-санҷишҳои манбаъҳо ва дигаргуниҳо.
4. Сифати SLO дар фармони домени OKR.
3-6 моҳ
1. Ҳадди ниҳоии AIO; худкори маҳаллисозии сабабҳо.
2. Сиёсати кросс-бренд/гео ва ҳисобот оид ба мувофиқат.
3. Ҳодисаҳои пас аз марг P1 → пур кардани маҷмӯаҳо ва қоидаҳои тиллоӣ.
4. Робита бо огоҳкунии ҷараён ва таҳлили аномалия (ҳалқаи ягона).
15) RACI
Идоракунии маълумот (A/R): стандартҳо, шартномаҳо, аудити қоидаҳо.
Соҳибони домейн (R): интизориҳои домейн ва ғайривариантҳо.
Платформаи маълумот (R): чаҳорчӯбаи интизорӣ, карантин, огоҳиҳо, мониторинг.
Амният/DPO (A/R): махфият/PII/k-беном, гео/иҷорагир-изолятсия.
SRE/Мушоҳида (C): масири ҳодиса, SLO/SLI.
Маҳсулот/Молия (C): тавозуни тиҷорат, афзалиятҳои ҳодисаҳо.
16) Анти-намунаҳо
Санҷиш "танҳо дар DWH" - дер, гарон, дардовар.
Карантин нест - "лой" ба Gold/ML меравад ва эътимодро вайрон мекунад.
Ҳадди сахт бидуни мавсимӣ/соатҳо/бозорҳо § тӯфони ҳушдор.
Набудани қоидаҳои соҳибмулк ва нутфа → бетартибиҳои истисноҳо.
Гузоришҳо бо PII ва "скриншотҳо ба канали умумӣ".
"Рӯзҳои санитарӣ" -и яквақта ба ҷои ноҳияви доимӣ.
17) Қисматҳои марбут
Амалияи маълумот, аудити маълумот ва таҳрир, пайдоиши маълумот ва роҳ, огоҳиҳои ҷараёни маълумот, таҳлили аномалия ва коррелятсия, назорати дастрасӣ, амнияти маълумот ва рамзгузорӣ, сиёсати нигоҳдории маълумот, MLOps: Истифодаи модел.
Ҷамъ
Санҷиш дар ниҳоят филтр нест, балки шартномаи ниҳоӣ мебошад: аз тазриқ ва ҷараён то дӯконҳо ва хусусияти онлайн. Интизориҳои возеҳ, карантинҳо, огоҳиҳо ва SLO маълумотро ба дороии боэътимод табдил медиҳанд: ҳисоботҳо дурустанд, моделҳо устуворанд, пардохтҳо бехатаранд, мувофиқат ором аст.