डेटा स्कीमा और उनका विकास
1) यह एक आईगेमिंग प्लेटफॉर्म क्यों है
विश्वसनीयता - डेटा में बदलाव रिपोर्ट, एपीआई या मॉडल को नहीं तोड़ ते हैं।
फ़ीचर गति: सुरक्षित रूप से फ़ील्ड जोड़ें (KYC/RG/PSP) बिना धाराओं को रोके।
नियामक: ट्रेसिबिलिटी और प्रजनन क्षमता (ऑडिट/वंश, डीएसएआर, कानूनी पकड़)।
लागत: "ओवरफ्लो" और बैकफिल के डाउनटाइम को कम करें।
2) योजनाओं के प्रकार और जहां वे रहते हैं
घटनाएँ (धाराएँ): 'भुगतान। deposit_accepted', 'खेल। round_finished'।
OLTP/DDL: सामान्यीकृत टेबल (KYC, खाते, सीमा)।
DWH/storefronts (गोल्ड): BI/ML के तहत सामान्यीकृत समुच्चय।
फ़ीचर स्टोर: स्थिरता गारंटी के साथ ऑनलाइन/ऑफ़लाइन फ़ीचर सेट।
बाहरी साझेदार अनुबंध: पीएसपी, खेल प्रदाता, विपणन स्रोत।
नोटेशन: एवरो/प्रोटोबुफ (धाराएँ), JSON स्कीमा (एकीकरण), SQL DDL (DWH), पर्केट स्कीमा (झील)।
3) संगतता (विकास का मूल)
पिछड़े-संगत: नए उत्पादक - पुराने उपभोक्ता (जोड़ाफ़ील्ड सी डिफ़ॉल्ट/शून्य)।
फॉरवर्ड-संगत: पुराने उत्पादक - नए उपभोक्ता (नए पाठक अनावश्यक उपेक्षा करते हैं)।
पूर्ण-संगत: दोनों (घटनाओं के लिए वांछनीय लक्ष्य)।
ब्रेकिंग-परिवर्तन: एक क्षेत्र का नाम बदलना/हटाना, प्रकार/शब्दार्थ बदलना ,/विभाजन कुंजी बदलना।
नियम 1: घटनाएं जोड़ के माध्यम से विकसित होती हैं, परिवर्तन के माध
नियम 2: डिलीट करें - केवल मूल्यह्रास अवधि के बाद योजना के मेजर संस्करण में।
4) शब्दार्थ संस्करण और नीतियां
'मेजर। माइनर। प्रत्येक योजना/शोकेस/फीचर सेट के लिए PATCH '।
मेजर - असंगत (नया विषय/टेबल/फीचर सेट, डुअल-रन)।
MINTER - संगत (नया शून्य/डिफ़ॉल्ट क्षेत्र, नया एनम मान)।
PATCH - विवरण/सीमा/टिप्पणियां संपादित करें।
क्षेत्र जीवन चक्र: 'प्रायोगिक → सक्रिय → पदावनत → हटा दिया' (तिथियों और मालिक के साथ)।
5) योजना रजिस्टर और डेटा अनुबंध
स्कीमा रजिस्ट्री: संस्करण, संगतता, विकास और मालिकों को संग्रहीत करता है।
डेटा अनुबंध: योजना + एसएलओ गुणवत्ता + गोपनीयता को ठीक करता है (अनुभाग "डेटा सत्यापन" देखें)।
उदाहरण (एवरो, भुगतान। 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 घटनाएँ (धाराएँ)
Additive-केवल: डिफ़ॉल्ट/nullable के साथ फ़ील्ड जोड़ें; पुराने उपभोक्ता नहीं तोड़ ते
Enum एक्सटेंशन: नए वर्णों को MINTER माना जाता है, उपभोक्ताओं को 'अन्य/अज्ञात' शाखा की आवश्यकता होती है।
मेजर माइग्रेशन: नया विषय 'भुगतान। deposit_accepted। v2 ', डुअल-राइट, शैडो-रीड, फिर उपभोक्ताओं को स्विच करना।
6. 2 DWH/स्टोरफ्रंट
ब्लू-ग्रीन टेबल: 'सोना। revenue_v2' 'v1' के बगल में; भौतिक, सत्यापित करें, BI स्विच करें।
बैकफिल: स्नैपशॉट + आइडेम्पोटेंट मर्ज (कुंजी/संस्करण द्वारा) द्वारा रीप्ले।
SCD: धीरे-धीरे बदलते गुणों (सीमा, KYC, VIP स्टेटस) के लिए टाइप 2।
6. 3 फीचर स्टोर
दोहरी सेवा: पुराने फीचर सेट को नए के समानांतर परोसा जाता है; मॉडल एक राउटर के माध्यम से सेवित है।
प्वाइंट-इन-टाइम स्थिरता: विकास को PITA खुशियों को नहीं तोड़ ना चाहिए (timestamp/granuality MINTER पर अपरिवर्तित हैं)।
7) परिवर्तनों की वर्गीकरण (चेकलिस्ट)
सुरक्षित (माइनर):- 'nullable/default' फ़ील्ड जोड़ ना;
- enum विस्तार (उपभोक्ता पर एक 'अनजान' शाखा के साथ);
- एक गैर-कुंजी सूचकांक/टिप्पणी/विवरण जोड़ रहा है।
- स्केल/यूनिट परिवर्तन (उदाहरण के लिए, सेंट → बेस मुद्रा में राशि) - केवल मेजर
- संदर्भ/संदर्भ हस्तांतरण - प्रस्तुति परत के माध्
- क्षेत्र का नाम बदलें/मिटाएँ
- प्रकार/प्रारूप/कुंजी/पार्टीशन बदलें
- शब्दार्थ का परिवर्तन (उदाहरण के लिए, "अर्जित" → "लिखित" से 'बोनस _ राशि')।
8) सर्किट लिंटर्स और संगतता टेस्ट
स्कीमा-लिंट: नाम शैली ('स्नेक _ केस'), आवश्यक लेबल ('मालिक', 'डॉक', 'पिई'), दिनांक/मुद्रा प्रारूप।
कॉम्पैट-परीक्षण: रजिस्ट्री के खिलाफ नए संस्करण की जाँच (पीछे/आगे/पूर्ण)।
उपभोक्ता-अनुबंध-परीक्षण: प्रत्येक सेवा एक "नमूना पेलोड" और अपेक्षा प्रदान करती है योजना बदलते समय सीआई पर चलाएँ।
गोल्डन-डेटासेट: वास्तविक और "बुराई" उदाहरणों का एक सेट (नए एनम, खाली/देर से क्षेत्र, रकम के सीमा मूल्य)।
9) निर्देशिका, एनम और स्थानीयकरण
संदर्भ-डेटा (देश/मुद्राएं/पीएसपी/प्रदाता): व्यक्तिगत संस्करण और एसएलए अपडेट; घटना कोड में सिलाई न करें।
लोकेल/समय क्षेत्र: प्रस्तुति के लिए घटनाओं + स्पष्ट स्थान में यूटीसी संग्रहीत करें।
न्यायालयों के नियम: आयु झंडे, प्रोमो प्रतिबंध - कार्रवाई की तारीखों के साथ निर्देशिकाओं के रूप में।
10) मल्टी-ब्रांड/मल्टी-क्षेत्राधिकार और पीआईआई
किरायेदार अलगाव: 'ब्रांड', 'देश', 'लाइसेंस' - एनम के साथ अनिवार्य क्षेत्र; उन पर मार्ग।
स्कीमा स्तर पर पीआईआई नीति: क्षेत्रों को चिह्नित करें 'pii = true', मास्क/टोकन लागू करें; घटनाओं में, केवल टोकन।
DSAR: 'source _ id/trace _ id' for delection/रिट्रीवल की उपस्थिति; मेजर पलायन पर कानूनी पकड़।
11) डीडीएल और लेक वर्शनिंग
डीडीएल पलायन: घोषणात्मक प्रवासन (लिक्विबेस/फ्लाईवे/डीबीटी), वीसीएस में भंडारण, डोमेन मालिक द्वारा समीक्षा।
झील में प्रारूप: एवरो/पर्केट - खेतों के विकास को रिकॉर्ड करें; मेजर - नई तालिका/पथ '.../v2/' पर।
विभाजन: बदलते भागों (उदाहरण के लिए, 'date'→'date,brand') - केवल मेजर और डबल प्रविष्टि के माध्यम से।
12) iGaming के उदाहरण
12. 1 पीएसपी विस्तारित तरीके
एनम में 'विधि = "MEFETE" जोड़ा गया।
'deposit _ स्वीकृत v1 की माइनर रिलीज। 8. 0`; जो उपभोक्ता MEFETE नहीं जानते हैं, वे 'अज्ञात _ विधि' पर एक शाखा भेजते हैं।
12. 2 खेल प्रदाता ने पिचों को जोड़ा
V 'game। round_finished' जोड़ा 'जैकपॉट _ आईडी' (शून्य)।
शोकेस 'सोना। game_rounds_v3' माइनर प्राप्त करता है; पुरानी रिपोर्ट काम करती है, नए लोग जैकपॉट गिनते हैं।
12. 3 आरजी विशेषताएं
बूलियन 'स्वयं _ बहिष्कृत' से स्थिति 'rg _ state ∈ {कोई नहीं, सीमा, कूलडाउन, self_excluded}' - मेजर, नया विषय + डुअल-राइट + शोकेस और मॉडल का प्रवास।
13) एवोल्यूशन प्रक्रिया (विचार से स्विच करने के लि
1. प्रस्ताव (एडीआर): क्यों बदलें, संगतता का प्रकार, जोखिम मूल्यांकन और प्रभावित उपभोक्ता।
2. डिजाइन और अनुबंध: पंजीकरण, सेवर, संगतता नीति की योजना।
3. टेस्ट: लिंटर्स, कॉम्पैक्ट, उपभोक्ता-अनुबंध, गोल्डन-सेट पर रीप्ले।
4. तैनाती: डुअल-राइट/ब्लू-ग्रीन/शैडो-रीड; अलर्ट।
5. सुलह: व्यावसायिक संतुलन/अपरिवर्तनीय (डेटा सत्यापन देखें)।
6. स्विच: उपभोक्ताओं/बीआई/सुविधाओं को स्विच करें।
7. पदावनत: पुराने स्कीमा, अनुग्रह-अवधि, हटाओ और संग्रह को फ्रीज करें।
14) विकास के मेट्रिक्स और एसएलओ
प्रवास की सफलता-दर, दोहरे चलने का समय, नए प्रारूप की घटनाओं का हिस्सा, बैकफिल वॉल्यूम, अंतराल/ताजगी।
संगतता की घटनाएँ (P1/P2), स्विच करने के बाद विंडो की गुणवत्ता।
लागत: $/टीबी अतिप्रवाह, $/घंटे दोहरे-लेखन, क्लस्टर लोड।
अनुपालन: 0 पीआईआई लीक, एसएलए डीएसएआर/लीगल होल्ड मिला।
15) उपकरण और कलाकृतियाँ
15. 1 संगतता नीति (रजिस्ट्री)
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 नाम और प्रकार के लिंटर (नियम)
'sake _ case', UTC timestamps, DECIMAL (18) 2) रकम के लिए, अल्फा -2 के लिए 'देश', 'मुद्रा' फोर ।
No 'free _ text' for enum फ़ील्ड; संदर्भ पुस्तकें - बाहरी।
16) कार्यान्वयन रोडमैप
0-30 दिन (एमवीपी)
1. कुंजी घटनाओं (भुगतान, game_rounds, उपयोगकर्ता) के लिए स्कीमा रजिस्ट्री + संगतता नीति सक्षम करें।
2. सीआई में लिंटर्स/कॉम्पैट परीक्षण; मालिक निर्देशिका और एसएलए समीक्षा।
3. एडीआर टेम्प्लेट और माइग्रेशन पासपोर्ट; मेजर चेकलिस्ट।
30-90 दिन
1. गोल्ड स्टोरफ्रंट के लिए ब्लू-ग्रीन; महत्वपूर्ण विषयों के लिए दोहरी लिखें।
2. बुनियादी सेवाओं के लिए उपभोक्ता-अनुबंध-परीक गोल्डन-डेटासेट।
3. स्विच करते समय स्वचालित डिफ-सामंजस्य और अलर्ट; लागत रिपोर्ट।
3-6 महीने
1. अनुग्रह-अवधि के साथ एकल पदावनत/हटाने की प्रक्रिया; संग्रह और कानूनी पकड़।
2. भू/किरायेदार-विशिष्ट एन्क्रिप्शन योजनाएं और कुंजियाँ; संवेदनशील बाजारों के लिए डीपी वेरिएंट।
3. डेटा शब्दकोश और लाइव वंश चार्ट।
17) आरएसीआई
डेटा गवर्नेंस (ए/आर): मानक, रजिस्ट्री, प्रवासन समीक्षा, डी-प्रकाशन।
डोमेन ओनर्स (आर): क्षेत्रों का अर्थ, संदर्भ पुस्तकें, व्यवसाय अपरिवर्तनीय।
डेटा प्लेटफ़ॉर्म (आर): रजिस्ट्री टूल, कॉम्पैट टेस्ट, डुअल-रन/बैकफिल।
सुरक्षा/डीपीओ (ए/आर): पीआईआई नीतियां, भू/किरायेदार, डीएसएआर/कानूनी पकड़।
SRE/ऑब्जर्वेबिलिटी (C): अलर्ट, एवोल्यूशन SLO, क्षमता।
उत्पाद/वित्त (C): केपीआई का सत्यापन, विंडो स्विचिंग।
18) एंटी-पैटर्न
संस्करणों और दोहरे रन के बिना "मक्खी पर क्षेत्र संपादित करें"।
एक नया क्षेत्र जोड़ ने के बजाय नाम बदलना - बड़े पैमाने पर टूटना।
'अनजान' शाखा के बिना हार्ड एनम - नए मूल्यों पर छोड़ दें।
सभी न्यायालयों के लिए एकल निर्देशिका "कोड में"।
idempotent-merge के बिना बैकफिल और संतुलन की जाँच करें।
PII के साथ लॉग और खोज/DSAR के लिए trace_id के बिना।
19) संबंधित अनुभाग
डेटा सत्यापन, डेटा मूल और पथ, डेटाऑप्स अभ्यास, एनालिटिक्स और मेट्रिक्स एपीआई, ऑडिटिंग और वर्शनिंग, डेटा सुरक्षा और एन्क्रिप्शन, एक्सेस कंट्रोल, एमएलओपी: मॉडल शोषण।
कुल
योजनाओं का विकास एक प्रक्रिया है, न कि एक-बंद प्रवासन: रजिस्ट्री, संस्करण और अंतर; "आधी रात को स्विच" के बजाय डुअल-रन और ब्लू-ग्रीन; भाग्य के बजाय संगतता परीक्षण और व्यापार अपरिवर्तनों। इसलिए डेटा स्थिर रहता है, मॉडल अनुमानित हैं, रिपोर्ट सही हैं, और नियामक शांत हैं।