Maʼlumotlar ombori va OLAP modellari
(Bo’lim: Texnologiyalar va infratuzilma)
Qisqacha xulosa
Maʼlumotlar ombori (DWH) - iGaming tahlilining tayanch qatlami: regulyatorlarga hisobotlar, mahsulotlar/bozorlar boʻyicha rentabellik, kogort LTV, antifrod tahlillari, CRM segmentatsiyasi va real-time dashbordlari. Barqaror DWH aniq ma’lumotlar modeli (Star/Snowflake/Data Vault), ishonchli integratsiya (ETL/ELT + CDC), puxta o’ylangan unumdorlik (kolonkali dvigatellar, partitsiyalar, MVs), qat’iy semantika, xavfsizlik/PII va qiymatni boshqarish
Arxitektura yondashuvlari
Klassik DWH (Kimball vs Inmon)
Kimball (Dimensional/Star/Snowflake): tezkor hisobot oynalari; fakt va o’lchovlarga e’tibor, SCD-tarix. Tezkor taym-tu-vel.
Inmon (Corporate Information Factory): normallashtirilgan yadro + vitrinalar; vaqt jihatidan og’irroq, ammo qat’iy va markazlashtirilgan.
Data Vault 2. 0
Hubs-Links-Satellites: manbalarni integratsiyalash va o’zgarishlarni auditlash uchun keng ko’lamli «xom» model. Ustiga Star vitrinalari qurilmoqda.
Data Lake / Lakehouse
Data Lake: xom fayllar (Parquet/ORC) + kataloglar (Hive/Glue/Unity/Metastore).
Lakehouse: batch/stream uchun yagona qatlam, ACID jadvallari (Delta/Iceberg/Hudi), time-travel, upsert/merge, ixcham fayllar, Z-order/Clustering.
Medallion (Bronze–Silver–Gold)
Bronze: xom ma’lumotlar (raw) + CDC.
Silver: tozalangan va konformli.
Gold: biznes-vitrinalar/metriklar/kublar.
Gibridlar uchun mos (Kafka → Bronze; Silver в Lakehouse; Gold в ClickHouse/BigQuery/Snowflake).
OLAP modellari: Star, Snowflake, Data Vault
Star Schema (yulduz)
Fact jadvallari: tranzaksiyalar (stavkalar, depozitlar, sessiyalar).
Dimensions: o’yinchi, o’yin, provayder, sana/vaqt, geo, jalb qilish kanali.
Afzalliklari: oddiy joylar, prognoz qilingan unumdorlik.
Snowflake
O’lchovlarni normallashtirish (mamlakatlar/mintaqalar/shaharlar ierarxiyasi, mahsulotlar ierarxiyasi).
Afzalliklar: kamroq takrorlash; minus - ko’proq joynalar.
Data Vault → Star
Xom o’zgarishlarni DV (audit, to’liq takrorlanuvchanlik) ga qo’shamiz, hisobot oynalarini Star/Snowflake sifatida quramiz.
Integratsiya: ETL/ELT, CDC, sekin oʻzgarishlar
Pipline
OLTP dan Outbox/CDC (Postgres/MySQL) → Kafka/konnektorlar → Bronze.
ELT: Silver’da tozalash, dedup, normallashtirish.
Gold/vitrinalarda biznes-mantiq va agregatsiyalar.
SCD (Slowly Changing Dimensions)
Type 1: (ahamiyatsiz maydonlar uchun).
Type 2: tarixiylik (sanalangan versiyalar) - profillar/kanallar/narxlar uchun standart.
Type 3: bir juft qiymatni saqlash (kamdan-kam hollarda).
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 qatlam va «haqiqiy» metriklar
GGR, NGR, Net Deposits, ARPPU, LTV, Churn, Retention Cohorts.
Kod sifatida metriklar (dbt metrics/LookML/Semantic Layer) → barcha hisobotlarda bir xil formulalar.
Taqvim: TZ/mintaqalar/dam olish/kampaniyalar atributlari bilan sana/soat jadvali.
Saqlash va dvigatellar: profil uchun tanlash
Ustunli va bulutli DWH
ClickHouse: o’ta tezkor skanlar/agregatsiyalar, materiallashtirilgan tasavvurlar, proyeksiyalar; voqealar/telemetriya va marketing vitrinalari uchun alohida.
BigQuery: serverless, masshtab, avtomatik keshlar/klasterlar; skaner narxi; aralash yuklamalar va ad-hoc uchun qulay.
Snowflake: compute/storage bo’limi, talabga ko’ra klastyerlar, time-travel; Turli buyruqlar uchun shaffof.
Redshift/Vertica/Pinot/Druid: OLAP/real-time ostida variantlar.
Profilni tyuning
Sana/mintaqa/kanal bo’yicha partiyalashtirish.
Filtrlash/joylar kalitlari bo’yicha klasterlash/saralash.
Lugʻatlarni siqish va kodlash.
Agregatsiyadan oldingi (rollup, cubes), materiallashtirilgan tasavvurlar.
Arzon baholar uchun Approx funksiyalari (HyperLogLog/approx_distinct).
Unumdorlikni loyihalash
Partiyalashtirish va klasterlashtirish
Partitsiya - bo’lim chegarasi. Voqealar uchun kunduzgi/soatlik partiyalar.
Klaster (sort keys/Z-order) - diapazonlar va join-larni tezlashtiradi.
Materiallashtirilgan taqdimnomalar (MV)
Kunlar/mamlakatlar/mahsulotlar bo’yicha GGR/NGR oldindan hisobi.
CDC oqimidan inkremental yangilanish.
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;
Inkremental modellar (dbt/ELT)
Partiyalar bo’yicha’insert _ overwrite’, CDC kalitlari bo’yicha’merge’,’updated _ at’bo’yicha’watermark’strategiyalari.
Join-strategiyalar
Har bir partiyaviy segmentga o’lchashlar nusxasi (denorm).
Broadcast small dims; shuffle large facts bilan saralanadi.
Qiymati: nazorat va optimallashtirish
BigQuery/Snowflake: skanerni cheklang (partiyalar/klasterlarni loyihalashtiring), result cache/materialized views ni yoqing, BI avto-kvestlarini cheklang.
ClickHouse: partiyalar hajmi, merj chastotasi, saqlash uchun byudjet (xom hodisalar uchun TTL, agregatsiyalar chidamli).
Metrik semantika «ikki marta» hisoblashni qisqartiradi.
Data pruning: Bronze uchun retenshn, Gold uchun agregatsiyalar.
Maʼlumotlar sifati (DQ), katalog, lineage
DQ cheklari: to’liqlik (completeness), o’ziga xoslik, diapazonlar, biznes qoidalar (masalan, GGR ≥ 0 agregatlarda).
Data Catalog & Lineage: jadvallar/maydonlarning tavsiflari, egalari, PII tasnifi, hisobotdan manbagacha izlash.
Sxemalarni boshqarish: hodisa/CDC kontrakti, mos kelmaydigan oʻzgarishlarda alertlar.
Xavfsizlik, komplayens va ko’p tenantlik
PII segmentatsiyasi: alohida zonalar, niqoblash/taxalluslashtirish, KMS-shifrlangan ustunlar.
RBAC/ABAC: loyiha/sxemalar/jadvallar/satrlar (RLS) darajasidagi rollar, «need-to-know» uchun yuklar.
Maʼlumotlar lokalizatsiyasi: mintaqaviy buckets/warehouses (EU/TR/LATAM).
Kirish auditi: kim vitrinalar va modellarni o’qigan/o’zgartirgan.
DR, bekaplar va takrorlanuvchanlik
Maʼlumotlar kodini versiya qilish (dbt/git), Dev/QA/Prod muhiti.
Metastor/katalog snapshotlari + jadvallarni versiyalash (time-travel).
Retenshn/TTL qatlamlari Bronze/Silver/Gold; kritik vitrinalarni eksport qilish.
Game-day: vitrinalarni tiklash, metriklarning yaxlitligini tekshirish.
Real-time va gibrid vitrinalar
Stream-to-OLAP: Kafka → ClickHouse/Pinot/Druid daqiqali vitrinalar uchun.
Materialized views + CDC deyarli onlayn yangilanishlar uchun (5-15 daqiqa).
Semantik qatlam bir xil bo’lib qoladi: metriklar real-time va batch bilan bir xil.
«GGR kunlar va mamlakatlar bo’yicha» (umumlashtirilgan SQL) vitrinasi namunasi
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;
Joriy etish chek-varaqasi
1. Manbalar va domenlarni aniqlab, metrik lugʻatni tuzating.
2. Namuna tanlang: Xom/audit qatlamlari uchun DV + Vitrinalar uchun Star.
3. Asosiy soʻrovlar va oynalar uchun partiyalar/klasterlarni loyihalashtiring.
4. CDC/ELT, SCD siyosati va surrogate keys moslamalarini oʻrnating.
5. Semantik qatlam va sana/soat kalendarini kiriting.
6. Qimmatbaho hisobotlar uchun MVs/pre-agregatsiyalarni yarating.
7. DQ/katalog/lineage va sxemalarni boshqarishni kiriting.
8. RBAC/PII/lokalizatsiya, shifrlash, auditni aniqlang.
9. p95/p99 monitoringini, qiymatini, tanazzulga uchragan va ortiqcha sarflangan alertlarni moslashtiring.
10. Muntazam DR-mashqlar va atrof-muhitning takrorlanuvchanligi.
Antipatternlar
«Partiyasiz bitta ulkan fakt» → terabayt skanerlari va hisob-kitob o’sib bormoqda.
Turli dashbordlardagi metriklarning kelishilmagan ta’riflari.
Biznes tarixiylikni talab qiladigan joyda SCD2 yo’qligi.
O’lchovlarni muddatidan oldin normallashtirish: ortiqcha joylar va sekin hisobotlar.
DQ cheklarsiz xom ma’lumotlar va lineage → hech narsa to’g’risida hisobotlar.
Retensiyaning yo’qligi/TTL → axlatni saqlash va qiymatni portlatish.
Yakunlar
Ishonchli iGaming-DWH - bu aniq model (DV → Star), yagona metrik lug’at, to’g’ri partiyalar/klaster, materiallashtirilgan vitrinalar, qat’iy DQ/lineage, shuningdek, RBAC/PII/mahalliylashtirish. Yangilik uchun gibrid striming, boshqariladigan ELT va qiymat intizomini qo’shing va turnirlar, tartibga soluvchi hisobotlar va p99 va byudjetdagi ajablanishlarsiz ad-hoc tadqiqotlari uchun barqaror tahliliy platformaga ega bo’ling.