GH GambleHub

مخازن البيانات ونماذج OLAP

(القسم: التكنولوجيا والهياكل الأساسية)

موجز موجز

مستودع البيانات (DWH) - طبقة التحليلات الأساسية في iGaming: تقارير إلى المنظمين، والربحية حسب المنتج/السوق، وفرقة LTV، وتحليلات مكافحة الاحتيال، وتقسيم CRM ولوحات القيادة في الوقت الفعلي. تم بناء DWH المستدام على نموذج بيانات واضح (Star/Snowflake/Data Vault)، والتكامل القوي (ETL/ELT + CDC)، والأداء المدروس (محركات الأعمدة، والحفلات، و MVs)، ودلالات المقاييس الصارمة، والأمن/PI، وإدارة التكاليف.

المناهج المعمارية

كلاسيك DWH (Kimball vs Inmon)

Kimball (Dimensional/Star/Snowflake): حالات الإبلاغ السريع ؛ التركيز على الحقائق والأبعاد، تاريخ SCD. قيمة زمنية سريعة.
Inmon (Corporate Information Factory): normanized core + storefronts; أثقل في الوقت، ولكن بشكل صارم ومركزي.

Data Vault 2. 0

Hubs-Links-Satellites: نموذج «خام» قابل للتطوير لتكامل المصدر وتدقيق التغيير. يتم بناء واجهات متاجر النجوم في الأعلى.

بحيرة البيانات/ليكهاوس

Data Lake: raw files (Parquet/ORC) + directories (Hive/Glue/Unity/Metastore).
Lakehouse: طبقة واحدة للدفعة/التيار، جداول ACID (دلتا/Iceberg/Hudi)، السفر عبر الزمن، الانزعاج/الدمج، الملفات المدمجة، Z-Order/Clustering.

ميدالية (برونزية فضية ذهبية)

البرونز: بيانات خام (خام) + CDC.
الفضة: منقية ومطابقة.
الذهب: القضايا التجارية/المقاييس/المكعبات.
مناسب للهجينة (كافكا → البرونزية ؛ سيلفر в ليكهاوس ؛ الذهب в ClickHouse/BigQuery/Snowflake).

طرازات OLAP: Star و Snowflake و Data Vault

مخطط النجوم (نجم)

جداول الوقائع: المعاملات (الأسعار والودائع والدورات).
الأبعاد: لاعب، لعبة، مزود، تاريخ/وقت، جو، قناة جذب.
الإيجابيات: بهجة بسيطة، أداء متوقع.

ندفة الثلج

تطبيع الأبعاد (التسلسل الهرمي للبلد/المنطقة/المدينة، والتسلسل الهرمي للمنتجات).
الإيجابيات: ازدواجية أقل ؛ ناقص - المزيد من الفرح.

Data Vault → Star

نضيف تغييرات أولية إلى DV (التدقيق، قابلية التكاثر الكاملة)، وبناء نوافذ تقارير مثل Star/Snowflake.

التكامل: ETL/ELT، CDC، التغييرات البطيئة

خط الأنابيب

Outbox/CDC من OLTP (Postgres/MySQL) → موصلات كافكا/ → برونزية.
ELT: التنظيف، التخلص، التطبيع في الفضة.
منطق الأعمال والتجمعات في واجهات الذهب/المتاجر.

SCD (أبعاد متغيرة ببطء)

النوع 1-Overwrite (للميادين غير الأساسية).
النوع 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 و Net Deposits و ARPPU و LTV و Churn و Retention Cohorts.
المقاييس كرمز (dbt metrics/LookML/Semantic Layer) → نفس الصيغ في جميع التقارير.
الجدول الزمني: جدول التاريخ/الساعة مع خصائص TZ/المناطق/عطلات نهاية الأسبوع/الحملات.

الأقبية والمحركات: اختيار الملف الشخصي

عمود وسحابة DWH

ClickHouse: مسح/تجميعات فائقة السرعة، تمثيلات ملموسة، إسقاطات ؛ يختلف عن الأحداث/القياس عن بعد وعروض التسويق.
BigQuery: بدون خدمة، مقياس، مخابئ/مجموعات تلقائية ؛ والسعر لكل فحص ؛ ملائمة للأحمال المختلطة والمخصصة.
ندفة الثلج: فرع الحوسبة/التخزين، مجموعات عند الطلب، السفر عبر الزمن ؛ شفافة لفرق مختلفة.
Redshift/Vertica/Pinot/Druid: خيارات OLAP/في الوقت الفعلي.

ضبط الملف الشخصي

التقسيم حسب التاريخ/المنطقة/القناة.
التجميع/الفرز حسب مفاتيح التصفية/الفرح.
الضغط والترميز بواسطة القواميس.
Preaggregations (rollup، مكعبات)، وجهات نظر ملموسة.
تقريبا وظائف (HyperLogLog/approx_distinct) للتقييمات الرخيصة.

هندسة الأداء

التقسيم والتجميع

الحفلة هي حدود المقصورة. حفلات اليوم/الساعة للأحداث.
التجميع (مفاتيح الفرز/الترتيب Z) - يسرع النطاقات وينضم.

الآراء الموضوعية (MVs)

GGR/NGR تقرير مسبق حسب اليوم/البلد/المنتج.
تحديث تدريجي من تيار CDC.

مثال على ClickHouse (MV الحامل للدمج):
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)

الاستراتيجيات "إدخال _ الكتابة الفوقية" حسب الطرف، "الدمج" بواسطة مفاتيح CDC، "العلامة المائية" بواسطة "محدث _ at'.

استراتيجيات الانضمام

نسخة طبق الأصل من القياسات في كل دفعة (denorm).
البث الخافت الصغير ؛ خلط الحقائق الكبيرة مرتبة حسب المفتاح.

التكلفة: التحكم والاستخدام الأمثل

BigQuery/Snowflake: الحد من حجم المسح الضوئي (حفلات التصميم/المجموعات)، وتمكين مخبأ النتائج/المناظر المجسدة، والحد من المهام التلقائية BI.
ClickHouse: حجم اللوت، تردد ميرجي، ميزانية التخزين (TTL للأحداث الخام، التجميعات دائمة).
تقلل دلالات المقاييس من الحساب «المزدوج».
تقليم البيانات: الاحتفاظ بالبرونز، التجميع للذهب.

جودة البيانات (DQ)، الكتالوج، النسب

شيكات DQ: الاكتمال، التفرد، النطاقات، قواعد العمل (على سبيل المثال، GGR ≥ 0 في المجاميع).
كتالوج البيانات والنسب: الجدول/أوصاف الحقل، المالكون، تصنيف PII، تتبع التقارير إلى المصدر.
مخططات التحكم: عقد الأحداث/مراكز السيطرة على الأمراض والوقاية منها، تنبيهات لتغييرات غير متوافقة.

السلامة والامتثال وتعدد الإيجارات

تجزئة PII: مناطق فردية، إخفاء/تسمية مستعارة، أعمدة مع تشفير KMS.
RBAC/ABAC: أدوار على مستوى المشروع/المخطط/الجدول/الصف (RLS)، بكرات «الحاجة إلى المعرفة».
توطين البيانات: الدلاء/المستودعات الإقليمية (EU/TR/LATAM).
مراجعة الدخول: من يقرأ/يغير واجهات المحلات والنماذج.

DR، النسخ الاحتياطية وقابلية التكاثر

Data code versioning (dbt/git), Dev/QA/Prod Environment.
لقطات ميتاستور/كتالوج + جداول السفر عبر الزمن.
الاحتفاظ/طبقات TTL البرونزية/الفضية/الذهبية ؛ تصدير واجهات المحلات التجارية الهامة.
يوم اللعبة: استعادة العروض والتحقق من سلامة المقاييس.

واجهات المتاجر الهجينة في الوقت الفعلي

البث إلى OLAP: كافكا → ClickHouse/Pinot/Druid لعروض دقيقة.
وجهات نظر ملموسة + CDC للتحديثات القريبة من الإنترنت (5-15 دقيقة).
تظل الطبقة الدلالية كما هي: المقاييس متطابقة في الوقت الفعلي والدفعة.

GGR حسب اليوم ومثال العرض القطري (Generic SQL)

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. حدد النموذج: DV للطبقات الخام/المدققة + نجمة لحالات العرض.
3. حفلات/مجموعات تصميم للاستفسارات والنوافذ الرئيسية.
4. قم بتهيئة CDC/ELT وسياسة SCD والمفاتيح البديلة.
5. أدخل طبقة دلالية (مقاييس كرمز) وتقويم تاريخ/ساعة.
6. إنشاء MVs/preaggregation للتقارير باهظة الثمن.
7. تمكين DQ/الدليل/النسب ومراقبة المخطط.
8. تعريف RBAC/PII/التوطين والتشفير ومراجعة الحسابات.
9. وضع الفقرة 95/ص 99 للرصد والتكلفة والإنذارات بشأن التدهور والتجاوز.
10. تمارين DR المنتظمة وقابلية تكرار البيئات.

الأنماط المضادة

«حقيقة عملاقة واحدة بدون أحزاب» → مسح تيرابايت والنتيجة آخذة في الازدياد.
تعاريف غير متسقة للمقاييس في لوحات القيادة المختلفة.
نقص SCD2 حيث يتطلب العمل التاريخ.
التطبيع المبكر للقياسات: فرح غير ضروري وتقارير بطيئة.
البيانات الأولية بدون فحوصات DQ وتقارير النسب → «لا شيء».
عدم وجود إذن/TTL → تخزين القمامة وانفجار التكلفة.

موجز

iGaming-DWH الموثوق به هو نموذج واضح (DV→Star)، وقاموس متري واحد، والتقسيمات/التجميع الصحيح، وواجهات المتاجر المجسدة، و DQ/السلالة الصارمة، و RBAC/PII/التوطين. أضف البث الهجين للنضارة والانضباط القائم على ELT والقيمة - واحصل على منصة تحليلات مستدامة تتسع للبطولات والتقارير التنظيمية والأبحاث المخصصة دون مفاجآت في p99 والميزانية.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

Telegram
@Gamble_GC
بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.