GH GambleHub

Аудит даних і версійність

1) Навіщо це потрібно

Аудит і версійність створюють відтворюваність: ви можете пояснити будь-яку цифру, повторити розрахунок і безпечно розвивати моделі/вітрини. У iGaming це критично для фінансів (GGR/NET), платежів, KYC/AML, Responsible Gaming і регуляторної звітності.

Цілі:
  • Трасування: хто змінив дані/схему/логіку і чому.
  • Відтворюваність: яка версія даних/коду/моделі породила звіт.
  • Безпека релізів: оборотність (rollback) і передбачуваність змін.
  • Відповідність: доказові журнали для регуляторів і внутрішніх аудитів.

2) Поняття та рівні версійності

1. Версія схеми (Schema Version): еволюція полів/типів/семантики (SEMVER).
2. Версія набору даних (Dataset Version): знімок/зріз в момент часу; «істина» для звіту/навчання.
3. Версія вітрини/моделі BI (Data Product Version): формули, фільтри, агрегування.
4. Версія фіч/моделі ML: дата/код/гіперпараметри/фічі/дані (end-to-end).
5. Версія пайплайна: код трансформацій, конфіги, залежності.
6. Версія контракту даних: вимоги до продюсера/споживача (схема, SLA, якість).


3) Аудит: що логувати

Хто: суб'єкт (користувач/сервіс), роль/атрибути (RBAC/ABAC).
Що: таблиця/вітрина/модель/схема/контракт.
Коли: точний час, tz, кореляційний id.
Чому: посилання на таск/тікет/реліз-ноту, причина.
Чим: версія коду/моделі, commit hash, образ контейнера.
Як змінилося: до/після (diff), обсяг рядків (rows affected), контроль цілісності (хеш/підпис).
Контекст: середовище (prod/stage), домен, чутливість даних (клас).

Аудит-журнали незмінні (append-only/WORM), підписані і доступні в SIEM.


4) Політика версійності (рекомендації)

SEMVER: `MAJOR. MINOR. PATCH`

MAJOR - несумісні зміни схеми/семантики.
MINOR - обернено сумісні додавання (нові поля/колонки з nullable, нові вітрини vNext).
PATCH - виправлення без зміни контракту (quality-fix, backfill).
Deprecation-процедура: вікно застарівання, попередження в каталозі/CI, дата відключення.
Release Notes: одна сторінка на реліз: що, навіщо, ризики, план відкату.


5) Техніки в сховищі і потоках

Time-travel / Snapshots: зберігання версій таблиць; можливість виконати запит «як було на T-0».
SCD (Slowly Changing Dimensions): типи 1/2/3 для вимірювань (ігри, провайдери, гравці).
CDC/CDF (Change Data/Capture & Feed): інкрементальні зміни для фактів (ставки, виплати, KYC).
Журнал операцій (Audit Fact): окрема факт-таблиця з подіями правок/додавань/видалень.
Контроль цілісності: хеші партій/файлів, підпис пакетів, звірки агрегатів.


6) Еволюція схем і Data Contracts

Контракт як код: схема, типи, обов'язковість полів, допустимі значення, SLA свіжості, DQ-правила.
Сумісність: додали поле → MINOR; поміняли тип/семантику → MAJOR з міграцією і dual-write.
CI-гейт: PR змінює схему блокується, якщо порушена сумісність чи ні Release Notes.
Каталог/Registry: зберігає активні/застарілі версії та власників.


7) Версійність в BI і метриках

Сертифіковані «золоті» вітрини: закріплена семантика KPI (GGR, ARPPU, утримання).
Dual-run: нова версія вітрини будується паралельно (v2), порівняння метрик (tolerance bands).
Фіксація звітів: кожен експорт/дашборд посилається на'dataset _ version'і'definition _ version'.
Календарні зрізи: «дей-кат», «місяць-к-дате» - фіксуються на версію даних.


8) Версійність в ML/MLOps

Model Registry: модель, дата, метрики якості, дані навчання (dataset_version), версії фіч (feature_set_version).
Feature Store: версіоновані фіч-групи; заборона «гарячих» полів без явної версії.
Repro набір: код тренування (commit), оточення (Docker/conda lock), сід.
Champion–Challenger: паралельні версії в проді, звіти по якості, fairness і приватності.
Rollback: швидкий відкат на попередню стабільну модель і фіч-набір.


9) Роллбек, backfill і виправлення

Rollback-план: на кожну MAJOR/MINOR версію - чіткі кроки повернення.
Backfill-плейбук: джерело істини, діапазон дат, порядок перерахунку, контрольні суми, мітки «recomputed = true».
Видимість редагувань: v2 замінює v1 тільки після проходження порівняння; всі «історичні» звіти продовжують посилатися на свої версії.


10) Безпека і комплаєнс в аудиті

Підпис подій/пакетів: продюсер підписує, споживач перевіряє.
PII-санітайзинг: аудит зберігає токени, не сирої PII.
Legal Hold: заборона видалення версії/логів на період розслідування.
DSAR: версії знаходять і вивантажують записи суб'єкта по токену; враховуються історичні знімки.


11) Метрики та SLO

Repro Rate: частка звітів, відтворюваних з версії даних/коду ≥ цільового порогу.
Coverage: % таблиць з включеним time-travel/журналом аудиту.
Schema Compatibility Pass: частка успішних перевірок сумісності в CI.
Dual-run Delta: розбіжність v1/v2 в межах допусків.
Rollback MTTR: середній час відкату версії.
Audit Integrity: частка підписаних і перевірених подій.
Backfill Success: частка коректно завершених перерахунків.


12) Патерни для iGaming (кейси)

Корекція GGR заднім числом: постачальник перерахував RTP - робимо backfill фактів за період, фіксуємо'recomputed _ at', публікуємо Release Notes, порівнюємо v1/v2; звіти за минулі місяці не переписуємо, а позначаємо «виправлена версія доступна».
Антифрод-правила: змінюємо семантику фічі - MAJOR, dual-run моделі і вітрини, ролбек на champion при регресі.
KYC/AML: додали нові статуси провайдера - MINOR з nullable; включаємо тести сумісності в контрактах.
RG-сигнали: уточнили логіку «серій програшів» - MINOR + Release Notes і моніторинг впливу.


13) Інструменти та артефакти (категорії)

Catalog/Lineage/Registry: версії наборів/схем/вітрин, власники, зв'язки, контракти.
Orchestrator & CI/CD: гейти сумісності, прогін dual-run, публікація реліз-нот.
Storage с time-travel: зберігання знімків/журналів.
Signing & Checksums: підпис пакетів, контрольні суми партій.
Model/Feature Registry: версії фіч/моделей, звіти champion-challenger.


14) Шаблони (готово до використання)

14. 1 Release Notes (ескіз)

Версія: `payments_gold v2. 1. 0`

Тип: MINOR (нові поля'psp _ country','method _ group')

Причина: уніфікація звітності по PSP/країнам

Ризики: вплив на джойни з вітриною'risk _ signals '

Валідація: dual-run 14 днів, delta ≤ 0. 2% по GGR

Rollback: перемикання на'v2. 0. 3'через прапор оркестратора

Дата деплоя/власник/тікет

14. 2 Паспорт версії набору

Dataset: `game_rounds_silver`

Версія: `2025-11-01T00:00:00Z` (snapshot id)

Схема: `schema@1. 7. 0'( посилання на контракт)

Джерело: провайдерські фіди A/B (commit...)

Контроль цілісності: checksum, підписаний маніфест

DQ: повнота 99. 9%, свіжість ≤ 15 хв

Використання: `games_perf_gold v3. x`, `rg_signals v1. x`

14. 3 Акт аудиту зміни

Подія: update schema `kyc_status` → `kyc_status,v2`

Хто: user/service, роль `Data-Engineer`

Коли: `2025-11-01 09:32:10+02`

Чому: тікет # 3421 (нові статуси провайдера)

Diff: +'status _ reason'( nullable), enum розширений

Перевірки: CI semver pass, контракт MINOR

Підпис: 'sig =...', хеш diff: `sha256=…`

14. 4 Політика версійності (фрагмент)

MAJOR: ламає сумісність; dual-write ≥ 30 днів; обов'язковий rollback-план.
MINOR: оборотно сумісно; попередження в каталозі; A/B вітрин 7-14 днів.
PATCH: фікси якості/перерахунки; Release Notes обов'язково.
Архівація: зберігаємо ≥ N місяців снапшоти для регуляторики; WORM для аудиту.


15) Процеси (end-to-end)

1. Ініціатива: тікет зміни + оцінка імпакту по лінійджу.
2. Проектування: оновлення контракту/схеми + Release Notes.
3. Валідація: CI-перевірки сумісності, тести DQ, dual-run.
4. Деплою: по прапору, канарка; публікація версії в каталозі.
5. Моніторинг: delta v1/v2, KPI, скарги.
6. Відкат/Backfill: по плейбуку при регресі.
7. Пост-мортем: якщо інцидент, оновлення політики/тестів.


16) RACI (приклад)

Політика та стандарти: CDO (A), Data Governance Council (R/A), DPO/Sec (C).
Контракти/схеми: Domain Owners (A), Data Stewards (R), Platform/Eng (C).
Оркестрація/сховище: Platform/Eng (R), SRE (C).
BI/метрики: Analytics Lead (R), Product/Finance (C).
ML-версії: ML Lead (A), DS (R), Platform (C).
Аудит/журнали: SecOps (R), Internal Audit (C).


17) Дорожня карта впровадження

0-30 днів (MVP)

Увімкнути time-travel/знімки для критичних таблиць (payments, game_rounds, kyc).
Запустити незмінні аудит-журнали та підпис пакетів ingestion.
Прийняти SEMVER-політику і шаблон Release Notes.
Каталог: додати'owner','schema _ version','dataset _ version'до топ-вітрин.

30-90 днів

Ввести dual-run для всіх MINOR/MAJOR; автоматичне порівняння v1/v2.
Зв'язати контракти з CI-гейтами сумісності і DQ.
Регламент backfill/rollback; навчити команди.
Model/Feature Registry з повним набором зв'язків «dannyye→fichi→model→inferens».

3-6 місяців

Повне покриття журналами аудиту, WORM-сховище, звіти для регуляторів.
Автоматизовані Release Notes з diff + лінійдж.
Звіти Repro Rate/Schema Compatibility/Rollback MTTR в дашбордах.
Щоквартальні рев'ю версій KPI і «заморожування» визначень.


18) Анти-патерни

Зміна семантики KPI без нової версії/реліз-ноти.
Перерахунки «по-тихому» без backfill-плану і відміток'recomputed'.
Зберігання сирих PII в аудит-логах.
Відсутність dual-run і миттєва заміна вітрин.
«Вічні» моделі/вітрини без вказівки версії і джерел.


19) Пов'язані розділи

Управління даними, Походження і шлях даних, Контроль доступу, Токенізація, Безпека і шифрування, Моніторинг моделей, Етика і DSAR, Federated Learning, Конфіденційне ML.


Підсумок

Аудит і версійність перетворюють дані і моделі в надійний продукт: кожна зміна прозора, відтворювана і оборотна. Для iGaming це фундамент довіри до KPI, стійкості комплаєнсу і швидкості безпечних релізів.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.