GH GambleHub

Məlumat anbarları və OLAP modelləri

(Bölmə: Texnologiya və Infrastruktur)

Qısa xülasə

Data Depolama (DWH) - iGaming analitikasının əsas təbəqəsi: tənzimləyicilərə hesabatlar, məhsul/bazar gəlirliliyi, kohort LTV, anti-frod analitikası, CRM seqmentasiyası və real vaxt daşbordları. Davamlı DWH aydın data modeli (Star/Snowflake/Data Vault), etibarlı inteqrasiya (ETL/ELT + CDC), düşünülmüş performans (sütun mühərrikləri, partisiyalar, MVs), ciddi semantika, təhlükəsizlik/PII və dəyər idarəetmə

Memarlıq yanaşmaları

Klassik DWH (Kimball vs Inmon)

Kimball (Dimensional/Star/Snowflake): sürətli hesabat vitrinləri; Faktlara və ölçmələrə diqqət yetirin, SCD tarixi. Sürətli taym-tu-valyu.
Inmon (Corporate Information Factory): normallaşdırılmış nüvə + vitrinlər; vaxt daha çətin, lakin ciddi və mərkəzləşdirilmiş.

Data Vault 2. 0

Hubs-Links-Satellites: mənbələrin inteqrasiyası və dəyişikliklərin auditi üçün ölçülü «xam» model. Üstündə Star vitrinləri tikilir.

Data Lake / Lakehouse

Data Lake: xam fayllar (Parquet/ORC) + kataloqlar (Hive/Glue/Unity/Metastore).
Lakehouse: batch/stream, ACID cədvəli (Delta/Iceberg/Hudi), time-travel, upsert/merge, kompakt fayllar, Z-order/Clustering üçün vahid təbəqə.

Medallion (Bronze–Silver–Gold)

Bronze: xam məlumatlar (raw) + CDC.
Silver: təmizlənmiş və konformlu.
Gold: iş vitrinlər/metrik/kublar.
Hibridlər üçün uyğundur (Kafka → Bronze; Silver в Lakehouse; Gold в ClickHouse/BigQuery/Snowflake).

OLAP modelləri: Star, Snowflake, Data Vault

Star Schema (ulduz)

Faktiki cədvəllər: əməliyyatlar (dərəcələr, depozitlər, sessiyalar).
Dimensions: oyunçu, oyun, provayder, tarix/vaxt, geo, cəlb kanalı.
Üstünlüklər: sadə Joys, proqnozlaşdırıla bilən performans.

Snowflake

Ölçmələrin normallaşdırılması (ölkələrin/regionların/şəhərlərin iyerarxiyası, məhsulların iyerarxiyası).
Üstünlüklər: daha az dublyaj; mənfi - daha coynalar.

Data Vault → Star

Xam dəyişikliklər DV (audit, tam təkrarlanabilirlik), hesabat vitrinləri Star/Snowflake kimi qurulur.

İnteqrasiya: ETL/ELT, CDC, yavaş dəyişikliklər

Paypline

OLTP-dən Outbox/CDC (Postgres/MySQL) → Kafka/konnektorlar → Bronze.
ELT: Silver təmizləmə, deadup, normallaşdırma.
Gold/vitrinlərdə biznes məntiqi və aqreqasiya.

SCD (Slowly Changing Dimensions)

Type 1: yenidən yazma (əhəmiyyətsiz sahələr üçün).
Type 2: Tarixilik (tarixli versiyalar) - profillər/kanallar/qiymətlər üçün standart.
Type 3: bir cüt dəyərləri saxlamaq (nadir hallarda).

SCD2 nümunəsi (SQL, ümumi performans):
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;

Semantik təbəqə və «həqiqi» metriklər

GGR, NGR, Net Deposits, ARPPU, LTV, Churn, Retention Cohorts.
Kod kimi metriklər (dbt metrics/LookML/Semantic Layer) → bütün hesabatlarda eyni düsturlar.
Təqvim: TZ/region/həftə sonu/kampaniya atributları ilə tarix/saat cədvəli.

Saxlama və mühərriklər: profil seçimi

Sütun və bulud DWH

ClickHouse: ultra sürətli skanlar/aqreqasiyalar, materiallaşdırılmış təsəvvürlər, proyeksiyalar; hadisələr/telemetriya və marketinq vitrinləri üçün fərqlidir.
BigQuery: Server, ölçü, avtomatik caches/klasterlər; tarama qiyməti; qarışıq yük və ad-hoc üçün əlverişlidir.
Snowflake: compute/storage bölməsi, tələb olunan klasterlər, time-travel; müxtəlif komandalar üçün şəffafdır.
Redshift/Vertica/Pinot/Druid: OLAP/real-time altında variantları.

Profil altında sazlama

Tarix/region/kanal üzrə partizanlaşdırma.
Filtrasiya/Coyn açarları ilə klasterləşdirmə/çeşidləmə.
Lüğətlərin sıxılması və kodlaşdırılması.
Ön aqreqasiya (rollup, cubes), materiallaşdırılmış təsəvvürlər.
Approx funksiyaları (HyperLogLog/approx_distinct) ucuz qiymətlər üçün.

Performans dizaynı

Partizanlaşdırma və klasterləşdirmə

Partisiya - bölmənin sərhədi. Hadisələr üçün gündüz/saat partiyaları.
Clusterization (sort keys/Z-order) - diapazonlar və join-lar sürətləndirir.

Materiallaşdırılmış görünüş (MV)

GGR/NGR əvvəlcədən hesablanması gün/ölkə/məhsul.
CDC axınından artımlı yeniləmə.

ClickHouse nümunəsi (MV saxlayan):
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;

Artım modelləri (dbt/ELT)

Partiyalar üzrə 'insert _ overwrite', CDC açarları üzrə 'merge', 'updated _ at' üzrə 'watermark' strategiyaları.

Join strategiyaları

Hər partiya seqmentində ölçmələrin replikası (denorm).
Broadcast small dims; açar sıralaması ilə shuffle large facts.

Qiymət: nəzarət və optimallaşdırma

BigQuery/Snowflake: tarama ölçüsünü məhdudlaşdırın (partiyalar/klasterlər layihələndirin), result cache/materialized views daxil edin, BI avto axtarışlarını məhdudlaşdırın.
ClickHouse: partiyalar ölçüsü, merj tezliyi, saxlama büdcəsi (xam hadisələr üçün TTL, aqreqasiya davamlı).
Metrik semantika «ikiqat» hesablamaları azaldır.
Data pruning: Bronze üçün retenshn, Gold üçün aqreqasiya.

Məlumat keyfiyyəti (DQ), kataloq, lineage

DQ çekləri: dolğunluq (completeness), unikallıq, diapazonlar, biznes qaydaları (məsələn, GGR ≥ 0).
Data Catalog & Lineage: cədvəllərin/sahələrin təsviri, sahibləri, PII təsnifatı, hesabatdan mənbəyə qədər izləmə.
Sxemlərə nəzarət: Hadisə müqaviləsi/CDC, uyğunsuz dəyişikliklər zamanı risklər.

Təhlükəsizlik, uyğunluq və çox tenant

PII seqmentasiya: ayrı-ayrı zonalar, maskalanma/təxəllüs, KMS şifrəli sütunlar.
RBAC/ABAC: layihə/sxemlər/cədvəllər/sətirlər (RLS) səviyyəsində rollar, «need-to-know» üçün çıxışlar.
Məlumatların lokallaşdırılması: regional buckets/warehouses (EU/TR/LATAM).
Giriş auditi: kim oxudu/vitrinləri və modelləri dəyişdirdi.

DR, backup və reproduktivlik

Verilənlər kodu versiyası (dbt/git), Dev/QA/Prod mühiti.
Metastor/kataloq snapshotları + cədvəllərin versiyası (time-travel).
Retenshn/TTL qatları Bronze/Silver/Gold; kritik vitrinlərin ixracı.
Game-day: vitrinlərin bərpası, metrlərin bütövlüyünün yoxlanılması.

Real-time və hibrid vitrinlər

Stream-to-OLAP: Kafka → ClickHouse/Pinot/Druid dəqiqə vitrinləri üçün.
Materialized views + demək olar ki, online yeniləmələr üçün CDC (5-15 dəqiqə).
Semantik təbəqə vahid olaraq qalır: metriklər real-time və batch-də eynidir.

Vitrin nümunəsi «GGR günlər və ölkələr üzrə» (ümumiləşdirilmiş 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;

Giriş çek siyahısı

1. Mənbələri və domenləri müəyyənləşdirin, metrik lüğəti düzəldin.
2. Model seçin: Xam/audit təbəqələri üçün DV + vitrinlər üçün Star.
3. Əsas sorğular və pəncərələr üçün partiyalar/klasterlər hazırlayın.
4. CDC/ELT, SCD siyasəti və surrogate keys konfiqurasiya.
5. Semantik təbəqəni (kod kimi metriklər) və tarix/saat təqvimini daxil edin.
6. Bahalı hesabatlar üçün MVs/ön aqreqasiya yaradın.
7. DQ/kataloq/lineage və sxem nəzarət daxil edin.
8. RBAC/PII/lokalizasiya, şifrələmə, audit müəyyən edin.
9. p95/p99 monitorinqini, dəyərini, deqradasiya və həddindən artıq istehlak risklərini konfiqurasiya edin.
10. Mütəmadi DR təlimləri və ətraf mühitin təkrarlanabilirliyi.

Antipatternlər

«Partiyasız bir nəhəng fakt» → terabayt skan və hesab artır.
Müxtəlif daşbordlarda metriklərin razılaşdırılmamış tərifləri.
Biznesin tarixilik tələb etdiyi yerdə SCD2 olmaması.
Vaxtından əvvəl ölçmələrin normallaşdırılması: əlavə coynlar və yavaş hesabatlar.
DQ çekləri və lineage → heç bir şey hesabatları olmadan xam məlumatlar.
Heç bir retensiya/TTL → zibil saxlama və partlayış dəyəri.

Nəticələr

Etibarlı iGaming-DWH - aydın model (DV → Star), vahid metrik lüğət, düzgün partisiyalar/klasterləşdirmə, materiallaşdırılmış vitrinlər, ciddi DQ/lineage, həmçinin RBAC/PII/lokalizasiya. Təzəlik üçün hibrid axını, ELT tərəfindən idarə olunan və dəyər intizamı əlavə edin - və turnirlər, tənzimləyici hesabatlar və p99 və büdcə sürprizləri olmadan ad-hoc araşdırma üçün ölçülü sabit bir analitik platforma əldə edin.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.