Տվյալների վալիդացիա
1) Ինչու՞ է դա անհրաժեշտ iGaming պլատֆորմի համար
Վստահություն զեկույցների և KPI 'GGR/NET, հակադարձում, պահպանում, RG ազդանշաններ։
SysteML/սկորինգը 'հակաֆրոդի/www.ru/RG ճիշտ ֆիչեր։
Վիրահատությունները իրական ժամանակում 'ալտերտեր, երբ մենք մահանում ենք/կորցնում ենք իրադարձությունները մինչև վճարումները/UX։
Կոմպլենսը 'PII/գաղտնիքների բացակայությունը, որտեղ դրանք չպետք է լինեն։ ապացուցված ճանապարհը։
2) Որտե՞ ղ վարվել 'վերահսկման մակարդակներ
1. Ingest (batch/stream) 'սխեմա, տեսակներ, պարտադիր դաշտեր, idempotency/dedup։
2. Սթրիմ պրոցեսինգը 'պատուհաններ/ստացիոնար նշաններ, կարգը, բացթողումները/ուշացումները, exactly-once-ը։
3. ETL/ELT և փոխակերպումները 'հղումներ/ջոիններ, ագրեգատներ, բիզնես հավասարակշռություններ։
4. MSH/վիտրիններ (Gold) 'սպիտակամորթ, թարմ, եզակիություն։
5. Feature Store/առցանց 'fich միջակայքը, օֆլինի համաձայնությունը առցանց։
6. BI/API 'հաշվարկներ և ֆիլտրեր, SLAs-ը latency/freshness, k-անանուն։
3) Ստուգումների տեսակները (կատալոգը)
Սխեմաները 'տիպ/nullable/enum/regex/JSON-shape; անհամատեղելի փոփոխություններ են։
Վճարային ՝ 240, արժույթը ՝ www.DPR, USD, TRY, BRL com, ռուսական սահմանը, ռուսական լիցենզիայի երկիրը։
Ինքնություն/բանալին 'առաջնային բանալին եզակի է, foreenskey-ը «կախված» չէ։
Դաշտերի որակը 'լրացում, երկարություն, ձևաչափ (IBAN, BIN, e-mail)։
Վիճակագրությունը/հիմնական գծերը ՝ հաճախականությունը, բաշխումը, քվանտային միջանցքները։
Աննոմալիա 'ծավալի/մասնաբաժնի կտրուկ ցատկ, նուլի/կրկնօրինակներ, schema drift։
Թարմ 'max (ts) ոչ ավելի մեծ X; lag ingest nogold T.
Կոնսիստենտություն 'մանրամասների գումարը = համախմբված; multi-table reconciliation.
Գաղտնիությունը/անվտանգությունը 'Zero-PII թույլատրված գոտիներից դուրս; թունավորում/դիմակներ։
Կարգավորիչ ՝ RG/AML դաշտերը ներկա են և ճիշտ (ամսաթվերը, նշանները)։
4) DirecTracom (տվյալների պայմանագրեր)
Պայմանագիրը արձանագրում է + որակի կանոնները + 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 և www.m. «MAJOR» -ը կոտրում է, «MINOR» -ը ավելացնում է դաշտը, «PATCH» -ը շտկում է նկարագրությունը։
5) «Սպասումներ» (expectronics) և քաղաքականություն
Սպասումները անօրինական ստուգումներ են, որոնք կատարվում են դելֆիններում (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 'no կուսակցության/batch, ծանուցում + ticet; բլոկը downstream։
«warn '2019» -ը անցնում է, բայց խնդիր է ստեղծում վերլուծելու համար։ նշումներ։
«www.d.ru» -ը միայն ռուսական է։
6) Սթրիմինգ 'ստուգման առանձնահատկություններ
Watermarks/late 210 'թույլ ենք տալիս ուշանալ' 120s ", հակառակ դեպքում 'կարանտին; փոխհատուցենք վերջնական պատուհանները։
Idempotency: Իրադարձության բանալին + hash payload pedup brocker/հոսքի վրա։
Exactly-once: Գործարքային սինգլը (+ idempotent sinks) կրիտիկական հոսքերի համար (վճարումներ/փուլեր)։
Ծավալի հաշվիչները '«ակնկալվում էր» ստացվեց պատուհանի ետևում։ տարբերությունը ալերտ է։
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) MSH/SQL 'invariants և SHL։
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;
Matching-ը վիտրիններով 'ամեն օր «detail no summary», տարանջատման զեկույցները, ավտոմատ տիկետը։
8) Գաղտնիությունը և անվտանգությունը
PII-խմբագրությունը լռելյայն 'դիմակներ/հոսանքներ մուտքի վրա։ արգելում ենք «հում» e-mail/քարտեր/հեռախոսներ լոգարաններում։
Մրցույթի քաղաքականությունը 'աղյուսակներ PII-ի հետ' առանձին շերտ/կատալոգը, դերերի հասանելիությունը (RBAC/ABAC)։
K-անունությունը բացատրվում է 'առնվազն N տողերը կտրում են։
Leak-դետեկտորները 'PII, «գաղտնիքները» (բանալիներ/հոսանքներ)։
Իրավասություններ ՝ geo/tenault-մեկուսացում (երկիր/բրենդ/արտոնագիր), առանձին բանալիներ։
9) Որակի և SLO մեթրիկները
Որակի չափումները (D)
Freshness-ը max (ts) է։
Completeness-ը ոչ դատարկ/սպասվող գրառումների մասն է։
Uniqueness-ը մրցույթի կրկնօրինակներն են։
Consistency-ը invariants և հավասարակշռություններ են (միջտաբլիկ)։
Accuracy-ը արտաքին աղբյուրի/տիրույթի կանոնների ստուգումն է։
Validity-ը համապատասխանում է/enum/regex տիպերին։
SLO օրինակներ
`Freshness payments_gold ≤ 5 мин` (p95).
`Completeness game_rounds ≥ 99. 7 %/օր "։
`Duplicate_rate ≤ 0. 1‰`.
`PII_leak = 0`.
10) Alerta, tikets և runbook
Routing: Slack/PagerDuty-ը տիրույթի սեփականատերն է։ ինքնաբերաբար կիրառում ենք samples և diff։
Խումբը 'մեկ պատահականություն «labels: contaset = payments, brand = TR» հավաքածուի վրա։
Runbook (օրինակ «Freshness breach: payments _ gold»)։
1. Ստուգել ingest լագը և բրոքերի հերթը։
2. Համեմատել «ակնկալվում էր» PSA-ով։
3. Միացրեք retray/անցնել PSA երթուղին։
4. Անոնացնել պատճառը։ restart bets; անցկացնել post-mortem.
11) Տարբերակումը, թեստերը և waiver գործընթացը
Semver-ը որակի կանոնները '"quality @ MAJOR։ MINOR. PATCH`.
Փոխակերպման յունիտ թեստերը (SQL/DBT/proton) և աղբյուրների համար պայմանագիր-թեստերը։
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-ի առանձնահատկությունները 'պատրաստի դեպքեր
Վճարումները/PSA: Ավանդների գումարը/եզրակացությունները PSA զեկույցների հետ։ բացակայող ստատուսները բատչայի կարանտին են։ Allert աճի վրա 'decult _ rate'։
Խաղային պրովայդերներ '«rounds _ per _ min' vs baseline + schema drift» ընկնելը պրովայդեր A-ի փոխակերպման բլոկը, կարգավիճակի բանկերը։
RG/AML 'պարտադիր դաշտեր (լիմիտներ, www.f-www.lusion, 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, dedup, watermarks); PII դետեկտորները։
3. CI/CD-ի հետ ինտեգրումը 'աղբյուրների և փոխակերպումների պայմանագրեր։
4. SLO հատկությունները OKR-ում ածխաջրածինների թիմերում։
3-6 ամիս
1. AIOps-ի նախադրյալները։ պատճառների տեղայնացումը։
2. Քրոս բրենդը/գեո որակի քաղաքականությունը և համակարգչային հաշվետվությունները։
3. Post-mortems P1-ը բացատրում է golden-սեթների և կանոնների համալրումը։
4. Կապը հոսքերի ալերտինգի և անոմալիաների վերլուծության հետ (մեկ տերմինալ)։
15) RACI
I. Governae (A/R) 'ստանդարտներ, պայմանագրեր, կանոնների աուդիտ։
Domain Owners (R) 'հիբրիդային սպասումներ և ինվարանտներ։
Master Platform (R) 'սպասումների, կարանտինի, ալերտայի, ռուսական։
System/DPO (A/R) 'մասնավորություն/PII/k-անանուն, geo/tenault-մեկուսացում։
MSE/Observability (C) ՝ շարժիչների, SLO/SLI միկրոակտիվացում։
Cort/Finance (C) 'բիզնես հավասարակշռություններ, մրցույթի գերակայություններ։
16) Anti-patterna
Վալիդացիան «միայն MSH-ում» - ուշ, թանկ, ցավոտ։
Ոչ մի կարանտին, «կեղտը» գնում է Gold/ML-ում և կոտրում վստահությունը։
Առանց սեզոնային/ժամ/շուկաների կոշտ շեմերը բացատրում են ալտերի փոթորիկը։
Սեփականատիրոջ և semver-ի բացակայությունը ղեկավարում էր բացառությունների քաոսը։
Լոգները PII-ից և «սկրինշոտները ընդհանուր ալիքի մեջ»։
Տարբեր «երկրորդական օրեր» փոխարեն անընդհատ։
17) Կապված հատվածներ
Intel Ops-պրակտիկան, Տվյալների և տարբերակի աուդիտը, Տվյալների ծագումը և ճանապարհը, Alerta-ը տվյալների հոսքերից, անոմալիաների և հարաբերակցությունների վերլուծությունը, Հասանելիության վերահսկումը, Տվյալների անվտանգությունը և կոդավորումը, տվյալների պահպանման քաղաքականությունը, MLOps-ը 'մոդելների շահագործումը։
Արդյունքը
Վալիդացիան ոչ թե ֆիլտրն է վերջում, այլ որակի պայմանագրի միջոցով 'ինժեներությունից և սթրիմից մինչև վիտրինը և առցանց ֆիչը։ Հստակ սպասումները, կարանտինը, ալերտները և SLO-ն վերածում են վստահելի տվյալների 'հաշվետվությունները ճիշտ են, մոդելները կայուն, վճարումները անվտանգ են, կոմպլեքս։