Деректерді байыту
1) Мақсаты және бизнес-құндылығы
Байыту «шикі» оқиғаларды контекст пен белгілерді қоса отырып, пайдалы фактілерге айналдырады:- Қаржы/есептілік: fx-сомаларды қалыпқа келтіру, нарықтарға/салық ставкаларына байланыстыру, GGR/NGR есебі.
- Комплаенс/AML/RG: тәуекел скорингтері, санкциялық/РЕР-белгілер, RG-лимиттер, мінез-құлық белгілері.
- Маркетинг/өнім: трафик көздері, сегменттер, миссиялар/квесттер, дербестендіру.
- SRE/операциялар: трафик үшін гео/ASN, клиент/құрылғы түрі, фичфлагтар мен релиздер.
Түйінді нәтиже - үлгілердің дәлдігін, есептердің сапасын және шешім қабылдау жылдамдығын арттыру.
2) Байыту көздері (үлгі каталог)
Референс/каталогтар: ойындар, провайдерлер, базарлар/юрисдикциялар, валюталар, салық кестелері, мерекелер күнтізбесі.
KYC/KYB/RG: тексеру деңгейлері, мәртебелер, өздігінен алып тастаулар, лимиттер, жас топтары.
AML/санкциялар/PEP: скрининг хиттері, тізімдер, тәуекел деңгейлері.
Желілер мен құрылғылар: IP → гео/ASN, құрылғы/OS/браузер, device fingerprint.
Төлем провайдерлері (PSP): BIN-кестелер, әдістер, MCC, тәуекел белгілері.
FX/уақыт: оқиға күніндегі валюта бағамдары, жергілікті уақыт белдеулері/DST.
Контент және маркетинг: дереккөздер/науқандар/UTM, аффилиаттар, сегменттер.
Модельдер мен эвристиктер: алдын ала оқытылған скорингтер, эмбеддингтер, санатты маппингтер.
3) Байыту түрлері
Lookup-джойн: кілт бойынша нүктелік салыстыру (game_id, BIN, ip_range, user_pseudo_id).
Dimension attach: өлшемдерді қосу (dim.) фактілерге.
Derived fields: есептелетін бағандар (amount_base, local_time, tax_rate).
Aggregations/velocity: терезе үшін есептеуіштер (N ставкалар/мин, депозиттер сомасы/сағат).
Risk/behavioral features: «соңғы оқиғадан бергі уақыт», share-of-wallet, түнгі белсенділік.
Geo/ASN/Device: елдің коды, өңір, оператор, құрылғы/шолғыш түрі.
Semantic mappings: провайдерлердің/ойындардың жіктелуі, ойыншылардың кластерлері.
ML-фичтер: онлайн/офлайн модельдеу үшін белгілер (Feature Store).
4) Қайда байыту: Batch vs Stream
Stream (real-time): антифрод, RG-триггерлер, SRE алерттары - p95 ≤ 2-5 с кідірістер; кэшке lookup (Redis/Scylla), таймері бар провайдерлерге асинхронды сұраулар.
Batch (микро-батчи/күн сайын): Gold (GGR/RG/AML) витриналары, салыстыру, есептер - тұрақтылық пен толықтық латенттіліктен маңызды.
Гибрид: жылдам онлайн белгісі + түнгі байыту (reconciliation/accuracy).
5) Сәулеттік референс
1. Bronze - шикі оқиғалар (append-only).
2. Silver (clean/conform) - қалыпқа келтіру, кілттер, бастапқы lookup 'и (fx, geo, dim.) .
3. Enrichment Layer - кеңейтілген белгілер, терезе агрегаттары, тәуекел белгілері.
4. Feature Store - белгілер тіркелімі (онлайн/офлайн үйлесімділік).
5. Gold - BI/реттегіш/модельге арналған сөрелер; өзгермейтін артефактілер.
6. Сервистер - API/GraphQL, есептік экспорт, real-time алерта.
Компоненттері: Kafka/Redpanda, Flink/Spark/Beam, Redis/Scylla (lookup), ClickHouse/Pinot (жедел оқу), Lakehouse (Delta/Iceberg/Hudi).
6) Келісімшарттар мен схемалар
Schema-first: 'event _ time', 'schema _ version', тұрақты кілттер (user_pseudo_id, game_id, transaction_id).
Байыту белгілері: 'enrichment. version`, `enrichment. sources`, `fx_source`, `geo_source`, `model_version`.
Нұсқалау: жаңа белгілер nullable ретінде қосылады; breaking-өзгерістер - '/v2 'және қос жазба арқылы.
7) Байыту мысалдары (SQL/жалған құжат)
7. 1 FX-қалыпқа келтіру және жергілікті уақыт
sql
SELECT p.transaction_id,
p.amount_orig,
p.currency,
r.rate AS fx_rate_used,
p.amount_orig r.rate AS amount_base,
p.event_time,
convert_timezone(m.tz, 'UTC', p.event_time) AS local_time,
r.fx_source
FROM bronze.payment_events p
JOIN dim.fx_rates r
ON r.date = DATE(p.event_time) AND r.ccy_from = p.currency AND r.ccy_to = 'EUR'
JOIN dim.markets m ON m.code = p.market;
7. 2 IP бойынша Geo/ASN (жалған құжат)
python geo = geo_db.lookup(ip)
asn = asn_db.lookup(ip)
record["geo_country"] = geo.country record["asn"] = asn.number record["enrichment"]["geo_source"] = "mmdb:2025-10-01"
7. 3 Депозиттер жылдамдығының терезе белгілері (stream)
sql
SELECT user_pseudo_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS deposits_sum_10m
FROM silver.payments
GROUP BY user_pseudo_id, TUMBLE(event_time, INTERVAL '10' MINUTE);
7. 4 RG-лимиттермен түйісу
sql
SELECT b., r.daily_deposit_limit, r.self_exclusion
FROM silver.bets b
LEFT JOIN dim.rg_limits r USING (user_pseudo_id);
8) Байыту сапасы (DQ)
Ең аз ережелер:- FX: 'fx _ rate _ used' NULL емес, 'fx _ source' whitelist, есептік 'amount _ base ≥ 0'.
- Geo/ASN: табысты lookups үлесі ≥ 98% (нарықтар бойынша), анықтамалықтағы 'country'.
- RG/AML белгілері: 'valid _ from/valid _ to' (SCD II) қиылыспайды; тарихта «тесіктердің» болмауы.
- Агрегаттар/терезелер: терезелердің дұрыстығы (екі рет есептелмейді), completeness ≥ 99. 5%.
- Модельдердің нұсқалары: «model _ version» бар, таңбалар дрейфін бақылау.
yaml table: enriched.payments rules:
- name: fx_present type: not_null column: fx_rate_used severity: critical
- name: country_known type: in_set column: geo_country set_ref: ref.countries severity: major
- name: rg_scd_valid type: scd_validity columns: [valid_from, valid_to]
severity: major
9) Құпиялылық және комплаенс
PII азайту: псевдо-ID бойынша байытыңыз, нақты сәйкестендіргіштер - жеке контурда.
Geo-локализация және резиденттілік: өңір бойынша маршруттау (EEA/UK/BR), бөлек шифрлау кілттері.
DSAR/RTBF: байытылған проекциялар «жасыру «/редакцияны қолдауы тиіс; ерекшеліктер үшін құқықтық негіз сақтаңыз.
Legal Hold: есептік артефактілер/кейстер үшін жоюды тоқтату.
10) Бақылау және lineage
Линедж: шикі оқиғадан → lookup/агрегаттар → витриналар/модельдер; көздердің нұсқаларын тіркеңіз ('fx _ source', 'geo _ source', 'bin _ source').
SLI/SLO: freshness p95 (Silver) ≤ 15 мин; табысты geo-lookups ≥ 98%; негізгі белгілері толтырылған жазбалар үлесі ≥ 99%; latency enrich-стрим p95 ≤ 2-5 с.
Дашбордтар: көздер бойынша completeness жылу картасы, анықтамалықтар/модельдер нұсқаларының картасы, «қымбат» join 'oв мониторы, белгілердің дрейфі.
11) Құны және өнімділігі
Кэштер/материалдандыру: жиі lookup 'және Redis/Scylla; мерзімдік snapshot '.
Ықшам белгілері: агрегаттарды сақтаңыз («шикі» тізімдер емес); Parquet/баған пішімдерін пайдаланыңыз.
Партиялануы: күні/нарығы/теңгерімі бойынша; жиі сүзілетін өрістер бойынша кластерлеу.
Бейімделу жиілігі: ауыр enrich-джобтар - түнде; realtime - тек сыни.
Chargeback: командалар/фичтер бойынша cost/query және cost/GB есебі.
12) Паттерндер және қарсы паттерндер
Үлгілер:- RG/KYC/провайдерлер үшін Dimension Lookup + SCD II.
- Async Enrichment таймауттар мен fallback («unknown» белгісі + қайталау).
- Online/offline келісімімен және өтімділік тестілерімен Feature Store.
- Байытуға арналған Rule-as-Code (шекті/санатты карталар).
- Кэшсіз ыстық жолда сыртқы API-ге қатаң байланыстыру.
- Көздердің таңбаланбаған нұсқалары ('fx _ source', 'geo _ source').
- Silver-да «барлығы бар» денормализациясы (құн/күрделілік жарылыстары).
- Аналитикалық қабаттарға PII енгізу.
13) Процестер және RACI
R (Responsible): Data Engineering (enrich/stream пайплайндары), Domain Owners (белгілер семантикасы), MLOps (Feature Store).
A (Accountable): Head of Data / Chief Data Officer.
C (Consulted): Compliance/Legal/DPO, Finance (FX/налоги), Risk (RG/AML), SRE.
I (Informed): BI/Өнім/Маркетинг/Операциялар.
14) Енгізу жол картасы
MVP (2-4 апта):1. Байыту көздерінің каталогы (fx, geo, markets, RG/KYC).
2. Silver-қалыпқа келтіру + базалық lookup 'және (fx/geo/dim.) .
3. Бірінші velocity агрегаттары (депозиттер/мөлшерлемелер) және enriched. v1 кестесі.
4. Дашборд completeness/freshness, дереккөздер нұсқасы.
2-фаза (4-8 апта):- Санкцияларды қосу/РЕР/КУВ, BIN-кестелер PSP, device fingerprint.
- Feature Store (белгілер ядросы) + онлайн-кэш, Flink realtime-байыту.
- DQ-ережелер enrich-қабатына, lineage және симуляцияның «dry-run».
- Дербестендіру (миссиялар/квесттер) және RG/AML-детекторлар онлайн.
- Құнын басқару (квоталар, материалдандыру, Z-order), мульти-өңір.
- Белгілер мен каталог құжаттамасының автогенерациясы («feature cards»).
15) Азық-түлік алдындағы сапа
- Келісілген кілттер мен схемалар, дереккөздердің нұсқаларына қол қойылды.
- DQ-ережелер fx/geo/RG/санкциялар/терезелер; алерттар және SLO.
- Сыртқы lookup үшін кэштер/таймауттар және fallback.
- Линедж және құн/өнімділік дашбордтары.
- Байытылған кестелер үшін DSAR/RTBF/Legal Hold рәсімдері.
- Белгілердің құжаттамасы (owner, формулалар, SLO, әсері).
16) Жиі қателер және оларды болдырмау
Анықтамалықтардың/үлгілердің белгіленбеген нұсқалары: әрқашан '_ source' және 'model _ version' дегендерді белгілеңіз.
fx «артқы күнмен» есептеу: оқиға сәтіндегі бағамды пайдаланыңыз; FX көзін сақтаңыз.
PII араластыру: маппингтерді токендеу және оқшаулау.
Агрегаттардағы қосарлы есеп: терезелер мен дедуптарды тексеріңіз.
Кэшсіз синхронды сыртқы қоңыраулар: async + кэш/ретраны енгізіңіз.
Жоқ өтімділік фич: бірыңғай трансформация коды online/offline, сәйкестік тестілері.
17) Глоссарий (қысқаша)
Lookup/Dimension attach - анықтаманы кілт бойынша фактіге қосу.
Feature Store - ML үшін белгілер тіркелімі мен сервингі.
SCD II - валидтілік аралығымен өлшемдерді тарихтау.
FX - валюта бағамдары және сомаларды қалыпқа келтіру.
ASN - желінің дербес жүйесі; антифрод және гео-талдау үшін пайдалы.
18) Қорытынды
Байыту - бұл оқиғалардың білімге айналу тәртібі: келісілген кілттер мен схемалар, бақыланатын lookup 'және агрегаттар, нұсқаланған көздер, әдепкі құпиялылық, DQ және бақылау. Сипатталған үлгілерге сүйене отырып, сіз қайталанатын, үнемді және жинақталған витриналар мен есептілікке, дербестендіруге және real-time тәуекел детекторларына дайын белгілерді аласыз.