GH GambleHub

فروشگاه داده ها و مدل های OLAP

(بخش: تکنولوژی و زیرساخت)

خلاصه ای کوتاه

انبار داده (DWH) - لایه تجزیه و تحلیل هسته iGaming: گزارش به تنظیم کننده ها، سودآوری توسط محصول/بازار، LTV کوهورت، تجزیه و تحلیل ضد تقلب، تقسیم بندی CRM و داشبورد در زمان واقعی. DWH پایدار بر اساس یک مدل داده روشن (Star/Snowflake/Data Vault)، یکپارچه سازی قوی (ETL/ELT + CDC)، عملکرد متفکر (موتورهای ستون، احزاب، MVs)، معانی معیارهای دقیق، امنیت/PII و مدیریت هزینه ساخته شده است.

رویکردهای معماری

DWH کلاسیک (کیمبال در مقابل اینمون)

کیمبال (ابعاد/ستاره/برف ریزه): موارد گزارش سریع ؛ تمرکز بر حقایق و ابعاد، تاریخ SCD. ارزش زمانی سریع

Inmon (کارخانه اطلاعات شرکت): هسته عادی + فروشگاه ؛ سنگین تر در زمان، اما به شدت و مرکزی.

طاق داده 2. 0

Hubs-Links-Satellites: یک مدل خام مقیاس پذیر برای ادغام منبع و تغییر حسابرسی. فروشگاه های ستاره ای در بالا ساخته می شوند.

دریاچه داده/دریاچه

Data Lake: فایل های خام (Parquet/ORC) + دایرکتوری ها (Hive/Glue/Unity/Metastore).
دریاچه: تک لایه برای دسته/جریان، جداول ACID (دلتا/Iceberg/Hudi)، زمان سفر، upsert/ادغام، فایل های جمع و جور، Z-منظور/خوشه بندی.

مدال (برنز-نقره-طلا)

برنز: داده های خام (خام) + CDC.
نقره: خالص و سازگار.
طلا: موارد کسب و کار/متریک/مکعب.
مناسب برای هیبرید (کافکا → برنز ؛ سیلور в لیکهاوس ؛ طلا в ClickHouse/BigQuery/Snowflake).

مدل OLAP: ستاره، برف ریزه، خرک داده

طرح ستاره (ستاره)

جداول حقایق: معاملات (نرخ ها، سپرده ها، جلسات).
ابعاد: بازیکن، بازی، ارائه دهنده، تاریخ/زمان، جغرافیایی، کانال جاذبه.
مزایا: شادی ساده، عملکرد پیش بینی شده.

دانه برف

نرمال سازی ابعاد (سلسله مراتب کشور/منطقه/شهر، سلسله مراتب محصول).
مزایا: تکثیر کمتر ؛ منهای - شادی بیشتر.

طاق داده → ستاره

ما اضافه کردن تغییرات خام به DV (ممیزی، تکرارپذیری کامل)، ساخت پنجره گزارش مانند ستاره/برف ریزه.

ادغام: ETL/ELT، CDC، تغییرات آهسته

خط لوله

Outbox/CDC از OLTP (Postgres/MySQL) → اتصالات برنز.
ELT: تمیز کردن، dedup، عادی سازی در نقره.
منطق کسب و کار و تجمع در طلا/ویترین.

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، سپرده خالص، ARPPU، LTV، Churn، Cohorts Retention.
معیارها به عنوان کد (معیارهای DBT/LookML/لایه معنایی) → فرمول های مشابه در تمام گزارش ها.
تقویم: جدول تاریخ/ساعت با ویژگی های TZ/مناطق/تعطیلات آخر هفته/کمپین.

Vaults و موتورهای: انتخاب برای مشخصات

ستون و ابر DWH

ClickHouse: اسکن فوق العاده سریع/جمع آوری، نمایندگی های تحقق یافته، پیش بینی ها ؛ برای رویدادها/تله متری و نمایشگاه های بازاریابی متفاوت است.
BigQuery: بدون سرور، مقیاس، کش های خودکار/خوشه ها ؛ قیمت در هر اسکن ؛ مناسب برای بارهای مخلوط و ad-hoc.

برف ریزه: محاسبه/شاخه ذخیره سازی، خوشه بر روی تقاضا، زمان سفر ؛ شفافیت برای تیم های مختلف

Redshift/Vertica/Pinot/Druid: گزینه هایی برای OLAP/زمان واقعی.

تنظیم مشخصات

پارتیشن بندی بر اساس تاریخ/منطقه/کانال

خوشه بندی/مرتب سازی بر اساس کلید های فیلتر/شادی.
فشرده سازی و برنامه نویسی توسط لغت نامه ها.
Preaggregations (رول آپ، مکعب)، دیدگاه های تحقق یافته.
توابع تقریبی (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)

استراتژی ها 'insert _ overwrite' by party '،' merge 'by CDC keys'، 'watermark' by 'updated _ at'.

پیوستن به استراتژی

ماکت اندازه گیری در هر بخش دسته ای (denorm).
پخش کم نور کوچک ؛ زدن حقایق بزرگ مرتب شده بر اساس کلید.

هزینه: کنترل و بهینه سازی

BigQuery/Snowflake: محدود کردن اندازه اسکن (احزاب طراحی/خوشه ها)، فعال کردن نمایش کش/نمایش نتایج، محدود کردن BI خودکار quests.
ClickHouse: اندازه زیادی، فرکانس merjey، بودجه ذخیره سازی (TTL برای رویدادهای خام، تجمع با دوام).
معانی متریک محاسبات «دوگانه» را کاهش می دهد.
هرس داده ها: نگهداری برای برنز، جمع آوری برای طلا.

کیفیت داده ها (DQ)، کاتالوگ، اصل و نسب

DQ-چک: کامل، منحصر به فرد، محدوده، قوانین کسب و کار (به عنوان مثال، GGR ≥ 0 در aggregates).
کاتالوگ داده ها و خطوط: توضیحات جدول/زمینه، صاحبان، طبقه بندی PII، ردیابی گزارش به منبع.
طرح های کنترل: قرارداد برای رویدادها/CDC، هشدار برای تغییرات ناسازگار.

ایمنی، انطباق و چند اجاره

تقسیم بندی PII: مناطق فردی، پوشش/pseudonymization، ستون ها با رمزگذاری KMS.
RBAC/ABAC: نقش ها در سطح پروژه/طرح/جدول/ردیف (RLS)، رول برای «نیاز به دانستن».
محلی سازی داده ها: سطل های منطقه ای/انبارها (EU/TR/LATAM).
ممیزی دسترسی: چه کسی خواندن/تغییر فروشگاه ها و مدل ها.

DR، پشتیبان گیری و تکرارپذیری

نسخه بندی کد داده (dbt/git)، محیط Dev/QA/Prod.
Metastor/کاتالوگ عکس های فوری + جداول زمان سفر.

لایه های نگهدارنده/TTL برنز/نقره/طلا ؛ صادرات از فروشگاه های مهم

Game-day: بازگرداندن ویترین ها، بررسی یکپارچگی معیارها.

فروشگاه های زمان واقعی و ترکیبی

Stream-to-OLAP: کافکا → ClickHouse/Pinot/Druid برای ویترین دقیقه.
دیدگاه های مادی + CDC برای به روز رسانی در نزدیکی آنلاین (5-15 دقیقه).
لایه معنایی یکسان باقی می ماند: معیارها در زمان واقعی و دسته ای یکسان هستند.

GGR توسط روز و کشور نمایشگاه مثال (عمومی 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/preaggregations برای گزارش های گران قیمت.
7. فعال کردن DQ/دایرکتوری/lineage و کنترل طرح.
8. تعریف RBAC/PII/محلی سازی، رمزگذاری، حسابرسی.
9. نظارت بر p95/p99، هزینه، هشدار در مورد تخریب و غلبه را تنظیم کنید.
10. تمرینات منظم DR و تکرارپذیری محیط.

ضد الگوهای

«یک واقعیت غول پیکر بدون احزاب» → اسکن ترابایت و نمره در حال رشد است.
تعاریف متناقض معیارها در داشبورد های مختلف.
کمبود SCD2 که در آن کسب و کار نیاز به تاریخی.
عادی سازی زودرس اندازه گیری ها: شادی های غیر ضروری و گزارش های آهسته.
داده های خام بدون DQ چک و اصل و نسب → گزارش «هیچ چیز».
عدم اجازه/TTL → ذخیره سازی زباله و انفجار هزینه.

خلاصه

قابل اعتماد iGaming-DWH یک مدل واضح (DV → Star)، یک فرهنگ لغت متریک، پارتیشن های صحیح/خوشه بندی، فروشگاه های تحقق یافته، DQ/lineage دقیق و RBAC/PII/محلی سازی است. جریان ترکیبی را برای طراوت، نظم و انضباط مبتنی بر ELT و ارزش اضافه کنید و یک پلت فرم تجزیه و تحلیل پایدار دریافت کنید که به مسابقات، گزارش های نظارتی و تحقیقات ویژه بدون شگفتی در p99 و بودجه برسد.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.