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.
- 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.
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 ".
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.
- 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.
- Normalleştirme ve standardizasyon: FK/dizinler, dedup, FX/saat dilimleri.
- Gerçek/boyut tabloları (3NF/BCNF), anahtar boyutlar için SCD.
- 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).
- 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.