डेटा स्टोर और ओएलएपी मॉडल
(धारा: प्रौद्योगिकी और बुनियादी ढांचा)
संक्षिप्त सारांश
डेटा वेयरहाउस (DWH) - iGaming की मुख्य एनालिटिक्स परत: नियामकों को रिपोर्ट, उत्पाद/बाजार द्वारा लाभप्रदता, सहवास एलटीवी, धोखाधड़ी विरोधी विश्लेषण, सीआरएम विभाजन और वास्तविक समय डैशबोर्ड। सस्टेनेबल DWH एक स्पष्ट डेटा मॉडल (स्टार/स्नोफ्लेक/डेटा वॉल्ट), मजबूत एकीकरण (ETL/ELT + CDC), विचारशील प्रदर्शन (स्तंभ इंजन, पार्टियां, MVV s), सख्ट्ट्रिक्रिक्स्रिक्स्ट्स्ट्ट्ट्ट्रिक्यूनिक्ट्स्ट्ट्यूनिक्ट्ट्ट्स/पीड।
वास्तुशिल्प दृष्टिकोण
क्लासिक DWH (किमबॉल बनाम इनमोन)
किमबॉल (आयामी/स्टार/स्नोफ्लेक): त्वरित रिपोर्ट मामले; तथ्यों और आयामों, एससीडी इतिहास पर ध्यान केंद्रित करें। त्वरित समय-मूल्य।
इनमोन (कॉर्पोरेट सूचना कारखाना): सामान्यीकृत कोर + स्टोरफ्रंट; समय में भारी, लेकिन कड़ाई से और केंद्रीय रूप से।
डेटा वॉल्ट 2। 0
हब-लिंक-उपग्रह: स्रोत एकीकरण और परिवर्तन ऑडिटिंग के लिए एक स्केलेबल "कच्चा" मॉडल। शीर्ष पर स्टार स्टोरफ्रंट बनाए जा रहे हैं।
डेटा लेक/लेकहाउस
डेटा लेक: कच्ची फ़ाइलें (Parquet/ORC) + निर्देशिका (हाइव/Glue/Unity/Metastore)।
लेकहाउस: बैच/स्ट्रीम, एसीआईडी टेबल (डेल्टा/आइसबर्ग/हुडी), टाइम-ट्रैवल, अपसर्ट/मर्ज, कॉम्पैक्ट फाइलें, जेड-ऑर्डर/क्लस्टरिंग के लिए एकल परत।
पदक (कांस्य-रजत-स्वर्ण)
कांस्य: कच्चा डेटा (कच्चा) + सीडीसी।
रजत: शुद्ध और अनुरूप।
सोना: व्यावसायिक मामले/मैट्रिक्स/क्यूब्स।
संकर के लिए उपयुक्त (काफ्का → कांस्य; सिल्वर в लेकहाउस; गोल्ड в क्लिकहाउस/बिगक्वेरी/स्नोफ्लेक)।
OLAP मॉडल: स्टार, स्नोफ्लेक, डेटा वॉल्ट
स्टार स्कीमा (तारा)
तथ्य सारणी: लेनदेन (दरें, जमा, सत्र)।
आयाम: खिलाड़ी, खेल, प्रदाता, तिथि/समय, भू, आकर्षण चैनल।
पेशेवरों: सरल खुशी, प्रदर्शन की भविष्यवाणी की।
स्नोफ्लेक
आयाम सामान्यीकरण (देश/क्षेत्र/शहर पदानुक्रम, उत्पाद पदानुक्रम)।
पेशेवरों: कम दोहराव; शून्य से - अधिक आनंद।
डेटा वॉल्ट → स्टार
हम डीवी (ऑडिट, पूर्ण प्रजनन योग्यता) में कच्चे बदलाव जोड़ ते हैं, स्टार/स्नोफ्लेक जैसी रिपोर्ट विंडो बनाते हैं।
एकीकरण: ईटीएल/ईएलटी, सीडीसी, धीमे परिवर्तन
पाइपलाइन
OLTP (Postgres/MySQL) से आउटबॉक्स/सीडीसी → काफ्का/ → कांस्य कनेक्टर।
ईएलटी: सिल्वर में सफाई, डीडअप, सामान्यीकरण।
स्वर्ण/भंडार में व्यावसायिक तर्क और एकत्रीकरण।
एससीडी (धीरे-धीरे बदलते आयाम)
टाइप करें (गैर-आवश्यक क्षेत्रों के लिए)।
टाइप 2: ऐतिहासिकता (दिनांकित संस्करण) - प्रोफाइल/चैनल/कीमतों के लिए मानक।
टाइप 3: मानों की एक जोड़ी का भंडारण (दुर्लभ)।
उदाहरण SCD2 (SQL, सामान्य दृश्य):sql
-- insert new dimension version
INSERT INTO dim_player (player_sk, player_id, country, valid_from, valid_to, is_current)
SELECT gen_sk(), s. player_id, s. country, now(), '9999-12-31', true
FROM staging_player s
LEFT JOIN dim_player d ON d. player_id = s. player_id AND d. is_current = true
WHERE d. player_id IS NULL OR d. country <> s. country;
-- closing the old version
UPDATE dim_player d
SET valid_to = now(), is_current = false
FROM staging_player s
WHERE d. player_id = s. player_id AND d. is_current = true AND d. country <> s. country;
सिमेंटिक परत और "सही" मैट्रिक्स
एक एकल शब्दार्थ परत दर्ज करें: GGR, NGR, शुद्ध जमा, ARPPU, LTV, चुरन, रिटेंशन Cohorts परिभाषाएँ।
कोड (dbt metrics/LookML/Semantic Layer) के रूप में मेट्रिक्स - सभी रिपोर्टों में एक ही सूत्र।
पंचांग: TZ/क्षेत्र/सप्ताहांत/अभियान की विशेषताओं के साथ तिथि/घंटा तालिका।
वाल्ट और इंजन: प्रोफ़ाइल के लिए चयन
स्तम्भ और बादल DWH
क्लिकहाउस: अल्ट्राफास्ट स्कैन/एकत्रीकरण, भौतिक अभ्यावेदन, अनुमान; घटनाओं/टेलीमेट्री और मार्केटिंग शोकेस के लिए अलग है।
BigQuery: सीवरलेस, स्केल, स्वचालित कैश/क्लस्टर; कीमत प्रति स्कैन; मिश्रित भार और तदर्थ के लिए सुविधाजनक।
स्नोफ्लेक: गणना/भंडारण शाखा, ऑन-डिमांड क्लस्टर, समय-यात्रा; विभिन्न टीमों के लिए पारदर्शी।
Redshift/Vertica/Pinot/Druid: OLAP/वास्तविक समय के लिए विकल्प।
प्रोफ़ाइल ट्यूनिंग
तिथि/क्षेत्र/चैनल के अनुसार विभाजन।
फ़िल्टर/जॉयन कुंजियों द्वारा क्लस्टरिंग/छंटाई।
शब्दकोशों द्वारा संपीड़न और कोडिंग।
पूर्वग्रह (रोलअप, क्यूब्स), भौतिक दृश्य।
सस्ती रेटिंग के लिए लगभग फ़ंक्शन (HyperLogLog/approx_distinct)।
प्रदर्शन इंजीनियरिंग
विभाजन और clustering
पार्टी डिब्बे की सीमा है। घटनाओं के लिए दिन/घंटे पार्टियां।
क्लस्टरिंग (सॉर्ट कुंजी/जेड-ऑर्डर) - रेंज को त्वरित करता है और शामिल होता है।
भौतिक दृश्य (एमवी)
GGR/NGR दिन/देश/उत्पाद द्वारा पूर्व रिपोर्ट।
सीडीसी स्ट्रीम से वृद्धिशील अद्यतन।
क्लिकहाउस का उदाहरण (विलय-होल्डिंग एमवी):sql
CREATE MATERIALIZED VIEW mv_ggr_daily
ENGINE = SummingMergeTree()
PARTITION BY toYYYYMMDD(ts)
ORDER BY (country, product_id, toDate(ts)) AS
SELECT toDate(ts) AS d,
country,
product_id,
sum(stake) AS stake_sum,
sum(win) AS win_sum,
sum(stake - win) AS ggr
FROM bets
GROUP BY d, country, product_id;
वृद्धिशील मॉडल (dbt/ELT)
रणनीतियाँ 'overrite' by पार्टी, 'merge' by CDC कुंजियाँ, 'watermark' by 'updated _ at'।
ज्वाइन-रणनीतियाँ
प्रत्येक बैच खंड (डेनोर्म) में माप की प्रतिकृति।
छोटे मंद प्रसारण; कुंजी द्वारा क्रमबद्ध बड़े तथ्यों को फेरब
लागत: नियंत्रण और अनुकूलन
BigQuery/Snowflake: स्कैन आकार (डिज़ाइन पार्टियों/समूहों) को सीमित करें, परिणाम कैश/भौतिक दृश्य सक्षम करें, BI ऑटो-quests को सीमित करें।
क्लिकहाउस: बहुत आकार, मर्जी आवृत्ति, भंडारण बजट (कच्चे कार्यक्रमों के लिए टीटीएल, एकत्रीकरण टिकाऊ हैं)।
मेट्रिक्स शब्दार्थ "डबल" गणना को कम करता है।
डेटा pruning: कांस्य के लिए अवधारण, गोल्ड के लिए एकत्रीकरण।
डेटा क्वालिटी (DQ), कैटलॉग, वंश
DQ-जाँच: पूर्णता, विशिष्टता, सीमाएँ, व्यावसायिक नियम (उदाहरण के लिए, कुल मिलाकर GGR ≥ 0)।
डेटा कैटलॉग और वंश: टेबल/फील्ड विवरण, मालिक, पीआईआई वर्गीकरण, रिपोर्ट-टू-सोर्स ट्रेसिंग।
नियंत्रण योजनाएं: घटनाओं के लिए अनुबंध/सीडीसी, असंगत परिवर्तनों के लिए अलर्ट।
सुरक्षा, अनुपालन और बहु-किरायेदारी
पीआईआई विभाजन: व्यक्तिगत क्षेत्र, मास्किंग/छद्म नाम, केएमएस एन्क्रिप्शन के साथ स्तंभ।
RBAC/ABAC: प्रोजेक्ट/स्कीमा/टेबल/रो (RLS) स्तर पर भूमिकाएं, "जरूरत-से-पता" के लिए रील।
डेटा का स्थानीयकरण: क्षेत्रीय बाल्टी/गोदाम (ईयू/टीआर/एलटीएएम)।
एक्सेस ऑडिट: जिन्होंने स्टोरफ्रंट और मॉडल पढ़े/बदले।
डीआर, बैकअप और प्रजनन क्षमता
डेटा कोड वर्शनिंग (dbt/git), देव/QA/Prod वातावरण।
मेटास्टर/कैटलॉग स्नैपशॉट + टाइम-ट्रैवल टेबल।
प्रतिधारण/टीटीएल परतें कांस्य/रजत/स्वर्ण; महत्वपूर्ण स्टोरफ्रंट का निर्यात।
खेल-दिवस: शोकेस को बहाल करना, मैट्रिक्स की अखंडता की जाँच करना।
रियल-टाइम और हाइब्रिड स्टोरफ्रंट्स
स्ट्रीम-टू-ओएलएपी: मिनट शोकेस के लिए काफ्का → क्लिकहाउस/पिनोट/ड्र्यूड।
निकट-ऑनलाइन अपडेट (5-15 मिनट) के लिए भौतिक दृश्य + सीडीसी।
शब्दार्थ परत समान रहती है: मैट्रिक्स वास्तविक समय और बैच में समान होते हैं।
जीजीआर डे और कंट्री शोकेस उदाहरण (जेनेरिक एसक्यूएल)
sql
CREATE TABLE fact_bets (
bet_id BIGINT,
player_sk BIGINT,
game_sk BIGINT,
country_sk BIGINT,
stake DECIMAL(18,2),
win DECIMAL(18,2),
ts TIMESTAMP
) PARTITION BY DATE(ts);
CREATE TABLE dim_country (
country_sk BIGINT PRIMARY KEY,
iso2 STRING,
region STRING,
valid_from TIMESTAMP,
valid_to TIMESTAMP,
is_current BOOL
);
-- Showcase
CREATE MATERIALIZED VIEW mart_ggr_daily AS
SELECT
DATE(ts) as d,
c. region,
SUM(stake) AS stake_sum,
SUM(win) AS win_sum,
SUM(stake - win) AS ggr
FROM fact_bets f
JOIN dim_country c ON c. country_sk = f. country_sk AND c. is_current
GROUP BY d, c. region;
कार्यान्वयन जाँच सूची
1. स्रोतों और डोमेन को परिभाषित करें, मीट्रिक शब्दकोश को ठीक करें
2. मॉडल चुनें: प्रदर्शन मामलों के लिए कच्चे/ऑडिट किए गए परतों + स्टार के लिए डीवी।
3. मुख्य प्रश्नों और विंडो के लिए डिजाइन पार्टियां/समूह।
4. सीडीसी/ईएलटी, एससीडी नीति और सरोगेट कुंजियाँ कॉन्फ़िगर करें।
5. एक सिमेंटिक परत (कोड के रूप में मैट्रिक्स) और एक तिथि/घंटा पंचांग भरें।
6. महंगी रिपोर्टों के लिए एमवी/पूर्ववर्ती बनाएं।
7. DQ/निर्देशिका/वंश और स्कीमा नियंत्रण सक्षम करें.
8. RBAC/PII/स्थानीयकरण, एन्क्रिप्शन, ऑडिटिंग को परिभाषित करें।
9. गिरावट और ओवररन पर p95/p99 निगरानी, लागत, अलर्ट सेट करें।
10. नियमित रूप से डीआर व्यायाम और वातावरण की प्रजनन क्षमता।
एंटी-पैटर्न
"पार्टियों के बिना एक विशाल तथ्य" - टेराबाइट स्कैन और स्कोर बढ़ रहा है।
विभिन्न डैशबोर्ड में मैट्रिक्स की असंगत परिभाषाएं।
की कमी जहां व्यापार के लिए ऐतिहासिकता की आवश्यकता होती
माप का समय से पहले सामान्यीकरण: अनावश्यक खुशी और धीमी रिपोर्ट।
डीक्यू चेक और वंश के बिना कच्चे डेटा - "कुछ भी नहीं" रिपोर्ट।
अनुमति का अभाव/टीटीएल → कचरे का भंडारण और लागत का विस्फोट।
सारांश
विश्वसनीय iGaming-DWH एक स्पष्ट मॉडल (DV→Star), एक एकल मीट्रिक शब्दकोश, सही विभाजन/क्लस्टरिंग, भौतिक भंडार, सख्त डीक्यू/वंश और आरबीएसी/पीआईआई/स्थानीयकरण है। ताजगी, ईएलटी-चालित और मूल्य अनुशासन के लिए हाइब्रिड स्ट्रीमिंग जोड़ें - और एक स्थायी एनालिटिक्स प्लेटफॉर्म प्राप्त करें जो टूर्नामेंट, नियामक रिपोर्ट और तदर्थ अनुसंधान के लिए।