Veri gölleri ve akış toplama
1) Amaç ve değer
Veri Gölü/Lakehouse - uzun vadeli depolama ve büyük ölçekli okuma referans katmanı, nerede:- Ürünlerden/oyunlardan/ödemelerden gelen akışlar "olduğu gibi" Bronze'a iner.
- Gümüş normalleştirir ve zenginleştirir, tutarlı anahtarlar ve kalite sağlar.
- Altın - BI, regülatör, anti-dolandırıcılık/RG için toplanmış vitrinler (gerçek/neredeyse gerçek zamanlı dahil).
Lakehouse'daki akışların toplanması: düşük rapor gecikmesi, öngörülebilir maliyet, tekrarlanabilirlik ve adli tıp.
2) Referans mimarisi
1. Ingest/Edge: HTTP/gRPC, OTel, batch endpoints - шина (Kafka/Redpanda).
2. Bronz (yalnızca ek): nesne depolama + ACID tabloları (Delta/Iceberg/Hudi), tarihe/pazara/kiracıya göre bölümler; Orijinal yükün depolanması.
3. Akış Hesaplama: Flink/Spark/Beam - pencere birimleri, CEP, deadup, çevrimiçi aramalar.
4. Gümüş (temiz/uygun): para birimi normalleştirme/saat dilimi, FK/dizinler, ölçümler için SCD.
5. Servis/OLAP: ClickHouse/Pinot/Druid - paneller için maddeleşmiş dakika/saniye agregaları.
6. Altın (hizmet): günlük/saatlik vitrinler, düzenleyici dilimler, değişmez ihracat paketleri (WORM).
7. Denetim döngüleri: Şema Kayıt Defteri, DQ-as-code, soy, dizinler, sırlar/KMS, RBAC/ABAC.
3) Sözleşmeler ve planlar
Şema-ilk: JSON/Avro/Protobuf; Gerekli alanlar 'event _ time (UTC)', 'event _ id', 'trace _ id', 'user _ pseudo _ id', 'market', 'schema _ version' alanlarıdır.
Evrim: geri uyumlu - nullable ekleyerek; breaking -'/v2 '+ çift giriş.
Dizin: etki alanı açıklaması, sahibi, taze SLA, DQ kuralları, soy.
4) Akarsuların göle inmesi
Tam olarak bir kez altta: en az bir kez yayın + idempotent lavabo ('event _ id'tarafından MERGE/upsert).
Dedup: akışta durum bilgisi + Gümüşte benzersizlik.
Dosya sıkıştırma: küçük dosyalar - okuma ve maliyet için düzenli OPTIMIZE/VAKUM.
Zaman yolculuğu: hata ayıklama, yeniden oynatma ve denetim içerir.
sql
CREATE TABLE bronze. payment_events (
event_id STRING, user_pseudo_id STRING, currency STRING,
amount DECIMAL(18,2), market STRING, event_time TIMESTAMP, payload STRING
)
PARTITIONED BY (days(event_time), market);
5) Akış toplama: pencereler ve filigranlar
Windows:- Yuvarlanma - sabit (örn. Kararlı paneller için 1 dakika/5 dakika).
- Atlamalı - "pürüzsüz" metrikler için örtüşen (adım
- Oturum - hareketsizlikte davranışsal boşluklar.
- Filigranlar: Geç veri kontrolü (genellikle 2-5 dakika), ön düzenleme/düzeltme kuralları.
sql
SELECT market,
TUMBLE_START(event_time, INTERVAL '1' MINUTE) AS ts_min,
COUNT() AS deposits_1m,
SUM(amount_base) AS sum_1m
FROM silver. payments
GROUP BY market, TUMBLE(event_time, INTERVAL '1' MINUTE);
6) Agregaların maddeleştirilmesi
OLAP motoru (ClickHouse/Pinot/Druid): gösterge panoları ve operasyonel analizler için dakika/saniye toplamlarını depolar.
Lakehouse Gold: raporlama ve uzlaşma (tekrarlanabilirlik) için günlük/saatlik dilimler tutar.
sql
CREATE MATERIALIZED VIEW mv_ggr_1m
ENGINE = AggregatingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), market, provider_id) AS
SELECT toStartOfMinute(event_time) AS ts_min,
market,
provider_id,
sumState(stake_base) AS s_stake,
sumState(payout_base) AS s_payout
FROM stream. game_events
GROUP BY ts_min, market, provider_id;
Altın - günlük dilim (Lakehouse):
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(event_time) AS event_date,
market, provider_id,
SUM(stake_base) AS stakes_eur,
SUM(payout_base) AS payouts_eur,
SUM(stake_base) - SUM(payout_base) AS ggr_eur
FROM silver. fact_game_financials
GROUP BY 1,2,3;
7) Gümüş: normalleşme ve uzlaşma
Zaman ve para birimi: 'event _ time (UTC)', 'amount _ base', 'fx _ rate _ used', 'fx _ source'.
Anahtarlar/dizinler: 'User _ pseudo _ id', 'game _ id', 'provider _ id', 'market'.
SCD II: boyut tarihselleştirme (kullanıcılar/oyunlar/sağlayıcılar/RG/KYC).
DQ kuralları: anahtar benzersizlik, dizinler, miktar aralıkları, zamansal geçerlilik.
8) Birimlerin kaydı ve "doğru" tanımlar
Anlamsal Katman: tek tip GGR/NGR formülleri, bahisler/kazançlar, dönüştürme, ARPPU, gecikme p95.
Sürüm metrikleri: 'metric _ version've'as-of "hesaplamaları.
Dockcards: sahibi, formül, kaynaklar, SLA hazırlık.
9) Tam olarak-bir kez/idempotency ve sipariş
Veri yolu: en az bir kez + bölümleme (yerel sipariş).
İşleme: 'event _ id' (TTL 24-72h), CEP/pencere operatörleri tarafından ayarlanmış dedup.
Lavabo: işlemsel taahhütler veya idempotent uppert/birleştirme.
Giden Kutusu/Gelen Kutusu: OLTP'den alan adı olaylarını garanti ile yayınlama.
10) Geç veri ve ayarlamalar
İzin verilen gecikme: Operasyonel ekranlar için 2-5 dakika; Gold için günlük yeniden birleştirme.
Düzeltmeler: OLAP'taki ek emisyonlar ve Gold'un yeniden örneklenmesi (idempotent).
Bayraklar: Denetim için 'late = true', 'correction _ of = <event _ id>'.
11) Gözlemlenebilirlik ve DQ
SLI/SLO (yer işaretleri):- P95 ingest - 1 dakikalık vitrin ≤ 2-5 s; Altın günlük saat 06:00 kilidine kadar hazır.
- Bütünlük ≥ 99. 5%; Şema geçerliliği ≥ 99. 9%; İz kapsamı ≥ %98.
- Boru hattı metrikleri: lag/throughput/busy time/state size, late-ratio, dup-rate.
- DQ-panoları: Tazelik/Bütünlük/Geçerlilik, kayıp hunisi, sıcak anahtar kartı.
- Soy: Bronzdan Altına/ihracata giden yol; değişiklikler üzerinde etki analizi.
12) Gizlilik, ikamet, güvenlik
PII minimizasyonu: takma ad, ayrı korumalı eşleme.
İkamet: EEA/İngiltere/BR - ayrı dizinler ve şifreleme anahtarları; Bölgeler arası birleşmeleri sebepsiz yasaklamak.
Şifreleme: TLS transit; KMS/CMK at-rest; Kısaltmada imzaları + WORM dışa aktarın.
DSAR/RTBF/Legal Hold: seçici düzenlemeler, silme dondurmaları, denetlenmiş erişimler.
13) Performans ve maliyet
Bölümleme: tarihe/pazara/kiracıya göre; Sık sık filtrelenen niteliklere göre kümeleme/Z sırası.
Sıkıştırma: küçük dosyaların ortadan kaldırılması, düzenli OPTIMIZE/VAKUM.
Materyalizasyon: dakika/saniye - OLAP'ta; Gün/saat - Altın.
Katmanlı depolama: sıcak/sıcak/soğuk, SLA kurtarma, komutla geri ödeme (maliyet/GB, maliyet/sorgu).
Ön toplama/eskizler: HyperLogLog/kabul edilebilir olduğunda yaklaşık olarak farklı.
14) Örnekler (parçalar)
CEP Flink - depozito yapılandırma (10 dk):python if count_deposits(window=10MIN) >= 3 \
and sum_deposits(window=10MIN) > THRESH \
and all(d. amount < REPORTING_LIMIT for d in window_events):
emit_alert("AML_STRUCTURING", user_id, snapshot())
SQL - Silver'a yüklendiğinde dedup:
sql
CREATE TABLE silver. payments AS
SELECT EXCEPT(rn) FROM (
SELECT p., ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY event_time) rn
FROM bronze. payment_events p
) WHERE rn = 1;
Iceberg/Delta - MERGE idempotent:
sql
MERGE INTO silver. fact_bets s
USING stage. fact_bets_delta d
ON s. bet_id = d. bet_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;
15) Süreçler ve RACI
R (Sorumlu):- Veri Platformu (Lakehouse/katalog/ACID, sıkıştırma),
- Akış (birimler/CEP/dedup),
- Domain Analytics (metrikler/Altın).
- A (Sorumlu): Veri/CDO Başkanı.
- C (Consulted): Uyumluluk/Yasal/DPO (PII/ikamet/Yasal Bekletme), Finans (FX/GGR), SRE (SLO/стоимость), Güvenlik.
- I (Bilgilendirilmiş): BI/Ürün/Pazarlama/Operasyonlar.
16) Uygulama Yol Haritası
MVP (3-5 hafta):1. Lakehouse Bronz/Gümüş (ACID tabloları), Kafka'dan alınan, kayıt şemaları.
2. OLAP'ta temel akış birimleri (1-5 dakika); Vitrin altın. ggr_daily (D + 1 saat 06:00'ya kadar).
3. Ödemeler/Oyun, Tazelik/Bütünlük panoları için DQ-as-code.
4. Sıkıştırma/OPTIMIZE, minimum maliyet metrikleri ve gecikme/geç/dup uyarıları.
Faz 2 (5-10 hafta):- Gümüş uzantı (kullanıcılar/oyunlar/sağlayıcılar için SCD II), soy ve etki analizi.
- Asenkron aramalar (RG/KYC/ASN/BIN), geç düzeltme kontrolü.
- Metriklerin anlamsal katmanı, dışa aktarma düzenlemeleri (WORM/imzalar).
- Çok bölgeli, DR/tekrar simülatörü, otomatik ayarlı pencereler ve filigranlar.
- Maliyet panoları, ters ibraz/kotalar, katmanlı depolama ve arşivleme.
- Vitrin dokümantasyon ve metrik kartlarının otomatik üretimi.
17) Satış öncesi kontrol listesi
- Sicildeki planlar ve sözleşmeler; Back-compat testleri yeşil.
- Dedup, filigran/izin verilen gecikme, DLQ dahil.
- /OPTIMIZE/VACUUM programa göre yapılandırılmıştır.
- SLO: p95 yutmak> dakika görünümü, Altın до 06:00; lag/late/dup/state boyutunu uyarır.
- DQ kuralları aktiftir; Soyu Bronzdan ihracata kadar görülebilir.
- RBAC/ABAC и KMS; İkamet ve DSAR/RTBF/Legal Hold test edilmiştir.
- Kontrol altındaki maliyet (maliyet/GB, maliyet/sorgu, soğuk paylaşım), tekrarlarda sınırlar.
18) Anti-kalıplar ve riskler
Ham ve raporlanmış verilerin aynı tabloda karıştırılması: tekrarlanabilirliği ihlal eder.
Sıkıştırma eksikliği: küçük dosyalar patlama - pahalı istekleri.
FX "geriye dönük olarak" hesaplanması: Geçmişi ve raporları keser.
Filigran yok/geç politikalar: vitrinler ve uyarılar "yüzer".
Gereksiz yere tam yeniden yükleme: kullanım/MERGE artışları ve ayarlamaları.
Analytics'te PII: Eşlemeleri ayrı tutun, CLS/RLS'yi etkinleştirin.
19) Sözlük (kısa)
Lakehouse - veri gölü + ACID tabloları ve SQL motoru.
Bronz/Gümüş/Altın - ham/normalleştirilmiş/servis katmanları.
Filigran - olay zamanına göre pencere hazırlık sınırı.
Materyalize Görünüm, hızlı okuma için önceden hesaplanmış bir vitrindir.
Zaman yolculuğu - tabloların tarihsel versiyonlarını okumak.
WORM - ihracat eserlerinin değiştirilemez depolanması.
20) Alt satır
Uygun akış toplama özelliğine sahip bir veri gölü, katmanlar ve sözleşmelerden oluşan bir disiplindir: Bronz "olduğu gibi", normalizasyon ve kalite için gümüş, dakika panelleri için OLAP, tekrarlanabilir raporlar için altın. Pencere ve filigran yönetimi, veri tekilleştirme ve sıkıştırma, gizlilik ve maliyet, ürün, uyumluluk ve operasyonel yönetim için hızlı, doğrulanabilir ve uyumlu vitrinler elde edersiniz.