Маалыматтарды валидациялоо
1) Эмне үчүн iGaming-платформа керек
Отчетторго жана KPIге ишеним: GGR/NET, конверсиялар, кармап туруу, RG сигналдары.
ML/эсеби ишенимдүүлүгү: антифрод/сунуштар/RG үчүн туура чүчүкулак.
Реалдуу убакыттагы операциялар: төлөмдөр/UX жабыр тартканга чейин дрейф/жоготуу учурунда алерталар.
Комплаенс: алар болбошу керек болгон жерде PII/сырлардын жоктугу; далилдениши мүмкүн.
2) кайда валидациялоо керек: контролдук деңгээлдер
1. Инжест (batch/агым): схема, түрлөрү, милдеттүү талаалар, idempotency/дедуп.
2. Стрим-процессинг: терезелер/суу белгилери, тартиби, кечигүүлөр/кечигүүлөр, exactly-once.
3. ETL/ELT жана трансформация: шилтемелер/джойндор, агрегаттар, бизнес балансы.
4. DWH/Showrooms (Алтын): таблицалардын ортосундагы консистенттүүлүк, сергектик, ачкычтардын уникалдуулугу.
5. Feature Store/онлайн: fich диапазондору, оффлайн ырааттуулук онлайн.
6. BI/API: эсептөөлөр жана чыпкалар, latency/freshness боюнча SLAs, k-анонимдүүлүк.
3) Текшерүү түрлөрү (каталог)
Схема: түрү/nullable/enum/regex/JSON-shape; туура келбеген өзгөрүүлөр → stop.
домендик: суммасы ≥ 0, акча ∈ {EUR, USD, TRY, BRL}, чеги ≤ лимит, өлкө ∈ лицензия.
Идентификация/ачкычтар: негизги ачкычы уникалдуу, тышкы ачкычы "илинип" эмес.
Талаалардын сапаты: толтуруу, узундугу, формат (IBAN, BIN, e-mail токен).
Статистика/негизги сызыктар: жыштык, бөлүштүрүү, квантиль коридорлору.
Аномалиялар: көлөмүнүн/үлүштөрүнүн кескин секирик, нөл/дубликат, схема drift.
Сергектик: max (ts) X; лаг ingest → алтын ≤ T.
Консистенттүүлүк: деталдар боюнча сумма = жыйынды; multi-table reconciliation.
Купуялык/коопсуздук: Уруксат берилген аймактардан тышкары Zero-PII; токендештирүү/маска.
жөнгө салуучу: RG/AML талаалар бар жана ишенүүгө болот (даталар, белгилер).
4) Data Contracts (маалымат келишимдери)
Келишим булак менен керектөөчүлөрдүн ортосундагы схеманы + сапат эрежелерин + 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
Келишимди өзгөртүү - semver жана миграция аркылуу: 'MAJOR' бузат, 'MINOR' талаа кошот, 'PATCH' сүрөттөлүшүн оңдойт.
5) "күтүүлөр" (expectations) жана саясат
Күтүүлөр - пайплайндарда аткарылуучу декларативдик текшерүүлөр (batch/stream).
Күтүү мисалдары (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"
жооп саясаты:
- 'error' → карантин партия/батча, эскертүү + билет; блок downstream.
- 'warn' → өтөт, бирок талдоо тапшырмасын түзөт; сапатын белгилөө.
- 'info' → гана мониторинг.
6) агымы: текшерүү өзгөчөлүгү
Watermarks/late data: кечигип жол '≤ 120s', башкача - карантин; акыркы терезелер менен толуктайбыз.
Idempotency: иш-чаранын ачкычы + hash payload → брокер/агымында дедуп.
Exactly-once: транзакциялык синг (+ демпотенттик sinks) үчүн критикалык агымдар (төлөмдөр/раунддар).
Көлөм эсептегичтер: "күтүлгөн" vs "терезеден" алынган "; айырмачылыктар → 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: башка жана текшерүү
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;
витриналар менен дал келүү: күнүмдүк текшерүүлөр 'detail → summary', айырмачылыктар отчеттор, автоматтык текшерүү.
8) Купуялык жана коопсуздук
PII-түзөтүү демейки: кире маскалар/белгилер; "чийки" электрондук почтага/карталарга/телефондорго тыюу салабыз.
Уруксат саясаты: PII менен таблицалар - өзүнчө катмар/каталог, ролдор боюнча кирүү (RBAC/ABAC).
Отчеттордун K-анонимдүүлүгү: кесилишинде минималдуу N сап.
Leak Detectors: үзгүлтүксүз PII үлгүлөрүн текшерүү, "сырлар" (ачкычтар/токендер).
Юрисдикциялар: гео/тенант-изоляция (өлкө/бренд/лицензия), өзүнчө ачкычтар.
9) Сапат өлчөө жана SLO
Сапатын өлчөө (D):- Freshness - артта max (ts).
- Completeness - бош эмес/күтүлгөн жазуулардын үлүшү.
- Uniqueness - дубликат ачкычтар.
- Consistency - инварианттар жана баланстар (табличкалар аралык).
- Accuracy - тышкы булак/домен эрежелери менен текшерүү.
- Validity -/enum/regex түрлөрүнө шайкештик.
- `Freshness payments_gold ≤ 5 мин` (p95).
- `Completeness game_rounds ≥ 99. 7 %/күн '.
- `Duplicate_rate ≤ 0. 1‰`.
- `PII_leak = 0`.
10) Алерт, билеттер жана runbook
Роутинг: Slack/PagerDuty → домен ээси; автоматтык түрдө samples жана diff колдонулат.
Топтоо: "labels: dataset = payments, brand = TR" топтомуна бир окуя.
1. ingest лаг жана брокердин кезегин текшерүү.
2. Салыштыруу "күтүлгөн vs кабыл алынган" PSP боюнча.
3. Ретрацияны күйгүзүү/PSP маршрутун которуу.
4. себебин түшүндүрүп; бекттерди кайра баштоо; пост-мортем өткөрүү.
11) Версиялоо, тесттер жана waiver-процесс
Сапат эрежелеринин Semver: 'quality @MAJOR. MINOR. PATCH`.
Unit трансформация тесттери (SQL/DBT/payton) жана булактар үчүн келишим тесттери.
GOLDEN-топтомдору: Белгилүү айырмачылыктар/агып чыгуулар регрессияда милдеттүү болуп саналат.
Waiver (өзгөчө): эрежени бузууга кыска мөөнөттүү уруксат (сүрөттөлүшү, ээси, мөөнөтү, ордун толтуруу чаралары).
12) Каталогдор/экспонаттар (даяр үлгүлөрү)
12. 1 Dataset паспорт
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 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 өзгөчөлүктөрү: даяр учурларда
Төлөмдөр/PSP: депозиттердин/чыгаруулардын суммасын PSP отчеттору менен салыштыруу; жетишпеген статустар → карантин батча; 'decline _ rate' өсүшүнө алерт.
Оюн провайдерлери: төмөндөө 'rounds _ per _ min' vs baseline + schema drift от провайдера → А провайдеринин трансформация блогу, статус баннери.
RG/AML: милдеттүү талаалар (лимиттер, өзүн-өзү пайдалануу, KYC-статусу); Мөөнөтү өтүп кеткен KYC → төлөм блогуна желек, комплаенс билети.
Маркетинг/CRM: үгүт параметрлеринин ырааттуулугу, UTM, дедуп окуялар; витриналарда k-анонимдүүлүк.
14) Ишке ашыруунун жол картасы
0-30 күн (MVP)
1. негизги топтомдор боюнча келишимдерди камтыйт: payments, game_rounds, users, features.
2. Күтүү каталогу (10-15 базалык) + карантин + алерт.
3. Dashbord Freshness/Completeness/Uniqueness; инциденттердин отчету.
4. Runbook’и для `Freshness`, `Duplicates`, `Schema drift`.
30-90 күн
1. Таблицалар аралык салыштыруулар жана баланстар; waiver-процесс жана semver эрежелери.
2. Стрим-валидация (late data, дедуп, watermarks); PII детекторлор.
3. CI/CD менен интеграция: булактардын жана трансформациялардын контракттык тесттери.
4. SLO сапаты OKR домен буйруктары.
3-6 ай
1. AIOps-босоголору; себептерин авто-локалдаштыруу.
2. Cross-бренд/гео сапат саясаты жана комплаенс отчеттор.
3. Post-мортема P1 окуялар → алтын-топтомун жана эрежелерди толуктоо.
4. Агымдардын аллергиясы жана аномалияларды талдоо менен байланыш (бирдиктүү контур).
15) RACI
Data Governance (A/R): стандарттар, келишимдер, эрежелерди аудит.
Domain Owners (R): домен күтүүлөр жана башка.
Data Platform (R): күтүү, карантин, тобокелдик, мониторинг.
Security/DPO (A/R): купуялык/PII/k-анонимдүүлүк, geo/tenant-обочолонуу.
SRE/Observability (C): окуя багыттоо, SLO/SLI.
Product/Finance (C): бизнес балансы, инциденттердин артыкчылыктары.
16) Анти-үлгүлөрү
валидация "гана DWH" - кеч, кымбат, зыян.
Эч кандай карантин жок - "кир" Gold/ML барып, ишенимди бузат.
сезондук/саат/базарлар жок катуу босоголор → бороон-чапкын.
ээсинин жоктугу жана эрежелердин semver → өзгөчө башаламандык.
PII жана "жалпы каналга скриншоттор" менен Логи.
Бир жолку "санитардык күндөр" туруктуу контурдун ордуна.
17) Байланыштуу бөлүмдөр
DataOps-Practices, Data Аудит жана Version, Data келип чыгышы жана жол, маалымат агымынын Алерта, Аномалияларды жана байланыштарды талдоо, Access Control, Data Security & коддоо, Data Depolama Policy, MLOps: моделдерди иштетүү.
Жыйынтык
Валидация - бул аягында чыпка эмес, инжесттен жана агымдан витриналарга жана онлайн фичке чейин сапат келишими. Так күтүүлөр, карантин, алерттер жана SLO ишенимдүү каражатка маалыматтарды айландырат: отчеттор туура, моделдер туруктуу, төлөмдөр коопсуз, комплаенс тынч.