GH GambleHub

Տվյալների սխեմաները և դրանց էվոլյուցիան

1) Ինչու՞ է դա iGaming հարթակ

Տե՛ ս, տվյալների փոփոխությունները չեն կոտրում հաշվետվությունները, API-ը և մոդելները։

Ֆիչի արագությունը 'ապահով կերպով ավելացնում ենք դաշտերը (KYC/RG/PSA), առանց սթրիմները կանգնեցնելու։

Կարգավորիչ 'հետադարձ և վերարտադրողականություն (audit/lineage, DSAR, Legal Hold)։

Արժեքը 'նվազագույնի հասցնում ենք «փոխպատվաստումներ» և դաունթայմ բեքֆիլներ։

2) Սխեմաների տեսակները և որտեղ են նրանք ապրում

Իրադարձությունները (սթրիմ) '"payments։ deposit_accepted`, `game. round_finished`.

OLTP/DDL: նորմալացված սեղաններ (KYC, հաշիվներ, սահմաններ)։

MSH/վիտրիններ (Gold) 'դիսորմալացված ագրեգատներ BI/ML-ի տակ։

Feature Store: առցանց/օֆլայնային ֆիգուրային ցանցեր, որոնք ունեն կոդեր։

Արտաքին գործընկերների պայմանագրերը ՝ PBS, խաղերի պրովայդերներ, մարքեթինգային աղբյուրներ։

Նոտացիաներ ՝ Avro/Corobuf (strims), JSON Schema (1942), SQL DDL (MSH), Parquet schema (lake)։

3) Համատեղելիությունը (էվոլյուցիայի միջուկը)

Backward-compatible-ը 'նոր վաճառողները հին կոնսյուրմերներ են (ավելացրեցին դաշտը 108/nullable)։

Forward-compatible: Հին վաճառողները նոր կոնսուումերներ են (նոր ընթերցողը անտեսում է ավելին)։

Fox-compatible: երկուսն էլ (իրադարձությունների ցանկալի նպատակը)։

Breaking-changes ՝ դաշտի վերանվանումը/հեռացումը, տիպի/սեմանտիկայի փոփոխությունը, ստեղնաշարի փոփոխությունը/partitioning։

1։ Իրադարձությունները զարգանում են ավելացման միջոցով, ոչ թե փոփոխության միջոցով։

Կանոն 2: հեռացնել միայն MAJOR-ում սխեմայի տարբերակները ավանդի ժամանակահատվածից հետո։

4) Սեմանտիկ տարբերակները և քաղաքականությունը

`MAJOR. MINOR. PATCH 'յուրաքանչյուր սխեմայի/վիտրինի/ֆիչի սեթի համար։

MAJOR-ը անհամատեղելի է (նոր topic/2019/fich-set, dig-run)։

MINOR-ը համատեղելի է (նոր nullable/wwww.ru դաշտեր, նոր enum-արժեքներ)։

PATCH - նկարագրությունների/սահմանումների/մեկնաբանությունների ուղղություններ։

Դաշտի կյանքի ցիկլը '«experimental experimental exprecated depremoved» (ամսագրերի և սեփականատիրոջ հետ)։

5) Տվյալների սխեմաները և պայմանագրերը

Schema Registry: պահպանում է տարբերակները, համատեղելիությունը, էվոլյուցիան և սեփականատերերը։

Medract-ը գրանցում է + SLO որակի + մասնավորեցումը (տե՛ ս «Տվյալների վալիդացիա» բաժինը)։

Օրինակ (Avro, payments. deposit_accepted v1. 7. 0):
json
{
"type":"record","name":"deposit_accepted","namespace":"payments",
"fields":[
{"name":"event_id","type":"string"},
{"name":"occurred_at","type":{"type":"long","logicalType":"timestamp-micros"}},
{"name":"user_id","type":"string"},
{"name":"brand","type":"string"},
{"name":"country","type":"string"},
{"name":"psp","type":"string"},
{"name":"method","type":"string"},
{"name":"amount","type":{"type":"bytes","logicalType":"decimal","precision":18,"scale":2}},
{"name":"currency","type":{"type":"enum","name":"Currency","symbols":["EUR","USD","TRY","BRL"]}},
{"name":"risk_score","type":["null","int"],"default":null},       // MINOR+
{"name":"kyc_level","type":["null",{"type":"enum","name":"Kyc","symbols":["L0","L1","L2","L3"]}],"default":null}
],
"compatibility":"FULL","owner":"team-payments"
}

6) Միգրացիայի արտոնագրերը

6. 1 Իրադարձություններ (ստրիմա)

Meditive-only: Մենք ավելացնում ենք դաշտերը nullable-ից։ հին վահանակները չեն կոտրվում։

ENUM-ընդլայնումներ. Նոր խորհրդանիշները համարվում են MINOR, կոնսուլները պարտավոր են ունենալ «else/unknown» ճյուղը։

MAJOR միգրացիա 'նոր topic' payments։ deposit_accepted. v2 ', dom-write, shadow-reads, ապա կոնյուումերների փոխակերպումը։

6. 2 MSH/վիտրիններ

Blue-Green աղյուսակները '"gold. revenue _ v2 "-ի մոտ 'v1'; նյութապաշտություն, սայթաքում, տեղափոխում ենք BI։

Backfill: Repschotes + idempotent merge (բաների/տարբերակների)։

SCD '2 տեսակը դանդաղ փոխվող ատրիբուտների համար (լիմիտներ, KYC, VIP ստատուսներ)։

6. 3 Feature Store

Dance-serve: հին fich-set սպասարկվում է զուգահեռ նոր; մոդելը ծառայում է ռոտերի միջոցով։

Point-in-time-ի համաձայն. էվոլյուցիան չպետք է կոտրի PITA-joyns (timestamp/granuluty անփոփոխ MINOR)։

7) Փոփոխությունների տաքսոնոմիա (չեկ թերթ)

Անվտանգ (MINOR)

ավելացրեք 'nullable/wwww.ru' դաշտեր;

ընդլայնումը ("unknown '-- վեկտորով սպառողի մոտ);

ավելացնում է սխալ ինդեքսը/մեկնաբանությունը/նկարագրությունը։

Պայմանականորեն անվտանգ

մասշտաբի/միավորի փոփոխությունը (օրինակ, amount կենտրոններում հիմնական տարբերակում) միայն MAJOR-ում է։

տեղեկատու/հանրաքվե փոխանցումը ներկայացման շերտի միջոցով է։

Կոտրող (MAJOR)

վերանվանումը/հեռացումը;

փոփոխությունը/ձևաչափը/բանալին/part.ru;

Սեմանտիկայի փոփոխությունը (օրինակ ՝ "bonus _ amount" -ից "հաշվարկված" է ")։

8) սխեմաների և թեստերի ինժեներներ

Schema-lint: Անունների ոճը («www.ake _ cult»), պարտադիր կոմպոզիցիաներ («owner», «doc», «pii»), դատ/արժույթի ձևաչափը։

Compat-tes.ru: Մենք ստուգում ենք նոր տարբերակը ռուսական դեմ (backward/forward/fox)։

Consumer-www.ract-tes.ru: Յուրաքանչյուր ծառայություն տալիս է «բեռի օրինակ» և սպասումներ։ դուրս գանք CI-ում սխեմայի փոփոխության ժամանակ։

Golden-intasets: Իրական և «չար» օրինակների հավաքածու (նոր enum, դատարկ/ուշ դաշտեր, գումարների հիբրիդային արժեքներ)։

9) Տեղեկագրեր, enum և տեղայնացում

Reference-2019 (երկրներ/արժույթ/PSA/պրովայդերներ) 'առանձին տարբերակներ և SLA 71; չմտնել իրադարձությունների կոդին։

Delale/ժամացույցի գոտիները 'պահել UTC-ը իրադարձություններում + ակնհայտ ռելիզը ներկայացման համար։

Միգրացիայի կանոնները 'տարիքային դրոշներ, պրոմո սահմանափակումներ' գործունեության ամսաթվերի հետ։

10) Multibrend/multurization և PII

Tenant-մեկուսացում '«brand», «country», «license» - պարտադիր դաշտեր enum; ռոտինգը նրանց վրա։

PII քաղաքականությունը սխեմայի մակարդակում, մենք փակցնում ենք դաշտերը 'pii = 108 ", մենք օգտագործում ենք դիմակներ/հյուսվածքներ։ իրադարձությունները միայն ցնցված են։

DSAR ՝ «source _ id/trace _ id» առկայությունը կոդավորման/որոնման համար; Legal Hold-ը MAJOR-ում։

11) DDL և Lake տարբերակումը

DDL-2019-ը 'կառավարական (Liquib.ru/Flyway/dbt), պահպանումը VCS-ում, տիրույթի սկզբնական սեփականատեր։

Lake: Avro/Parquet - մենք արձանագրում ենք դաշտերի էվոլյուցիան։ MAJOR-ի դեպքում նոր ռուսական/ճանապարհ «.../v2/»։

Partitioning: Կուսակցության փոփոխությունը (օրինակ ՝ «date 'date 'date, brand») միայն MAJOR-ի միջոցով և կրկնակի ձայնագրությամբ։

12) iGaming-ի օրինակները

12. 1 PSA-ն ընդլայնեց մեթոդները

Ավելացված "method =" MEFETE "enum-ում։

MINOR-ը թողարկել է «deposit _ accepted v1» սխեմա։ 8. 0`; վահանակները, որոնք MEFETE-ը չգիտեն, ուղարկում են «unknown _ method» ճյուղին։

12. 2 Խաղերի պրովայդերը ավելացրեց դաշտերը

«game» -ում։ round _ finished "-ը ավելացվում է" jackpot _ id "(nullable)։

Վիտրինա 'gold. game _ rounds _ v3 "ստանում է MINOR; Հին հաշվետվությունները աշխատում են, նորերը համարում են ջեքպոտներ։

12. 3 RG ատրիբուտներ

Անցումը հացաբուլկեղենից 'www.luded' մինչև ստատիկ 'rg _ state _ none, limit, cooldown, wwww.f _ wwww.luded + - MAJOR, նոր topic + dom-write + վիտրինի և մոդելների խմբակցություն։

13) Էվոլյուցիայի գործընթացը (գաղափարից մինչև 1922)

1. Proposal (ADR). Ինչու ենք փոխում, տեսակը, ռիսկի գնահատումը և տուժած սպառողները։

2. Դիզայնը և պայմանագիրը 'սխեման խմբագրության, semver, քաղաքականության մեջ։

3. Թեստեր ՝ linters, compat, consumer-medracom, golden-սեթերի վրա։

4. Իսպանիա: d07-write/blue-green/shadow-reads; ալերտներ։

5. Սեվկա 'բիզնես հավասարակշռություններ/ինվարանտներ (տե՛ ս «Տվյալների վալիդացիան»)։

6. Switch: Մենք անջատում ենք վահանակները/BI/fichi։

7. Deprecate: freeze հին սխեմա, grace-period, հեռացում և արխիվ։

14) Մետրիկի և SLO էվոլյուցիայի

Success-rate-ration, dult-run ժամանակը, նոր ձևաչափի իրադարձությունների մասը, backfill, lag/freshness ծավալը։

Պատահականները (P1/P2), վիտրինի որակը դեպքից հետո։

Cost: ԱՄՆ դոլարը/TB ծանրաբեռնվածությունը, դոլար/ժամ dom-write, բեռը։

Compliance: 0 PII արտահոսքը, SLA DSAR/Legal Hold-ը պահպանված են։

15) Գործիքներ և արտեֆակտներ

15. 1 Քաղաքական գործիչներ (1922)

yaml schema: payments. deposit_accepted compatibility: FULL default_nulls: true enums:
currency: {allow_new_symbols: true, require_consumer_unknown_branch: true}
pii: false owners: ["team-payments"]
reviewers: ["data-governance","security-dpo"]

15. 2 Անձնագիր (ձևանմուշ)

yaml change_id: MIG-2025-041 scope: game. round_finished -> v3 type: MAJOR plan:
dual_write: true shadow_reads: consumers: ["gold-rounds","rg-models"]
backfill: {from: "2025-01-01", mode: "idempotent-merge"}
validation:
invariants: ["sum_bets = sum_wins + margin + bonuses"]
freshness_delta_p95_max: "PT5M"
switch_criteria:
error_rate_max: 0. 1%
kpi_diff_pp_max: 0. 5 deprecate_after: "2025-12-31"

15. 3 Linter անուններ և տեսակներ (կանոններ)

«wwww.ake _ cult», UTC timestamps, DECIMAL (18,2) գումարների համար, «country» համաձայն VI-3166-1 alpha-2, «currency »-17-ի համար։

Ոչ մի «free _ 108» enum դաշտերի համար։ գրացուցակները արտաքին են։

16) Իրականացման ճանապարհային քարտեզը

0-30 օր (MVP)

1. Միացրեք Schema Registry + policy-ը հիմնական իրադարձությունների համար (payments, game _ rounds, user)։

2. Linters/compat թեստեր CI-ում; սեփականատերերի և SLA ակնարկների կատալոգ։

3. ADR մոդելները և միգրացիայի անձնագիրը։ MAJOR-ի չեկ թերթիկը։

30-90 օր

1. Blue-Green-ի համար Gold-վիտրինի համար։ dox-write քննադատական թեմաների համար։

2. Consumer-www.ract-tes.ru հիմնական ծառայությունների համար։ golden-datasets.

3. Ավտոմատ diff-sucks և ալտերտեր, երբ փոխվում են, արժեքի հաշվետվություններ։

3-6 ամիս

1. Deprecate/remove միասնական գործընթացը grace-period-ի հետ։ արխիվացում և Legal Hold.

2. Geo/tenant-հատուկ սխեմաներ և կոդավորման բանալիներ; DP տարբերակները զգայուն շուկաների համար։

3. Դաշտերի սեմանտիկայի կատալոգը (dictionary) և կենդանի դիագրամները։

17) RACI

Intel Governational (A/R) 'ստանդարտներ, կոդավորումներ, խմբակցությունների նախապատվություն, դե հրատարակություն։

Domain Owners (R) 'դաշտերի իմաստը, գրողները, բիզնեսի ինվարանտները։

SystePlatform (R) 'կոդավորման գործիքներ, compat թեստեր, drix-run/backfill։

System/DPO (A/R): PII քաղաքականությունը, geo/tenae, DSAR/Legal Hold։

MSE/Observability (C) 'ալտերտներ, SLO էվոլյուցիաներ, capacity։

Delt/Finance (C) 'KPI-ի վալիդացիա, պատուհաններ։

18) Anti-patterna

«Աջ դաշտը ամռանը» առանց տարբերակների և drix-run։

Նոր դաշտի ավելացման փոխարեն վերանվանումը կատարվում է զանգվածային կոտրվածքներ։

Կոշտ enum առանց ճյուղի «unknown» նվազման նոր արժեքներով։

«Կոդում» միասնական տեղեկատու բոլոր խմբակցությունների համար։

Բեքֆիլը առանց idempotent-merge և չեկ-հավասարակշռությունների։

Logs PII-ից և առանց trace _ id որոնման/DSAR-ի։

19) Կապված հատվածներ

Տվյալների վալիդացիան, ծագումը և տվյալների ուղին, EurOps-ը, API վերլուծաբանները և մեթրիկը, Adit-ը և տարբերությունը, Տվյալների անվտանգությունը և կոդավորումը, հասանելիության վերահսկումը, MLOps-ը 'մոդելների շահագործումը։

Արդյունքը

Սխեմաների էվոլյուցիան գործընթաց է, և ոչ թե տարբեր միգրացիա ՝ ստանդարտ, տարբերակներ և համատեղելիություն։ d07-run և blue-green փոխարեն «անջատիչների կեսգիշերին»; թեստերը և բիզնեսի ինվարանտները հաջողության փոխարեն։ Այսպիսով, տվյալները մնում են կայուն, մոդելները կանխատեսելի են, հաշվետվությունները ճիշտ են, իսկ կարգավորիչները ՝ հանգիստ։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։