GH GambleHub

Деректерді валидациялау

1) Бұл iGaming-платформасына не үшін қажет

Есептер мен KPI сенімі: GGR/NET, конверсия, ұстап қалу, RG сигналдары.
ML/скоринг сенімділігі: антифрод/ұсынымдар/RG үшін дұрыс фичтер.
Нақты уақыттағы операциялар :/UX төлемдері зардап шеккен кездегі/оқиғаларды жоғалтқан кездегі алерттар.
Комплаенс: PII/құпиялар болмауы тиіс жерлерде олардың болмауы; дәлелді трассалануы.

2) Қайда валидациялау: бақылау деңгейлері

1. Инжест (batch/stream): схема, типтер, міндетті өрістер, idempotency/дедуп.
2. Стрим-процессинг: терезе/су белгілері, тәртіп, өткізіп алу/кешігу, exactly-once.
3. ETL/ELT және трансформациялар: сілтемелер/джойндар, агрегаттар, бизнес баланстар.
4. DWH/витриналар (Gold): кестелер арасындағы консистенттілік, жаңалық, кілттердің бірегейлігі.
5. Feature Store/онлайн: фич диапазондары, оффлайн онлайн сәйкестігі.
6. BI/API: есептеулер мен сүзгілер, SLAs latency/freshness, k-анонимділік.

3) Тексеру түрлері (каталог)

Схемалық: түрі/nullable/enum/regex/JSON-shape; үйлеспейтін өзгерістер → тоқта.
Домендік: ≥ 0 сомасы, ∈ валютасы {EUR, USD, TRY, BRL}, ≤ лимит мөлшерлемесі, лицензия ∈ ел.
Сәйкестік/кілттер: бастапқы кілт бірегей, foreign key «аспалы» емес.
Өрістердің сапасы: толықтығы, ұзындығы, форматы (IBAN, BIN, e-mail токені).
Статистика/базалық желілер: жиіліктер, бөлу, квантильді дәліздер.
Аномалиялар: көлемнің/үлестердің күрт секірулері, нөл/дубликаттар, schema drift.
Жас шыңдығы: max (ts) X-тен үлкен емес; лаг ingest → gold ≤ 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 "терезеден" алынды "; алшақтық → алерт.

Flink ереже үлгісі (псевдо):
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 әдепкі редакциясы: кіре берістегі маскалар/белгілер; «шикі» e-mail/карталарға/телефондарға тыйым саламыз.
Рұқсаттар саясаты: PII кестелері - жеке қабат/каталог, рөлдер бойынша қолжетімділік (RBAC/ABAC).
K-есептердің анонимділігі: қимадағы ең аз N жол.
Leak-детекторлар: PII үлгілеріне, «құпияларға» (кілттер/токендер) тұрақты тексерулер.
Юрисдикциялар: geo/tenant-оқшаулау (ел/бренд/лицензия), бөлек кілттер.

9) Сапа өлшемдері және SLO

Сапа өлшемдері (D):
  • Freshness - артта қалу max (ts).
  • Completeness - бос емес/күтілетін жазбалардың үлесі.
  • Uniqueness - кілттердің көшірмелері.
  • Consistency - инварианттар мен баланстар (кестеаралық).
  • Accuracy - доменнің сыртқы көзімен/ережелерімен тексеру.
  • Validity -/enum/regex типтеріне сәйкестік.
SLO мысалдары:
  • `Freshness payments_gold ≤ 5 мин` (p95).
  • `Completeness game_rounds ≥ 99. 7 %/күн '.
  • `Duplicate_rate ≤ 0. 1‰`.
  • `PII_leak = 0`.

10) Алерттар, тикеттер және runbook

Роутинг: Slack/PagerDuty → домен иесі; автоматты түрде сэмплдар мен diff қойылады.
Топтау: «labels: dataset = payments, brand = TR» жиынтығына бір инцидент.

Runbook (мысалы "Freshness breach: payments_gold"):

1. ingest лагын және брокердің кезегін тексеру.

2. PSP бойынша «күтілген vs алынды» дегенді салыстыру.

3. Ретрацияны қосу/PSP бағытын ауыстыру.

4. Себебін түсіндіру; бектерді қайта қарау; пост-мортем өткізу.

11) Нұсқалау, тесттер және waiver-процесс

Сапа ережелерінің Semver: 'quality @MAJOR. MINOR. PATCH`.
Трансформацияның юнит-тесттері (SQL/DBT/пайтон) және дереккөздерге арналған келісімшарт-тестілер.
GOLDEN-сеттер: айырмашылықтар/ағындардың белгілі кейстері - регрессте міндетті.
Waiver (ерекшелік): ережені бұзуға қысқа мерзімді рұқсат (сипаттама, иеленуші, мерзім, өтеу шаралары).

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 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' s baseline + schema drift провайдерден → А провайдерінің трансформация блогы, мәртебе баннері.
RG/AML: міндетті өрістер (лимиттер, self-exclusion, KYC-мәртебелері); төлем блогына мерзімі өткен KYC → жалауы, комплаенс.
Маркетинг/CRM: науқан параметрлерінің дұрыстығы, UTM, оқиғалар дедупі; k-витриналардағы анонимділік.

14) Енгізу жол картасы

0-30 күн (MVP)

1. Негізгі жиынтықтарға арналған келісімшарттарды қосу: payments, game_rounds, users, features.
2. Күту каталогы (10-15 базалық) + карантин + алерт.
3. Дашборд Freshness/Completeness/Uniqueness; оқыс оқиғалар есебі.
4. Runbook’и для `Freshness`, `Duplicates`, `Schema drift`.

30-90 күн

1. Кестеаралық салыстыру және баланстар; waiver-процесс және ережелер semver.
2. Стрим-валидация (late data, дедуп, watermarks); PII-детекторлар.
3. CI/CD-мен интеграциялау: көздер мен трансформациялардың келісімшарт-тестілері.
4. Домен командаларының OKR СЛО сапасы.

3-6 ай

1. AIOps - табалдырықтың кеңестері; себептерін автоматты түрде оқшаулау.
2. Кросс-бренд/гео сапа саясаты және комплаенс есептері.
3. P1 инциденттердің пост-мортемалары → golden-сеттер мен ережелерді толықтыру.
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-практикалар, Деректер аудиті және нұсқалылық, Деректердің шығу тегі және жолы, Деректер ағынынан алерттар, Аномалиялар мен корреляцияларды талдау, Қолжетімділікті бақылау, Деректер қауіпсіздігі және шифрлау, Деректерді сақтау саясаты, MLOps: модельдерді пайдалану.

Жиынтығы

Валидация - соңындағы сүзгі емес, инжест пен стримден витриналарға дейінгі сапа келісімшарты және онлайн-фич. Нақты күту, карантин, алерта және SLO деректерді сенімді активке айналдырады: есептер дұрыс, модельдер тұрақты, төлемдер қауіпсіз, комплаенс тыныш.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Telegram
@Gamble_GC
Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.