GH GambleHub

Veri doğrulama

1) Neden iGaming platformunun buna ihtiyacı var?

Raporlara ve KPI'lara güven: GGR/NET, dönüşümler, elde tutma, RG sinyalleri.
ML/puanlama güvenilirliği: dolandırıcılıkla mücadele/öneriler/RG için doğru özellikler.
Gerçek zamanlı işlemler: Ödemeler/UX etkilenmeden önce sürüklenme/olay kaybı uyarıları.
Uyumluluk: Olmaması gereken yerlerde PII/sırlar yok; kanıtlanabilir izlenebilirlik.

2) Nerede doğrulanır: kontrol seviyeleri

1. Enjeksiyon (batch/stream): şema, tipler, gerekli alanlar, idempotency/dedup.
2. Akış işleme: pencereler/filigranlar, sipariş, eksiklikler/gecikmeler, tam olarak bir kez.
3. ETL/ELT ve dönüşümler: bağlantılar/sevinçler, toplamlar, iş dengeleri.
4. DWH/vitrinler (Altın): tablolar arasındaki tutarlılık, tazelik, anahtarların benzersizliği.
5. Özellik Mağazası/çevrimiçi: özellik aralıkları, offlayn↔onlayn tutarlılık.
6. BI/API: sayım ve filtreler, gecikme/tazelik üzerine SLA'lar, k-anonimlik.

3) Çek türleri (katalog)

Şematik: tip/nullable/enum/regex/JSON-shape; Durdurmak için uyumsuz değişiklikler

Etki Alanı: ≥0 tutarları, ∈ para birimi {EUR, USD, TRY, BRL}, ≤ limit oranı, strana∈litsenzii.
Kimlik/anahtarlar: Birincil anahtar benzersizdir, yabancı anahtar "asılı" değildir.
Alan kalitesi: dolgunluk, uzunluk, biçim (IBAN, BIN, e-posta belirteci).
İstatistik/taban çizgileri: frekanslar, dağılımlar, nicel koridorlar.
Anomaliler: hacim/kesir sivri uçları, sıfırlar/kopyalar, şema sürüklenmesi.
Tazelik: Maks (ts) X'den eski değil; lag ingest - altın ≤ T.
Tutarlılık: parçaların toplamı = özet; Çoklu masa mutabakatı.
Gizlilik/güvenlik: İzin verilen bölgeler dışında sıfır PII; tokenization/maskeler.
Düzenleyici: RG/AML alanları mevcut ve makul.

4) Veri sözleşmeleri

Sözleşme, kaynak ve tüketiciler arasındaki şema + kalite kuralları + SLO'yu düzeltir.

Minimum sözleşme (parça):
yaml dataset: payments_ingest_v2 owner: team-payments schema:
id: {type: string, pattern: "^[a-f0-9]{32}$", unique: true}
ts: {type: timestamp, timezone: "UTC", nullable: false}
amount: {type: decimal(18,2), min: 0. 00}
currency: {type: string, enum: ["EUR","USD","TRY","BRL"]}
psp: {type: string, required: true}
quality:
freshness_max: "PT5M"
completeness_min: 0. 995 duplicate_rate_max: 0. 001 pii_allowed: false slo:
p95_ingest_latency_ms: 30000 success_rate: 0. 995

Sözleşme değişiklikleri - semver ve geçişler yoluyla: 'MAJOR' kırılır, 'MINOR'bir alan ekler,' PATCH 'açıklamayı düzeltir.

5) Beklentiler ve politikalar

Beklentiler - boru hatlarında (batch/stream) gerçekleştirilen bildirimsel kontroller.

Beklentiler (YAML):
yaml expectations:
- name: unique_primary_key check: "unique(id)"
severity: "error"
- name: amount_non_negative check: "amount >= 0"
severity: "error"
- name: currency_enum check: "currency in ['EUR','USD','TRY','BRL']"
severity: "error"
- name: ts_fresh_enough check: "now() - max(ts) <= interval '5 minutes'"
severity: "warn"
- name: pii_absent check: "no_plain_pii(columns: ['email','card','iban'])"
severity: "error"
Yanıt politikası:
  • 'hata' - parti/parti karantinası, uyarı + bilet; Aşağı akış bloğu.
  • 'varn' - geçer, ancak ayrıştırma görevi oluşturur; kaliteli işaretleme.
  • 'info' - sadece izleme.

6) Akış: Kontrollerin özellikleri

Filigranlar/geç veriler: '120s ≤' geç olalım, aksi takdirde - karantina; sonlu pencerelerle dengeleyin.
Idempotency: event key + hash payload - broker/thread üzerinde kilitlenme.
Tam olarak bir kez: kritik akışlar (ödemeler/turlar) için işlemsel şarkı (+ idempotent lavabolar).
Hacim sayaçları: pencere başına "beklenen" vs "alınan"; Tutarsızlık uyarısı.

Flink kural deseni (sözde):
scala val deduped = stream
.keyBy(_.id)
.process(new DeduplicateWithin(Time. minutes(10)))

val validated = deduped
.filter(_.amount >= 0)
.filter(_.currency in Set("EUR","USD","TRY","BRL"))

emitToQuarantineIfLate(validated, allowedLateness = 120. seconds)

7) DWH/SQL: değişmezler ve uzlaştırmalar

SQL denetimleri (örnek):
sql
-- uniqueness
SELECT id, COUNT() c FROM gold. payments GROUP BY 1 HAVING c>1;

-- freshness
SELECT NOW() - MAX(ts) AS lag FROM gold. payments;

-- reconciliation of totals
SELECT
SUM(amount) AS by_rows,
(SELECT total_amount FROM gold. payments_summary WHERE date=CURRENT_DATE) AS by_summary
FROM gold. payments
WHERE date = CURRENT_DATE;

Pencere eşleştirme: günlük 'detay - özet' mutabakatlar, tutarsızlık raporları, otomatik bilet.

8) Gizlilik ve güvenlik

Varsayılan PII sürümü: giriş maskeleri/belirteçleri; Günlüklerde "ham'e-posta/kart/telefonları yasaklıyoruz.
İzin politikası: PII içeren tablolar - ayrı katman/dizin, rollere göre erişim (RBAC/ABAC).
Raporların K-anonimliği: dilimdeki en az N satır.
Sızıntı dedektörleri: PII desenleri için düzenli kontroller, "sırlar" (anahtarlar/belirteçler).
Yargı bölgeleri: Jeo/kiracı izolasyonu (ülke/marka/lisans), ayrı anahtarlar.

9) Kalite ve SLO metrikleri

Kalite ölçümleri (D):
  • Tazelik - lag max (ts).
  • Tamlık - boş olmayan/beklenen kayıtların oranı.
  • Benzersizlik - yinelenen anahtarlar.
  • Tutarlılık - değişmezler ve dengeler (tablolar arası).
  • Doğruluk - harici alan kaynağı/kuralları ile doğrulama.
  • Geçerlilik - eşleştirme/enum/regex türleri.
SLO örnekleri:
  • 'Tazelik payments_gold ≤ 5 мин' (p95).
  • 'Bütünlük game_rounds ≥ 99. %7/gün '.
  • 'Duplicate _ rate ≤ 0. 1‰`.
  • 'PII _ leak = 0'.

10) Uyarılar, biletler ve runbook

Yönlendirme: Slack/PagerDuty - etki alanı sahibi; Örnekleri ve diff'i otomatik olarak uygulayın.
Gruplama: set başına bir olay "etiketler: veri kümesi = ödemeler, marka = TR".

Runbook (örnek "Tazelik ihlali: payments_gold"):

1. Ingest günlüğü ve broker kuyruğunu kontrol edin.

2. PSP tarafından "beklenen ve alınan'ı karşılaştırın.

3. Retrai/Switch PSP Rotasını Etkinleştir.

4. Açıklama nedeni; Sırtların yeniden başlatılması; ölüm sonrası.

11) Sürüm, testler ve feragat süreci

Kalite kurallarının semver: 'quality @ MAJOR. MINÖR. PATCH '.
Dönüşümlerin birim testleri (SQL/DBT/python) ve kaynaklar için sözleşme testleri.
ALTIN setler: regresyonda bilinen tutarsızlıklar/sızıntılar zorunludur.
Feragat: Kuralı ihlal etmek için kısa süreli izin (açıklama, mal sahibi, terim, telafi edici önlemler).

12) Kataloglar/eserler (hazır şablonlar)

12. 1 Datacet pasaportu

yaml dataset: gold. game_rounds owner: team-games steward: data-governance contracts: ["games_rounds_v3"]
quality_slo:
freshness_p95: "PT10M"
completeness_min: 0. 997 uniqueness_max_dup: 0. 0005 alerts:
channels: ["#dq-incidents","#games-ops"]
severity_map: {error: "P1", warn: "P2"}

12. 2 Karantina politikası

yaml quarantine:
storage: "s3://quarantine/payments/"
retention: "P30D"
access: ["team-payments","data-governance"]
auto_reprocess:
cron: "/15  "
max_attempts: 3

12. 3 Beklenti для Özellik Mağazası

yaml featureset: fs_payments_online_v1 checks:
- name: feature_freshness check: "now() - max(feature_ts) <= interval '60 seconds'"
severity: "error"
- name: range_amount_avg check: "amount_avg in [0, 2000]"
severity: "warn"
- name: enum_device check: "device in ['ios','android','web']"
severity: "error"

13) iGaming'in özellikleri: hazır kılıflar

Ödemeler/PSP: PSP raporlarına para yatırma/çekme işlemlerinin mutabakatı; Eksik durumlar - butch karantina; Büyüme için uyarı 'decline _ rate'.
Oyun sağlayıcıları: 'rounds _ per _ min' vs baseline + schema drift from the provider - transformation block of provider A, status banner.
RG/AML: zorunlu alanlar (sınırlar, kendini dışlama, KYC durumları); Gecikmiş KYC - ödeme bloğundaki bayrak, uygun bilet.
Pazarlama/CRM: kampanya parametrelerinin geçerliliği, UTM, olay tekdüzeliği; Vitrinlerde k-anonimlik.

14) Uygulama Yol Haritası

0-30 gün (MVP)

1. Anahtar kümeleri için sözleşmeler ekleyin: ödemeler, game_rounds, kullanıcılar, özellikler.
2. Beklentiler kataloğu (10-15 temel) + karantina + uyarılar.
3. Pano Tazeliği/Bütünlüğü/Benzersizliği; Olay raporu.
4. Runbook'и для 'Tazelik', 'Kopyalar', 'Şema sürüklenmesi'.

30-90 gün

1. Intertable mutabakatlar ve dengeler; feragat süreci ve semver kuralları.
2. Akış doğrulama (geç veri, deadlock, filigran); PII dedektörleri.
3. CI/CD ile entegrasyon: Kaynakların ve dönüşümlerin sözleşme testleri.
4. Etki alanı komutundaki kaliteli SLO'lar OKR'ler.

3-6 ay

1. AIOps eşik ipuçları; Nedenlerin otomatik lokalizasyonu.
2. Çapraz marka/coğrafi kalite politikası ve uygunluk raporları.
3. Post-mortems P1 olayları - altın setlerin ve kuralların yenilenmesi.
4. Akış uyarısı ve anomali analizi (tek döngü) ile bağlantı.

15) RACI

Veri Yönetişimi (A/R): standartlar, sözleşmeler, kural denetimi.
Domain Owners (R): Domain beklentileri ve değişmezleri.
Veri Platformu (R): beklentiler çerçevesi, karantina, uyarılar, izleme.
Güvenlik/DPO (A/R): gizlilik/PII/k-anonimlik, coğrafi/kiracı izolasyonu.
SRE/Gözlenebilirlik (C): olay yönlendirme, SLO/SLI.
Ürün/Finans (C): iş dengeleri, olay öncelikleri.

16) Anti-desenler

Doğrulama "sadece DWH'de" - geç, pahalı, acı verici.
Karantina yok - "kir" Gold/ML'ye gider ve güveni kırar.
Mevsimsellik/saat/pazar olmadan sert eşikler - uyarı fırtınası.
Sahip ve semver kurallarının eksikliği - istisnaların kaosu.
PII ve "ortak kanala ekran görüntüleri'ile günlükler.
Kalıcı bir devre yerine bir kerelik "sıhhi günler".

17) İlgili bölümler

DataOps Uygulamaları, Veri Denetimi ve Sürüm Oluşturma, Veri Kaynağı ve Yolu, Veri Akışı Uyarıları, Anomali ve Korelasyon Analizi, Erişim Kontrolü, Veri Güvenliği ve Şifreleme, Veri Saklama Politikaları, MLOps: Model Kullanımı.

Toplam

Doğrulama sonunda bir filtre değil, uçtan uca bir kalite sözleşmesidir: enjeksiyondan ve akıştan vitrinlere ve çevrimiçi özelliğe kadar. Açık beklentiler, karantinalar, uyarılar ve SLO'lar verileri güvenilir bir varlığa dönüştürür: raporlar doğrudur, modeller istikrarlıdır, ödemeler güvenlidir, uyumluluk sakindir.

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.