GH GambleHub

डेटा सामान्यीकरण

1) उद्देश्य

सामान्यीकरण अपडेट की डुप्लिकेट और विसंगतियों को समाप्त करता है, समान निर्देशिकाओं और कुंजियों को सेट करता है, डेटा को बनाए रखने के लिए सुसंगत और सस्ता बनाता है। IGaming में, यह GGR/NGR, AML/RG विश्लेषण, नियामक रिपोर्टिंग, एंटीफ्राड और ML के लिए महत्वपूर्ण है।

2) जहां हम सामान्य करते हैं

कांस्य (कच्चा): सामान्यीकृत नहीं - भंडारण जैसा कि (केवल) फोरेंसिक के लिए है।

रजत (स्वच्छ/अनुरूप): बुनियादी सामान्यीकरण (3NF/BCNF, निर्देशिका, कुंजी, SCD)।

गोल्ड (सर्व): लक्ष्य स्टोरफ्रंट - पढ़ ने/बीआई के लिए नियंत्रित विकृति संभव है।

3) बुनियादी सिद्धांत

1. स्कीमा-फर्स्ट-ऑल टेबल में स्पष्ट स्कीमा और चाबियाँ हैं।

2. एकल पहचानकर्ता: 'user _ seudo _ id', 'session _ id', 'game _ id', 'प्रदाता _ id', 'लेनदेन _ id'.

3. सामान्य निर्देशिका: मुद्राएं, बाजार/न्यायालय, केवाईसी/आरजी स्टेटस, गेम प्रदाता, ट्रैफिक चैनल।

4. समय और मुद्रा: 'ईवेंट _ टाइम' (यूटीसी) और सामान्यीकृत 'राशि _ बेस' + 'fx _ source'।

5. एवोल्यूशन: सिमेंटिक संस्करण, "मूक" ब्रेक के बिना केवल संगत परिवर्तन।

6. पीआईआई कम से कम: उपयोगकर्ता - छद्म आईडी के माध्यम से; मैपिंग अलग से संग्रहीत है, पहुंच प्रतिबंधित है।

4) सामान्य रूप जल्दी से

1NF: परमाणु मूल्य, स्तंभों में कोई सरणी नहीं (सरणी → चाइल्ड-टेबल)।

2NF-Attributes पूरे यौगिक कुंजी पर निर्भर करता है।

3NF: कोई सकर्मक निर्भरता (विशेषता केवल कुंजी पर निर्भर करती है)।

BCNF: प्रत्येक निर्धारक एक कुंजी है। "कर्नेल" (भुगतान/गेमप्ले) के लिए उपयोग करें।

अभ्यास: भुगतान और गेमिंग गतिविधि के सिल्वर-मॉडल कम से कम 3NF रखते हैं; अधिक कठोर BCNF - संदर्भ पुस्तकों और संदर्भ तालिकाओं के लिए।

5) संदर्भ डोमेन मॉडल (रजत)

5. 1 संदर्भ पुस्तकें

'मंद। उपयोगकर्ता '(छद्म-आईडी, देश, आयु सीमा, आरजी स्टेटस)।

'मंद। खेल '(game_id, provider_id, शैली, RTP, अस्थिरता)।

'मंद। प्रदाताओं '(provider_id, प्रकार, लाइसेंस)।

'मंद। बाजार '(क्षेत्राधिकार कोड, नियामक)।

'मंद। fx_rates' (तिथि, ccy_from, ccy_to, दर, fx_source)।

5. 2 तथ्य (संकीर्ण घटना/लेनदेन तालिका)

'फैक्ट। भुगतान '(transaction_id, user_pseudo_id, amount_orig, मुद्रा, amount_base, बाजार, event_time, psp_ref, विधि)।

'फैक्ट। दांव '( , , , , , , परिणाम, ।

'फैक्ट। भुगतान '( , , , , , ।

लिंक: तथ्य - स्थिर कुंजी पर गाइड। हम "स्रोत मुद्रा" और "आधार" (amount_base), 'fx _ source' को ठीक करने में सभी मात्राओं की नकल करते हैं।

6) धीरे-धीरे बदलते माप (SCD)

टाइप I (ओवरराइट): वर्तनी/गैर-महत्वपूर्ण सुधार।

टाइप II (इतिहास): 'वैध _ for/valid _ to/is _ contore', ऑडिट परिवर्तन (उदाहरण के लिए, RG स्थिति परिवर्तन).

छोटी तुलना के लिए टाइप III (वैकल्पिक कॉलम): "पहले/बाद"।

सिफारिश: आरजी/केवाईसी/मार्केटिंग चैनल के लिए - एससीडी II; गेम रेफरेंस बुक्स (RTP) के लिए - प्रभाव सत्यापन के साथ SCD II।

SCD II का उदाहरण (सरलीकृत):
sql
CREATE TABLE dim. users_scd (
user_pseudo_id STRING,
country STRING,
rg_status STRING,
valid_from TIMESTAMP,
valid_to  TIMESTAMP,
is_current BOOLEAN
);

7) डीडुप्लिकेशन और कीज़

आंतरिक लिंक के लिए सरोगेट कुंजी (BIGINT/UUID)।

प्राकृतिक कुंजियाँ (उदाहरण के लिए, PSP से 'लेनदेन _ id') - मान्य और अलग से संग्रहीत की जाएं।

सिल्वर में बिजनेस कीज़द्वारा '(event_id, स्रोत)' को निगलना +।

भुगतान कटौती (उदाहरण):
sql
CREATE TABLE silver. payments AS
SELECT EXCEPT(rn) FROM (
SELECT p., ROW_NUMBER() OVER (PARTITION BY transaction_id ORDER BY event_time) rn
FROM bronze. payment_events p
)
WHERE rn = 1;

8) मुद्रा मानकीकरण और समय क्षेत्र

'event _ time' - हमेशा UTC; दुकान खिड़कियों के लिए, बाजार के लोकेल/टाइमज़ोन जोड़ें।

मुद्राएँ: 'राशि _ orig' और 'राशि _ base' (उदाहरण के लिए, EUR) + 'fx _ source', 'fx _ rate _ used'।

पाठ्यक्रमों का दैनिक फिक्सिंग: 'मंद। fx_rates' स्रोत और हैश हस्ताक्षर के साथ।

मात्रा का सामान्यीकरण (उदाहरण):
sql
SELECT t. transaction_id,
t. amount_orig,
t. currency,
r. rate AS fx_rate_used,
t. amount_orig r. rate AS amount_base
FROM bronze. payment_events t
JOIN dim. fx_rates r
ON r. date = DATE(t. event_time) AND r. ccy_from = t. currency AND r. ccy_to = 'EUR';

9) संदर्भ पुस्तकों की संगति

एकीकृत निर्देशिका रजिस्टर (गेम, प्रदाता, बाजार, मुद्राएं)।

DQ मान्यता: 'इन _ सेट', FK संदर्भ, विशिष्टता, SCD की स्थिरता।

बाहरी स्रोतों (खेल प्रदाताओं, देशों, पीएसपी) से "पतले" आयामों का ऑटोजेनरेशन।

10) कब denormalize करने के लिए

गोल्ड में डेनोर्मलाइजेशन की अनुमति है:
  • स्थिर "वाइड" रिपोर्ट (जीजीआर, जोखिम शोकेस);
  • द्वि प्रश्नों/डैशबोर्ड का त्वरण
  • SLA रीडिंग के तहत रियलटाइम स्टोरफ्रंट (क्लिकहाउस/पिनोट)।
नियम:
  • चांदी सत्य का स्रोत बनी हुई है।
  • सामान्यीकृत क्षेत्र - चांदी से गणना/प्रतिलिपि; सत्यापन तर्क।
  • किसी भी विकृतिकरण को शुद्धता के लिए प्रलेखित और परीक्षण किया जाता है।

11) स्टार और स्नोफ्लेक मॉडल

स्टार: एक तथ्य + फ्लैट माप - आसान और तेज पढ़ ना, अधिक महंगा लेखन/मिलान।

स्नोफ्लेक: माप सामान्यीकृत होते हैं (कनेक्टेड सबडिरेक्ट्रीज़) - कम डुप्लिकेट, अधिक जटिल प्रश्न।

सिफारिश: सोने में अधिक बार "स्टार", सिल्वर में - सामान्यीकृत "स्नोफ्लेक्स"।

12) योजनाओं का विकास (सुरक्षित परिवर्तन)

बैक-संगत: शून्य स्तंभ जोड़ ना; झंडे के साथ नए संदर्भ मूल्यों।

ब्रेकिंग: नाम बदलना/टाइपिंग/सिमेंटिक शिफ्ट - केवल '/v2 'के माध्यम से और प्रवास अवधि के लिए दोहरी प्रविष्टि।

अनुबंध: रजिस्ट्री में JSON/एवरो योजनाएं, संगतता के लिए उपभोक्ता-परीक्षण।

13) सामान्यीकरण के लिए डीक्यू नियंत्रण

न्यूनतम सेट:
  • कुंजी अद्वितीय हैं: 'लेनदेन _ id', 'bet _ id'।
  • संदर्भ अखंडता: 'मंद' पर एफके।
  • मुद्राएं: व्हाइटलिस्ट से 'मुद्रा', 'fx _ rate _ used' NULL नहीं, 'राशि _ base> = 0'।
  • समय: 'घटना समय' एक उचित विंडो में; कोई "भविष्य" घटनाएं नहीं।
  • SCD-सही: गैर-ओवरलैपिंग रेंज 'वैध _ for/valid _ to' है।

14) SQL मॉडल के उदाहरण

वास्तविक दरें (3NF):
sql
CREATE TABLE silver. fact_bets (
bet_id STRING PRIMARY KEY,
user_pseudo_id STRING NOT NULL,
game_id STRING NOT NULL,
stake_ccy DECIMAL(18,2) NOT NULL,
currency CHAR(3) NOT NULL,
stake_base DECIMAL(18,2) NOT NULL,
market CHAR(2) NOT NULL,
event_time TIMESTAMP NOT NULL
);
जीजीआर (गोल्ड) के लिए स्टार:
sql
CREATE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) AS event_date,
m. market,
g. provider_id,
SUM(b. stake_base) AS stakes_eur,
SUM(p. amount_base) AS payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) AS ggr_eur
FROM silver. fact_bets b
LEFT JOIN silver. fact_payouts p
ON p. user_pseudo_id = b. user_pseudo_id
AND p. game_id = b. game_id
AND DATE(p. event_time) = DATE(b. event_time)
JOIN dim. markets m ON m. code = b. market
JOIN dim. games g  ON g. game_id = b. game_id
GROUP BY 1,2,3;

15) गोपनीयता और अनुपालन

सिल्वर में एक उपयोगकर्ता को अलग करना; वास्तविक आईडी के साथ कनेक्शन - एक अलग संरक्षित सर्किट में।

आरएलएस/सीएलएस और फील्ड मास्किंग (ई-मेल/पैन एनालिटिक्स में उपलब्ध नहीं)।

निर्देशिका/कुंजियों का क्षेत्रीयकरण, स्कीमा एक्सटेंशन के लिए डीपीओ नियंत्रण।

16) अवलोकन और वंश

कांस्य → सिल्वर → गोल्ड से डेटा वंश, परिवर्तन और अनुबंध का संस्करण।

मेट्रिक्स: पूर्णता, वैधता, एफके त्रुटियां, डुप्लिकेट, समय में "छेद", अनुरोध लागत।

निर्देशिका और एफएक्स स्रोतों में ब्रेक पर अलर्ट।

17) आरएसीआई

आर: डेटा इंजीनियरिंग (सिल्वर/गोल्ड मॉडल), डेटा प्लेटफॉर्म (सर्किट रजिस्टर, डीक्यू)।

A: डेटा/वास्तुकला के प्रमुख।

सी: अनुपालन/डीपीओ (पीआईआई/प्रतिधारण), वित्त (एफएक्स/जीजीआर), जोखिम (आरजी/एएमएल)।

I: द्वि/उत्पाद/विपणन/संचालन।

18) कार्यान्वयन रोडमैप

एमवीपी (2-4 सप्ताह):

1. निर्देशिका रजिस्टर (बाजार, मुद्राएं, प्रदाता, खेल)।

2. सिल्वर-मॉडल का तथ्य। भुगतान ',' तथ्य। दांव ',' मंद। '(3HF), SCD II' dim के लिए। उपयोगकर्ताओं '।

3. मुद्रा सामान्यीकरण/समय क्षेत्र, मूल डीक्यू नियम (FK/uniqueness/in_set)।

4. पहला गोल्ड शोकेस (जीजीआर डेली) और सामंजस्य परीक्षण।

चरण 2 (4-8 सप्ताह):
  • एससीडी का विस्तार, खेल की घटनाओं का कवरेज, प्रदाता अनुरूप मॉडल।
  • स्कीमा संगतता ऑटोटेस्ट, माइग्रेशन सिम्युलेटर, मेटाडेटा कैटलॉग।
  • कुंजी/पार्टी अनुकूलन, क्लस्टरिंग/जेड-ऑर्डर।
चरण 3 (8-12 सप्ताह):
  • स्वर्ण, एसएलए/मूल्य के लिए विमुद्रीकरण नीतियां; स्टार/स्नोफ्लेक टेम्पलेट।
  • प्रलेखन की ऑटो-पीढ़ी, डैशबोर्ड में वंश ग्राफ।
  • क्षेत्रीय निर्देशिका और एन्क्रिप्शन कुंजियाँ, डीआर अभ्यास।

19) क्वालिटी चेकलिस्ट

  • एकल कुंजी और निर्देशिका अनुमोदित हैं।
  • सिल्वर इन 3NF, SCD ने "धीमी" माप पर लागू किया।
  • मुद्राएं/समय क्षेत्र सामान्यीकृत हैं; 'fx _ source' तय है।
  • DQ नियम (FK/uniqueness/range/in_set) सक्रिय हैं।
  • Denormalizations प्रलेखित, शुद्धता परीक्षण पारित।
  • डैशबोर्ड पर वंश और ताजगी/परिपूर्णता मैट्रिक्स दिखाई देते हैं।

20) बार-बार गलतियाँ और उनसे कैसे बचें

पीआईआई एनालिटिक्स में सम्मिश्रण: अलग मैपिंग, सीएलएस/आरएलएस का उपयोग करें।

रजत का अपर्याप्त सामान्यीकरण: 3NF, अन्यथा महंगा समर्थन और सामंजस्य त्रुटियां।

एफएक्स "प्रति रिपोर्ट": दरों को एक घटना पर कब्जा कर लिया जाना चाहिए, न कि "बैकडेटेड"।

कुंजी आयामों के लिए कोई SCD नहीं: खोया RG/KYC/चैनल इतिहास.

स्वर्ण पुनर्मूल्यांकन: निरर्थक जुड़ ता है - प्रबंधित विकृतिकरण।

योजनाओं का अपारदर्शी विकास: रजिस्ट्री और उपभोक्ता-परीक्षण का उपयोग करें।

21) नीचे की रेखा

सामान्यीकरण एक रजत-स्तरीय अनुशासन है: समान कुंजी और संदर्भ पुस्तकें, 3NF/BCNF तथ्यों और माप के लिए, सही इतिहास (एससीडी) और समय/मुद्राओं का मानकीकरण। इस तरह के "कंकाल" के साथ, सोने के मामले अनुमानित हो जाते हैं, रिपोर्ट तुलनीय होती है, और स्वामित्व की लागत को नियंत्रित किया जाता है।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।