Maglumat shemalary we olaryň ewolýusiýasy
1) Näme üçin iGaming-platforma
Ygtybarlylyk: maglumatlaryň üýtgemegi hasabatlary, API-leri we modelleri bozmaýar.
Tizlik: akymlary saklamazdan (KYC/RG/PSP) howpsuz goşuň.
Düzgünleşdiriji: yzarlanmak we köpeltmek (audit/lineage, DSAR, Legal Hold).
Bahasy: "akymlary" we arka fillleri azaltmak.
2) Shemalaryň görnüşleri we nirede ýaşaýarlar
Wakalar (akymlar): 'payments. deposit_accepted`, `game. round_finished`.
OLTP/DDL: kadalaşdyrylan tablisalar (KYC, hasaplar, çäkler).
DWH/vitrinler (Gold): BI/ML üçin denormallaşdyrylan agregatlar.
"Feature Store": utgaşyklyk kepillikleri bolan onlaýn/awtonom surat toplumlary.
Daşarky hyzmatdaşlaryň şertnamalary: PSP, oýun üpjün edijileri, marketing çeşmeleri.
Bellikler: Ýewro/Protobuf (akym), JSON Shema (integrasiýa), SQL DDL (DWH), Parquet shema (lake).
3) Gabat gelmek (ewolýusiýanyň özeni)
Backward-compatible: täze öndürijiler → köne öndürijiler (c default/nullable meýdançasyny goşdy).
Forward-compatible: köne prodýuserler → täze konsumerler (täze okyjy artykmaç zady äsgermezlik edýär).
Full-compatible: ikisi hem (wakalar üçin islenýän maksat).
Breaking-changes: meýdançanyň adyny üýtgetmek/aýyrmak, görnüşini/semantikasyny üýtgetmek, açary/partitioning üýtgetmek.
1-nji düzgün: wakalar üýtgeşme arkaly däl-de, goşulma arkaly ösýär.
2-nji düzgün: aýyrmak - diňe deprekeýt döwründen soň shemanyň MAJOR wersiýasynda.
4) Semantiki wersiýalar we syýasatlar
`MAJOR. MINOR. PATCH 'her shema/vitrin/surat toplumy üçin.
MAJOR - gabat gelmeýär (täze topic/tablisa/fich-set, dual-run).
MINOR - gabat gelýär (täze nullable/default meýdanlary, täze enum bahalary).
PATCH - düşündirişleri/çäkleri/teswirleri düzetmek.
Meýdanyň ömri: 'experimental → active → deprecated → removed' (seneler we eýesi bilen).
5) Shemalaryň sanawy we maglumatlaryň şertnamalary
Schema Registry: wersiýalary, laýyklygy, ewolýusiýasyny we eýelerini saklaýar.
Data Contract: shema + SLO hil + gizlinlik düzedýär ("Maglumatlary tassyklamak" bölümine serediň).
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) Migrasiýa patternleri
6. 1 Wakalar (akymlar)
Additive-only: default/nullable bilen meýdanlary goşýarys; köne konsumerler bozulmaýar.
Enum-giňeltmeler: täze nyşanlar MINOR hasaplanýar, konsumerleriň 'else/unknown' şahasy bolmaly.
MAJOR-göçmek: täze topic 'payments. deposit_accepted. v2 ', dual-write, shadow-reads, soňra konsumerleri üýtgetmek.
6. 2 DWH/vitrinler
Gök-ýaşyl tablisalar: 'gold. revenue_v2' 'v1' gapdalynda; materiallaşdyrýarys, barlaýarys, BI geçirýäris.
Backfill: snapshot + idempotent merge (açarlar/wersiýalar boýunça).
SCD: 2-nji görnüş haýal üýtgeýän atributlar üçin (çäkler, KYC, VIP-statuslar).
6. 3 Feature Store
Dual-serve: köne fich-set täzesine paralel hyzmat edilýär; model router arkaly hyzmat edilýär.
Nokat-in-time sazlaşyk: ewolýusiýa PITA-joýnalary bozmaly däldir (MINOR-da timestamp/granulýasiýa üýtgemez).
7) Üýtgeşmeleriň taksonomiýasy (çek-sanawy)
Howpsuz (MINOR):- 'nullable/default' eklemek;
- enum giňeltmek ('unknown' - sarp edijiniň şahasy bilen);
- Açar däl indeksiň/teswiriň/düşündirişleriň goşulmagy.
- masştabyň/birlikleriň üýtgemegi (mysal üçin, esasy walýutada amount →) - diňe MAJOR-da;
- maglumat kitabynyň/salgylanmanyň geçirilmegi - görkezme gatlagynyň üsti bilen.
- meýdanyň adyny üýtgetmek/aýyrmak;
- Görnüşini/formatyny/açaryny/partition üýtgetmek;
- semantikanyň üýtgemegi (mysal üçin, 'bonus _ amount' "hasaplandy" → "ýazyldy").
8) Shemalaryň linterleri we laýyklyk synaglary
Schema-lint: atlaryň stili ('snake _ case'), hökmany bellikler ('owner', 'doc', 'pii'), seneler/walýuta formaty.
Compat-tests: täze wersiýany reýestre garşy barlaýarys (backward/forward/full).
"Consumer-contract-tests": her bir hyzmat "peýdaly ýüküň mysaly" we garaşylýan zatlar bilen üpjün edýär; shema üýtgänsoň CI-e sürýäris.
Golden-datasets: hakyky we "erbet" mysallaryň toplumy (täze enum, boş/giç meýdanlar, jemleriň çäkleri).
9) Gollanmalar, enum we lokalizasiýa
Reference-data (ýurtlar/walýutalar/PSP/üpjün edijiler): aýry-aýry wersiýalar we SLA täzelenmeleri; Wakalaryň koduna goşulmazlyk.
Lokal/wagt zolaklary: UTC-ni wakalarda saklamak + görkeziş üçin açyk ýer.
Ýurisdiksiýalaryň düzgünleri: ýaş baýdaklary, mahabatyň çäklendirilmegi - hereket edýän senesi bolan gollanma görnüşinde.
10) Multibrand/multiýurisdiksiýalar we PII
Tenant-izolýasiýa: 'brand', 'country', 'license' - enum bilen hökmany meýdanlar; olaryň üsti bilen marşrut.
Shema derejesinde PII syýasaty: 'pii = true' meýdanlaryny belleýäris, maskalary/tokenizasiýany ulanýarys; wakalarda - diňe bellikler.
DSAR: ýok etmek/gözlemek üçin 'source _ id/trace _ id' bar; MAJOR göçlerinde Legal Hold.
11) DDL we Lake wersiýalary
DDL-migrasiýalary: deklaratiw migrasiýalary (Liquibase/Flyway/dbt), VCS-de saklamak, domen eýesiniň gykylygy.
Lake formatlary: Euro/Parquet - meýdanlaryň ewolýusiýasyny ýazga alýarys; MAJOR - täze tablisa/ýol '.../v2/'.
Partitioning: partiýanyň üýtgemegi (mysal üçin 'date' → 'date, brand') - diňe MAJOR we goşa ýazgy arkaly.
12) iGaming mysallary
12. 1 PSP usullaryny giňeltdi
Enuma 'method =' MEFETE 'goşuldy.
MINOR shema 'deposit _ accepted v1. 8. 0`; MEFETE bilmeýän konsumerler 'unknown _ method' şahamçasyny iberýärler.
12. 2 Oýun üpjün edijisi meýdançalary goşdy
Game. round_finished' 'jackpot _ id' (nullable) goşuldy.
Gold. game_rounds_v3' MINOR alýar; köne hasabatlar işleýär, täzeleri jekpotlary hasaplaýarlar.
12. 3 RG atributlary
Bug 'self _ excluded' -dan status 'rg _ state ∈ {none, limit, cooldown, self_excluded}' - MAJOR, täze topic + dual-write + penjireleriň we modelleriň göçmegi.
13) Ewolýusiýa prosesi (pikirden geçişe çenli)
1. Proposal (ADR): näme üçin üýtgedýäris, laýyklyk görnüşi, töwekgelçilige we täsir eden sarp edijilere baha bermek.
2. Dizaýn we şertnama: reýestre shema, semver, laýyklyk syýasaty.
3. Synaglar: linters, compat, consumer-contracts, golden-setlerde repleýler.
4. Ýerleşdirmek: dual-write/blue-green/shadow-reads; alertler.
5. Deňeşdirme: iş balanslary/üýtgeşmeler ("Maglumatlary tassyklamak" serediň).
6. Switch: Konsumerleri/BI/fiçleri geçirýäris.
7. Deprecate: köne shema freeze, grace-period, aýyrmak we arhiw.
14) Metrikler we SLO ewolýusiýasy
Göçüp barmak wagty, dual-run wagty, täze formatdaky wakalaryň paýy, backfill, lag/freshness.
Gabat gelmek hadysalary (P1/P2), çalşylandan soň vitrinleriň hili.
Bahasy: $/TB daşamak, $/sagat dual-write, klaster ýüklemek.
Compliance: 0 PII-syzmak, SLA DSAR/Legal Hold berjaý edildi.
15) Gurallar we artefaktlar
15. 1 Laýyklyk syýasaty (reýestr)
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 Migrasiýa pasporty (şablon)
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 Atlaryň we görnüşleriň linteri (düzgünler)
"snake _ case", UTC timestamps, DECIMAL (18,2), "country" ISO-3166-1 alpha-2, "currency" ISO-4217.
Enum-meýdanlar üçin 'free _ text' ýok; kataloglar - daşarky.
16) Durmuşa geçirmegiň ýol kartasy
0-30 gün (MVP)
1. Esasy wakalar (payments, game_rounds, user) üçin "Schema Registry + policy" -ni goşuň.
2. CI-de linterler/compat-synaglar; eýeleriň we SLA synlarynyň katalogy.
3. ADR şablonlary we migrasiýa pasporty; MAJOR çek-sanawy.
30-90 gün
1. Gold-vitrinler üçin Blue-Green; möhüm mowzuklar üçin dual-write.
2. Esasy hyzmatlar üçin "Consumer-contract-tests"; golden-datasets.
3. Awtomatiki diff-barlaklar we çalşylanda alertler; gymmatlyk hasabatlary.
3-6 aý
1. grace-period bilen ýeke deprecate/remove prosesi; arhiwlemek we Legal Hold.
2. Geo/tenant-spesifik shemalar we şifrlemek açarlary; Duýgur bazarlar üçin DP wariantlary.
3. Meýdan semantikasynyň katalogy (data dictionary) we göni lineage diagrammalary.
17) RACI
Data Governance (A/R): standartlar, reýestr, migrasiýa sesleri, de-neşir.
Domain Owners (R): meýdanlaryň manysy, gollanmalar, iş üýtgemeleri.
Data Platform (R): reýestr gurallary, compat-synaglar, dual-run/arka fellalar.
Howpsuzlyk/DPO (A/R): PII-syýasatlar, geo/tenant, DSAR/Legal Hold.
SRE/Observability (C): alertler, SLO ewolýusiýalary, capacity.
Product/Finance (C): KPI tassyklamasy, geçiş penjireleri.
18) Anti-patternler
"Meýdany uçup dolandyrýarys" wersiýasyz we dual-run.
Täze meýdany goşmagyň ýerine adyny üýtget → köpçülikleýin döwükler.
'unknown' şahasyz gaty enum → täze gymmatlyklarda düşýär.
Ähli ýurisdiksiýalar üçin "kodda" ýeke-täk gollanma.
Idempotent-merge we çek-balanssyz arka fil.
Gözleg/DSAR üçin PII we trace_id girelgeleri.
19) Baglanyşykly bölümler
Maglumatlary tassyklamak, Maglumatlaryň gelip çykyşy we ýoly, DataOps-praktikalar, API analitikleri we metrikleri, Audit we wersiýa, Maglumatlaryň howpsuzlygy we şifrlemek, Giriş gözegçiligi, MLOps: modelleriň işleýşi.
Jemi
Shemalaryň ewolýusiýasy bir gezeklik migrasiýa däl-de, bir prosesdir: reýestr, wersiýalar we gabat gelmek; "ýary gije açarlaryň" ýerine dual-run we blue-green; şowlulygyň ýerine laýyklyk synaglary we işewürlik üýtgemeleri. Şeýlelik bilen maglumatlar durnukly, modeller öňünden aýdyp boljak, hasabatlar dogry we düzgünleşdirijiler asuda bolup galýar.