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

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