GH GambleHub

ETL/ELT süreçleri

1) Amaç ve bağlam

ETL/ELT boru hatları, raporlama (GGR/NGR, düzenleyiciler), analitik/ML ve operasyonel paneller için öngörülebilir yükleme, dönüşüm ve verilerin yayınlanmasını sağlar.

ETL: DWH/Lakehouse'a yüklemeden önce dönüştürün (modern yığınlarda daha az sıklıkla).
ELT: önce Lakehouse'a (Bronz/Gümüş) yükleyin, sonra SQL/motorları dönüştürün (önerilir).

2) Referans mimarisi

1. Ingest/Edge: HTTP/gRPC/Batch, OLTP'den CDC, sağlayıcı yükleme S3/FTP.
2. Bronz (ham, yalnızca ekle): değişmez yükler, tarihe/pazara/kiracıya göre taraflar.
3. Gümüş (temiz/uygun): normalleştirme, dedup, dizinler, SCD, FX/saat dilimleri.
4. Altın (servis): BI/regülatör/modeller için denormalize vitrinler.
5. Orkestrasyon: Hava akışı/Dagster/Prefect (DAG'i, SLA, Retrai, Vardiya).
6. DQ/Sözleşmeler: Schema Registry + DQ- как - код, tüketici odaklı testler.
7. Gözlemlenebilirlik: boru hattı metrikleri, soy, günlükler, maliyet panoları.

3) ETL vs ELT seçimi

KriterETLELT (önerilir)
Tahsislerin esnekliğiDüşükYüksek (zaman yolculuğu, yeniden işleme)
Maliyetbüyürken daha pahalıEn uygun ölçekleme
Kalite kontrolingest üzerindeGümüş/Altın + DQ-as-code için
Tarihsellik/adli tıpSınırlıTam (Bronz sadece ek)

Uygulama: iGaming'de - ELT + CDC: hızlı yükle, sonra standartlaştır ve say.

4) Artışlar ve CDC

Delta yaklaşımları:
  • CDC (Debezium/log replication): OLTP değişiklikleri - Bronz - Gümüş olarak MERGE.
  • Filigran zamana göre: 'updated _ at> max_loaded_ts'.
  • Hash diff: Değişiklik tespiti için 'md5 (satır)' karşılaştırması.
  • Uppert/MERGE: Yüklemelerin idempotensi.
Örnek MERGE (Delta/Iceberg):
sql
MERGE INTO silver. payments s
USING stage. payments_delta d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

5) Sözleşmeler ve planlar

Şema-ilk: Kayıt Defterinde JSON/Avro/Protobuf; Olaylarda/dosyalarda 'schema _ version'.
Evrim: Geri uyumlu (geçersiz eklemeler); Breaking -'/v2 '+ çift giriş.
Gerekli alanlar 'event _ time (UTC)', 'event _ id', 'trace _ id', 'user _ pseudo _ id', 'market'tir.

6) DQ-as-code (minimum set)

yaml table: silver. payments owner: data-payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: unique_tx # uniqueness of transactions type: unique columns: [transaction_id]
severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
severity: major
- name: amount_positive type: range column: amount_base min: 0. 01 severity: critical
- name: fk_user type: foreign_key column: user_pseudo_id ref_table: dim. users_scd severity: critical

7) Orkestrasyon: DAG've, bağımlılıklar, SLA

DAG tasarımı: kaynaklardan vitrinlere; Görevler arasındaki açık bağımlılıklar.
Retrai ve idempotence: backoff, "temiz" tekrarlar, kontrol noktaları.
Catchup: kaçırılan dönemlerin düzgün bir şekilde yakalanması.
SLA: Örneğin altın. Günlük yerel saatle 06:00'dan önce hazır; İhlaller konusunda uyarır.
Parametrelendirme: piyasalar/kiracılar/varlar aracılığıyla tarihler; Tek bir iş şablonu.

8) Idempotence ve tam olarak-bir kez

In ingest: duplicates are possible ^ dedup by '(event_id, source)'.
İşlemede: uppert/birleştirme; "saf" dönüşüm fonksiyonları.
Lavaboda: işlemsel taahhütler veya idempotent yazıyor; "Çifte sayım" kontrolü.
Giden Kutusu/Gelen Kutusu: OLTP'den etki alanı olaylarının işlemsel olarak yayınlanması.

9) Dolgu и yeniden işleme

Dolgu: birincil dolgu/tarihsel aralıklar.
Yeniden işleme - mantık değiştiğinde/düzeltildiğinde yeniden hesaplama.
Korkuluklar: aralık sınırları, kotalar, zaman pencereleri, metrik karşılaştırma ile kuru çalışma.
İşaretleme: 'logic _ version', 'repocessed _ at', 'recalc _ reason'.

10) Gümüş/Altın Modelleme

Gümüş (3NF/BCNF): gerçekler 'fact _ bets/payments/payments', boyutlar'dim _ users/games/providers/markets (SCD II) ', para birimi standardizasyonu/saat dilimleri.
Altın: BI/regülatör/modeller için denormalize vitrinler; Değişmez dışa aktarma paketleri (WORM) + imzası.

Altın örnek: GGR Daily

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;

11) Gizlilik ve ikamet

PII minimizasyonu: tokenization; İzole döngüdeki gerçek kimliklerin haritaları.
RLS/CLS: role/yargı yetkisine göre erişim politikaları, maskeleme.
İkamet: EEA/UK/BR için ayrı dizinler/anahtarlar; Bölgeler arası birleşmeleri sebepsiz yasaklamak.
DSAR/RTBF & Legal Hold: seçici düzenlemeler, raporlama için WORM arşivleri, ihracat denetimleri.

12) Gözlemlenebilirlik ve SLO

SLI/SLO kriterleri:
  • Tazelik Gümüş p95 ≤ 15 dk; Altın günlük saat 06:00 kilidine kadar hazır. Zaman.
  • Bütünlük ≥ 99. 5 %, Geçerlilik (şema) ≥ 99. 9%.
  • İşlerin başarısı ≥ 99. %0, MTTR olayları ≤ 24-48 saat.

Panolar: Tazelik ısı haritası, DQ kaybı hunisi, maliyet/sorgu ve maliyet/GB, soy grafiği.

13) Performans ve maliyet

Bölümleme: tarih/pazar/kiracı; Filtrelere göre kümeleme/Z-sırası.
Biçimler: Parke + ACID (Delta/Iceberg/Hudi), sıkıştırma ve istatistik.
Sıkıştırma: küçük dosyalarla mücadele (OPTIMIZE/VAKUM).
Materyalizasyon: kararlı agregalar; Dev on-the-fly birleştirmeleri kaçının.
Ters ibraz: bütçeler, tekrar oynatma kotaları/geri doldurma; Düşük yük pencerelerinde zamanlama.

14) Tipik DAG görevlerine örnekler (Airflow pseudocode)

python with DAG("elt_payments_daily", schedule="@daily", start_date=..., catchup=True) as dag:
extract = BashOperator(task_id="extract_cdc", bash_command="run_cdc_to_bronze. sh {{ ds }}")
load  = BashOperator(task_id="load_to_silver", bash_command="sql/run_merge_silver. sql {{ ds }}")
dq   = BashOperator(task_id="dq_checks", bash_command="dq/run_checks. sh silver. payments {{ ds }}")
gold  = BashOperator(task_id="build_gold_ggr", bash_command="sql/build_gold_ggr. sql {{ ds }}")
export = BashOperator(task_id="export_regulator", bash_command="export/run_worm_pack. sh {{ ds }}")

extract >> load >> dq >> gold >> export

15) Süreçler ve RACI

R (Responsible): Veri Mühendisliği (DAG, Silver/Gold modelleri), Veri Platformu (infra, Registry, DQ).
A (Sorumlu): Veri/CDO Başkanı.
C (Consulted): Uyumluluk/Yasal/DPO (PII/ikamet/Yasal Bekletme), Finans (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).
I (Bilgilendirilmiş): BI/Ürün/Pazarlama/Operasyonlar.

16) Uygulama Yol Haritası

MVP (3-5 hafta):

1. Lakehouse Bronz/Gümüş (ACID) + Ödemeler/Oyun için CDC/artışlar.

2. DQ benzeri kod (10-15 kural) ve temel Tazelik/Tamlık panoları.

3. SLA ile İlk Altın Vitrin (GGR Daily) "06:00'a kadar", WORM imzalı ihracat.

4. SLA/DQ üzerinde DAG ve uyarı orkestrasyonu.

Faz 2 (5-10 hafta):
  • Alan adı uzantısı, kullanıcılar/oyunlar/sağlayıcılar için SCD II.
  • Metriklerin semantik katmanı; soy/etki analizi; Dolgu/yeniden işleme prosedürleri.
  • Bölgeselleştirme (AÇA/İngiltere), RLS/CLS, maliyet kontrolü (kotalar/ters ibraz).
Faz 3 (10-16 hafta):
  • Yeniden oynatma simülatörü (what-if), vitrin/metrik belgelerinin otomatik olarak oluşturulması.
  • Maliyet optimizasyonu (kümeleme, materyalizasyon, TTL, sıkıştırma).
  • DR egzersizleri ve zaman yolculuğu kurtarma.

17) Satış öncesi kontrol listesi

  • Kayıt Defterindeki sözleşmeler/şemalar, uyumluluk testleri yeşil.
  • CDC/artışlar ve MERGE idempotent; Dedup yutmak için.
  • DQ kuralları aktiftir (kritik + başarısız + DLQ), SLA panoları yapılandırılmıştır.
  • Altın vitrinler, semantik katmandaki metrik formüller belgelenmiştir.
  • RBAC/ABAC, şifreleme, ikamet, DSAR/RTBF/Yasal Tutma doğrulandı.
  • Bir programda sıkıştırma/OPTIMIZE/VAKUM; Geri doldurma/tekrar oynatma sınırları.
  • Runbook've olaylar ve yeniden işleme, denetim ihracatı (WORM + hash).

18) Anti-kalıplar ve riskler

"Her ihtimale karşı" tam yeniden yükleme: CDC/artışları kullanın.
Ham ve raporlanan verileri karıştırma: Bronz/Gümüş/Altın ayrı tutun.
DQ ve soy eksikliği: kanıtlanabilirlik ve tekrarlanabilirlik yok.
Analitik katmanlarda PII: haritalamaları izole edin, CLS/RLS uygulayın.
Monolitik "gece" jabs: ezmek, gruplar halinde paralel.
Maliyeti göz ardı edin: küçük dosyalara göz kulak olun, toplamları gerçekleştirin, kotaları tanıtın.

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

ETL/ELT - ekstraksiyon/dönüşüm/yükleme (yüklemeden önce/sonra).
CDC - Yakalama değişikliği.
SCD - ölçüm tarihlendirmesi (I/II/III).
WORM - rapor paketlerinin değiştirilemez depolanması.
Zaman yolculuğu - tabloların tarihsel versiyonlarını okumak.

20) Alt satır

Modern ETL/ELT komut dosyaları değil, yönetilen bir platformdur: sözleşmeler ve DQ, idempotent artışlar/CDC, Bronz/Gümüş/Altın katman disiplini, gözlemlenebilirlik ve SLO, gizlilik ve ekonomi. Bu kılavuzu izleyerek, raporlamayı, ürünü ve modelleri sürekli olarak ölçeklendiren ve sürprizler olmadan tekrarlanabilir ve denetlenebilir boru hatları elde edersiniz.

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!

Telegram
@Gamble_GC
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.