GH GambleHub

Toplu işleme

1) Amaç ve değer

Toplu konveyörler, aşağıdakiler için güvenilir günlük/saatlik vitrinler oluşturur:
  • Düzenleyici ve finansal raporlama (GGR/NGR, vergiler, RG/AML kayıtları).
  • BI ve ürün analizi (kohortlar, LTV, dönüşüm hunileri).
  • Doğruluk doğrulama (OLTP↔DWH, sağlayıcılar/PSP), tarihlendirme (SCD).
  • ML için özelliklerin ve eğitim setlerinin hazırlanması.

Temel özellikler: öngörülebilirlik, eksiksizlik, tekrarlanabilirlik, veri birimi başına düşük maliyet.

2) Mimari (referans)

1. Ingest (ham yakalama): HTTP/gRPC, OLTP'den CDC, sağlayıcı yüklemeleri - Bronz.
2. Lakehouse: Bronz (ham, sadece ekle) - Gümüş (temiz/uygun) - Altın (servis).
3. Orkestrasyon: Hava akışı/Dagster/Prefect (DAG've, bağımlılıklar, retrays, SLA).
4. İşleme: Spark/Trino/DBT/SQL motorları; Bölümleme ve ACID formatları (Delta/Iceberg/Hudi).
5. DQ ve Sözleşmeler: Şema Kaydı, DQ kuralları (YAML/SQL), tüketici testleri.
6. Servis: BI/semantik katman, raporlanabilir dışa aktarma (CSV/PDF/JSON + karma), API/GraphQL.
7. Gözlemlenebilirlik: boru hattı metrikleri, soy, günlükler, maliyet (maliyet/GB, maliyet/sorgu).

3) Frekanslar ve SLA'lar

Günlük (D + 1 - 06:00 kilit.) : GGR raporları, düzenleyici yüklemeler, mutabakatlar.
Saatlik/yarı zamanlı: Ops/Finans için operasyonel paneller.
Haftalık/aylık: finconsolidation, modeller ve yeniden işlemler.

Önerilen SLO'lar:
  • Altın günlük vitrinler yerel saatle 06:00'a kadar hazır.
  • Tazelik Gümüş p95 ≤ 15 dakika mikrobatlar için/ ≤ 2 saat gündüz için.
  • Bütünlük ≥ 99. 5 %, Geçerlilik (şema) ≥ 99. 9%.

4) Artımlı İndirmeler ve CDC

Yaklaşımlar:
  • CDC (Change Data Capture): Debezium/log replikasyonu - Bronz - Gümüş cinsinden artışlar.
  • Filigran zamana göre: 'updated _ at> max_loaded_ts'.
  • Özet karşılaştırması: Değişiklik tespiti için 'md5 (satır)'.
  • Uppert/Merge: Idempotent Silver/Gold güncellemeleri.
Örnek MERGE (Delta/Iceberg):
sql
MERGE INTO silver. payments AS s
USING staging. payments_delta AS d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

5) SCD (ölçüm tarihlendirmesi)

SCD I: üzerine yazma (yazım, küçük düzeltmeler).
SCD II: tam geçmiş ('valid _ from/valid _ to/is _ current').
SCD III: Kısa karşılaştırmalar için'önce/sonra ".

SCD II (örnek):
sql
MERGE INTO dim. users_scd t
USING stage. users u
ON t. user_pseudo_id = u. user_pseudo_id AND t. is_current = TRUE
WHEN MATCHED AND (t. country <> u. country OR t. rg_status <> u. rg_status)
THEN UPDATE SET t. is_current = FALSE, t. valid_to = CURRENT_TIMESTAMP
WHEN NOT MATCHED
THEN INSERT (user_pseudo_id, country, rg_status, valid_from, valid_to, is_current)
VALUES (u. user_pseudo_id, u. country, u. rg_status, CURRENT_TIMESTAMP, NULL, TRUE);

6) Dolgu и Yeniden işleme

Dolgu: İlk Dolgu/Tarihsel Dolgu.
Yeniden işleme: Mantığı düzenledikten/verileri düzelttikten sonra vitrinleri yeniden hesaplama.

İlkeler:
  • Idempotency (MERGE/upsert), Bronz değişmezlik, mantık sürümü.
  • Tekrarlanan işler için zaman yolculuğu meta veri anlık görüntüleri.
  • Korkuluklar: Sınırlayıcı aralıklar, kotalar ve rekabetçi işler.
  • Dokümantasyon: adımlar ve tamamlama kriterleri ile runbook.

7) Katman modelleme

Bronz:
  • Yalnızca ekle, 'event _ date', 'jurisdiction', 'tenant' bölümleri.
  • Orijinal yükü (adli tıp için) saklıyoruz, 'yutulmuş _ at' düzeltiyoruz.
Gümüş:
  • Normalleştirme ve standardizasyon: FK/dizinler, dedup, FX/saat dilimleri.
  • Gerçek/boyut tabloları (3NF/BCNF), anahtar boyutlar için SCD.
Altın:
  • BI/düzenleyici/finans, SLA hazırlığı için denormalize vitrinler.
  • Agregaların materyalizasyonu; Değişmez dışa aktarma artifaktları (hash + WORM).

8) Veri kalitesi (DQ-as-code)

Gümüş için YAML kurallarına bir örnek:
yaml table: silver. payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive type: range column: amount_base min: 0. 01 severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
severity: major
- name: unique_tx type: unique columns: [transaction_id]
severity: critical
- name: fk_user type: foreign_key column: user_pseudo_id ref_table: dim. users_scd severity: critical

Reaksiyon politikaları: Kritik - başarısız iş + DLQ; majör/minör - etiket + rapor.

9) Semantik katman ve raporlama

Anlamsal katman/metrik deposunda metriklerin birleşik tanımları (GGR/NGR, ARPPU, Retention).

Sürüm metrikleri; BI/export paketleriyle entegrasyon

Raporlar: CSV/JSON/PDF + sha256, indirme günlüğü ve gerekirse Yasal Bekletme.

10) Gizlilik, ikamet, güvenlik

PII minimizasyonu: Kullanıcıların takma adı; haritalama - ayrı bir korumalı döngüde.
Veri ikametgahı: EEA/UK/BR için ayrı dizinler/anahtarlar; Yasal dayanaklar olmaksızın bölgeler arası birleşmelerin yasaklanması.
Şifreleme: TLS transit; KMS/CMK at-rest; dışa aktarma kontrolleri.
DSAR/RTBF: hesaplanabilir projeksiyonlar, seçici düzenlemeler; erişim denetimi.
Yasal Tutma: Düzenleyici eserler için WORM arşivleri.

11) Performans ve maliyet

Tarihe/pazara/kiracıya göre bölümleme; Sık yüklemlerle Z-düzeni/küme.
Formatlar: Parke + ACID tabloları; Sıkıştırma/istatistik, OPTIMIZE/VAKUM.
Materyalizasyon: Altın'da istikrarlı toplanmalar; "monolitik" işlerden kaçının.
Kotalar/bütçeler: takıma göre ücret iadesi; Dolgu sınırları/ağır istekleri.
Zamanlama: Düşük yük pencereleri (gece/hafta sonu), sıra öncelikleri.

12) Gözlemlenebilirlik ve yönetim

Boru hattı metrikleri: süre, başarı oranı, yeniden denemeler, işlenen satırlar, maliyet/sorgu.
DQ metrikleri: bütünlük, geçerlilik, benzersizlik, FK hataları, sürüklenme.
Tazelik ısı haritası: etki alanına ve pazara göre; SLA panoları.
Soy: Raporlara bronz kökenler; değişikliklerden önce etki analizi.
Uyarılar: SLO bütçeleri, DQ bozulması, gecikmeler, maliyet artışı.

13) SQL/Model Örnekleri

Para birimi normalleştirme (Gümüş):
sql
CREATE OR REPLACE TABLE silver. payments AS
SELECT p. transaction_id,
p. user_pseudo_id,
p. currency,
p. amount_orig,
r. rate AS fx_rate_used,
p. amount_orig r. rate AS amount_base,
p. market,
CAST(p. event_time AS TIMESTAMP) AS event_time
FROM bronze. payment_events p
JOIN dim. fx_rates r
ON r. date = DATE(p. event_time)
AND r. ccy_from = p. currency AND r. ccy_to = 'EUR';
GGR Günlük Vitrin (Altın):
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) AS event_date,
b. market,
g. provider_id,
SUM(b. stake_base) AS stakes_eur,
SUM(p. amount_base) AS payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) AS ggr_eur
FROM silver. fact_bets b
LEFT JOIN silver. fact_payouts p
ON p. user_pseudo_id = b. user_pseudo_id
AND p. game_id = b. game_id
AND DATE(p. event_time) = DATE(b. event_time)
JOIN dim. games g ON g. game_id = b. game_id
GROUP BY 1,2,3;
Bütünlük kontrolü (DQ SQL):
sql
SELECT market, event_date, COUNT() AS n
FROM silver. fact_bets
GROUP BY market, DATE(event_time) AS event_date
HAVING n = 0;

14) Süreçler ve RACI

R (Sorumlu): Veri Mühendisliği (DAG ', Gümüş/Altın modeller), Veri Platformu (infra, devre kaydı, DQ).
A (Sorumlu): Veri Başkanı/Baş Veri Sorumlusu.
C (Consulted): Uyumluluk/Yasal/DPO (PII/tutma), Finans (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).
I (Bilgilendirilmiş): BI/Ürün/Pazarlama/Operasyonlar.

15) Uygulama Yol Haritası

MVP (4-6 hafta):

1. Lakehouse Bronz/Gümüş (ACID formatı), 2-3 alan için CDC/artışları.

2. DQ-like-code: Ödemeler/Oynanış + CI doğrulama için 10-15 kural.

3. 06:00'a kadar SLA ile İlk Altın Vitrin (GGR Daily); export + hash değerini bildirdi.

4. Tazelik/Eksiksizlik/Maliyet panoları, temel uyarılar.

Faz 2 (6-12 hafta):
  • SCD II для kullanıcıları/oyunları/sağlayıcıları; Alan genişlemesi.
  • Metriklerin semantik katmanı; OLTP/sağlayıcıları ile kontrol eder (doğruluk).
  • Geri doldurma/yeniden işleme prosedürleri, soy ve etki analizi, bölgeselleştirme (EEA/İngiltere).
Faz 3 (12 + hafta):
  • Değişikliklerin otomatik simülasyonu (dry-run), bütçeler/kotalar, ters ibraz.
  • Otomatik dokümantasyon (veri ürün sayfaları), DR egzersizleri ve zaman yolculuğu kurtarma.
  • Maliyet optimizasyonu (kümeleme, materyalizasyon, TTL, vakum).

16) Satış öncesi kontrol listesi

  • Kayıt Defterindeki sözleşmeler ve şemalar, uyumluluk testleri yeşildir.
  • Artımlı indirmeler/CDC çalışıyor, MERGE idempotent.
  • DQ kuralları aktiftir; kritik + başarısız + DLQ; İhlalleri rapor et.
  • SLA/tazelik/dolgunluk panoları; Uyarılar oluşturulur.
  • PII/DSAR/RTBF/Legal/DPO tarafından onaylanan Yasal Tutma politikaları.
  • Runbook've dolgu/yeniden işleme/DR test edildi.
  • Maliyet kontrol altında (maliyet/sorgu, maliyet/GB, kotalar).

17) Anti-desenler ve nasıl önleneceği

Monolitik gece jabları: partiler tarafından paralel olarak bağımsız adımlara ayrılır.
Gereksiz yere tam yeniden yükleme: artışları/CDC/birleştirme kullanın.
Analitikte PII harmanlama: eşlemeleri ayrı tutun, CLS/RLS uygulayın.
DQ/soy yok: DQ-as-code ve trace origin girin.
"Manuel" arka dolgular: otomatikleştirme ve belgeleme, sınır aralıkları.
Yönetilemeyen maliyet: kümeleme, materyalizasyon, tutma politikaları.

18) Sözlük (kısa)

CDC - OLTP'den değişiklikleri yakalayın.
SCD - yavaşça değişen ölçümler (I/II/III).
Lakehouse - veri gölü + ACID tabloları.
MERGE/Uppert - idempotent güncelleme işlemleri.
Zaman yolculuğu - tabloların tarihsel versiyonlarını okumak.
WORM - eserlerin değiştirilemez depolanması.

19) Alt satır

Toplu işleme, öngörülebilir, tekrarlanabilir ve tamamlayıcı boru hatlarından oluşan bir disiplindir. Şema-first, increments/CDC, SCD historization, DQ-as-code, observability ve conscious economics prensiplerini takip ederek, ışıltılarla doğrulanmış ve her an denetime hazır olan stabil Gold vitrinler ve raporlar alacaksınız.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.