Veri Depoları ve OLAP Modelleri
(Bölüm: Teknoloji ve Altyapı)
Kısa Özet
Veri ambarı (DWH) - iGaming'in temel analiz katmanı: düzenleyicilere raporlar, ürün/pazara göre karlılık, kohort LTV, dolandırıcılık karşıtı analitik, CRM segmentasyonu ve gerçek zamanlı gösterge panoları. Sürdürülebilir DWH, net bir veri modeli (Star/Snowflake/Data Vault), sağlam entegrasyon (ETL/ELT + CDC), düşünceli performans (sütun motorları, taraflar, MV'ler), sıkı metrikler semantiği, güvenlik/PII ve maliyet yönetimi üzerine kurulmuştur.
Mimari yaklaşımlar
Klasik DWH (Kimball vs Inmon)
Kimball (Boyutsal/Yıldız/Kar Tanesi): hızlı rapor durumları; Gerçeklere ve boyutlara, SCD tarihine odaklanın. Hızlı zaman değeri.
Inmon (Kurumsal Bilgi Fabrikası): normalleştirilmiş çekirdek + vitrinler; Zamanla daha ağır, ama kesinlikle ve merkezi olarak.
Veri Kasası 2. 0
Hubs-Links-Satellites: Kaynak entegrasyonu ve değişim denetimi için ölçeklenebilir bir "ham" model. Üstte yıldız vitrinler inşa ediliyor.
Veri Gölü/Lakehouse
Veri Gölü: ham dosyalar (Parke/ORC) + dizinler (Kovan/Tutkal/Birlik/Metastore).
Lakehouse: batch/stream için tek katman, ACID tabloları (Delta/Iceberg/Hudi), zamanda yolculuk, upsert/merge, compact files, Z-order/Clustering.
Madalyon (Bronz-Gümüş-Altın)
Bronz: ham veri (ham) + CDC.
Gümüş: saflaştırılmış ve konformal.
Altın: iş durumları/metrikler/küpler.
Melezler için uygundur (Kafka - Bronz; Gümüş в Lakehouse; Altın в ClickHouse/BigQuery/Snowflake).
OLAP modelleri: Yıldız, Kar Tanesi, Veri Kasası
Yıldız Şeması (yıldız)
Gerçek tablolar: işlemler (oranlar, mevduatlar, oturumlar).
Boyutlar: oyuncu, oyun, sağlayıcı, tarih/saat, coğrafi, cazibe kanalı.
Artılar: Basit joynes, öngörülen performans.
Kar tanesi
Boyut normalleştirme (ülke/bölge/şehir hiyerarşileri, ürün hiyerarşileri).
Artıları: daha az çoğaltma; eksi - daha fazla joynes.
Veri Kasası> Yıldız
DV'ye ham değişiklikler ekliyoruz (denetim, tam tekrarlanabilirlik), Star/Snowflake gibi rapor pencereleri oluşturuyoruz.
Entegrasyon: ETL/ELT, CDC, yavaş değişiklikler
Boru hattı
OLTP'den çıkış kutusu/CDC (Postgres/MySQL) - Kafka/Bronz konektörler.
ELT: Silver'da temizlik, dedup, normalleştirme.
Gold/vitrinlerde iş mantığı ve toplamalar.
SCD (Yavaşça Değişen Boyutlar)
Yazım 1-Overwrite (zorunlu olmayan alanlar için).
Tip 2: Tarihsellik (tarihli sürümler) - profiller/kanallar/fiyatlar için standart.
Tip 3: Bir çift değerin depolanması (nadir).
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 katman ve "gerçek" metrikler
Tek bir semantik katman girin: GGR, NGR, Net Deposits, ARPPU, LTV, Churn, Retention Cohorts tanımları.
Kod olarak metrikler (dbt metrics/LookML/Semantic Layer) - tüm raporlarda aynı formüller.
Takvim: TZ/bölgeler/hafta sonları/kampanyalar nitelikleriyle tarih/saat tablosu.
Tonozlar ve motorlar: profil seçme
Sütun ve Bulut DWH
ClickHouse: ultra hızlı taramalar/toplamalar, materyalize temsiller, projeksiyonlar; Etkinlikler/telemetri ve pazarlama vitrinleri için farklıdır.
BigQuery: sunucusuz, ölçekli, otomatik önbellek/kümeler; tarama başına fiyat; Karışık yükler ve ad-hoc için uygundur.
Kar tanesi: hesaplama/depolama dalı, isteğe bağlı kümeler, zaman yolculuğu; Farklı takımlara açık.
Redshift/Vertica/Pinot/Druid: OLAP/gerçek zamanlı için seçenekler.
Profil ayarı
Tarihe/bölgeye/kanala göre bölümleme.
Filtre/joyn tuşlarına göre kümeleme/sıralama.
Sözlüklerle sıkıştırma ve kodlama.
Ön toplamalar (toplama, küpler), maddeleşmiş görünümler.
Ucuz derecelendirmeler için yaklaşık fonksiyonlar (HyperLogLog/approx_distinct).
Performans Mühendisliği
Bölümleme ve kümeleme
Parti bölmenin sınırıdır. Etkinlikler için gün/saat partileri.
Kümeleme (sıralama tuşları/Z-sırası) - aralıkları ve birleştirmeleri hızlandırır.
Materyalize Görünümler (MVs)
GGR/NGR gün/ülke/ürün bazında ön rapor verir.
CDC akışından artımlı güncelleme.
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ımlı Modeller (dbt/ELT)
Stratejiler 'insert _ overwrite' by party, 'merge' by CDC keys, 'watermark' by 'updated _ at'.
Katılma stratejileri
Her parti segmentindeki ölçümlerin kopyası (denorm).
Yayın küçük dims; Anahtara göre sıralanmış büyük gerçekleri karıştır.
Maliyet: kontrol ve optimizasyon
BigQuery/Snowflake: tarama boyutunu sınırla (tasarım partileri/kümeleri), sonuç önbelleğini/maddeleştirilmiş görünümleri etkinleştir, BI otomatik görevlerini sınırla.
ClickHouse: lot büyüklüğü, merjey frekansı, depolama bütçesi (ham olaylar için TTL, toplamalar dayanıklıdır).
Metrik semantiği "çift" hesaplamayı azaltır.
Veri budama: Bronz için saklama, Altın için toplama.
Veri kalitesi (DQ), katalog, soy
DQ kontrolleri: bütünlük, benzersizlik, aralıklar, iş kuralları (örneğin, agregalarda GGR ≥ 0).
Veri Kataloğu ve Lineage: tablo/alan açıklamaları, sahipler, PII sınıflandırması, rapordan kaynağa izleme.
Kontrol şemaları: olaylar/CDC için sözleşme, uyumsuz değişiklikler için uyarılar.
Güvenlik, uyumluluk ve çoklu kiracılık
PII segmentasyonu: bireysel bölgeler, maskeleme/takma ad verme, KMS şifrelemeli sütunlar.
RBAC/ABAC: proje/şema/tablo/satır (RLS) seviyesindeki roller, "bilmesi gereken" için makaralar.
Verilerin yerelleştirilmesi: bölgesel kovalar/depolar (EU/TR/LATAM).
Erişim denetimi: Vitrinleri ve modelleri okuyan/değiştiren.
DR, yedeklemeler ve tekrarlanabilirlik
Veri kodu sürüm oluşturma (dbt/git), Dev/QA/Prod ortamı.
Metastor/katalog anlık görüntüleri + zaman yolculuğu tabloları.
Tutma/TTL katmanları Bronz/Gümüş/Altın; Kritik vitrinlerin ihracatı.
Oyun günü: vitrinleri geri yükleme, metriklerin bütünlüğünü kontrol etme.
Gerçek zamanlı ve hibrit vitrinler
Stream-to-OLAP: Kafka ^ Dakika vitrinleri için ClickHouse/Pinot/Druid.
Materyalize görünümler + yakın çevrimiçi güncellemeler için CDC (5-15 dakika).
Semantik katman aynı kalır: metrikler gerçek zamanlı ve toplu olarak aynıdır.
Güne Göre GGR ve Ülke Vitrin Örneği (Genel 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;
Uygulama kontrol listesi
1. Kaynakları ve etki alanlarını tanımlayın, metrik sözlüğünü düzeltin.
2. Model seçin: Ham/denetlenmiş katmanlar için DV + vitrinler için Yıldız.
3. Anahtar sorgular ve pencereler için tasarım partileri/kümeleri.
4. CDC/ELT, SCD politikası ve vekil anahtarları yapılandırın.
5. Bir semantik katman (kod olarak metrikler) ve bir tarih/saat takvimi girin.
6. Pahalı raporlar için MV'ler/ön toplamalar oluşturun.
7. DQ/directory/lineage ve şema denetimini etkinleştir.
8. RBAC/PII/yerelleştirme, şifreleme, denetleme tanımlayın.
9. P95/p99 izleme, maliyet, bozulma ve taşma uyarıları ayarlayın.
10. Düzenli DR egzersizleri ve ortamların tekrarlanabilirliği.
Anti-desenler
"Partisiz devasa bir gerçek" - terabayt tarar ve skor büyür.
Farklı panolardaki metriklerin tutarsız tanımları.
İş dünyasının tarihsellik gerektirdiği yerlerde SCD2 eksikliği.
Ölçümlerin erken normalleştirilmesi: gereksiz sevinçler ve yavaş raporlar.
DQ kontrolleri ve soyu olmayan ham veriler - "hiçbir şey" raporları.
İzin yokluğu/TTL - çöpün depolanması ve maliyetin patlaması.
Özet
Güvenilir iGaming-DWH, tek bir metrik sözlük, doğru bölümler/kümeleme, materyalize vitrinler, sıkı DQ/soy ve RBAC/PII/yerelleştirme olan açık bir modeldir (DV - Yıldız). Tazelik, ELT odaklı ve değer disiplini için hibrit akış ekleyin - ve p99 ve bütçede sürprizler olmadan turnuvalara, düzenleyici raporlara ve geçici araştırmalara ölçeklenen sürdürülebilir bir analitik platformu elde edin.