Akış ve akış analitiği
1) Amaç ve değer
Akış devresi anında karar vermeyi sağlar:- Antifraud/AML: Mevduat yapısının tanımlanması, hız saldırıları, sağlayıcıların anomalileri.
- Sorumlu Oyun (RG): Sınırları aşmak, risk kalıpları, kendini dışlama.
- İşlemler/SRE: SLA bozulması, hata patlamaları, erken olay sinyalleri.
- Ürün/pazarlama: kişiselleştirme etkinlikleri, görevler/görevler, gerçek zamanlı segmentasyon.
- Neredeyse gerçek zamanlı raporlama: GGR/NGR vitrinler, işletim panelleri.
Hedef özellikleri: p95 uçtan uca 0. 5-5 s, tamlık ≥ 99. %5, yönetilen değer.
2) Referans mimarisi
1. Ingest/Edge
'/events/batch '(HTTP/2/3), gRPC, OTel Collector.
Şemaların doğrulanması, kopyaların önlenmesi, coğrafi yönlendirme.
2. Olay otobüsü
Kafka/Redpanda ('user _ id/tenant/market'tarafından bölümlenmiştir).
Tutma 3-7 gün, sıkıştırma," kırık "mesajlar için DLQ/" karantina".
3. Akış
Flink/Kıvılcım Yapılandırılmış Akış/Işın.
Durum bilgisi ifadeleri, CEP, filigran, izin verilen gecikme, veri tekilleştirme.
Zenginleştirme (Redis/Scylla/ClickHouse-Lookup), zaman aşımları ile asenkron I/O.
4. Servis/Operasyonel Ekranlar
Dakika/saniye toplama ve gösterge tabloları için ClickHouse/Pinot/Druid.
Modellerin puanlanması için Feature Store (çevrimiçi).
Uyarı konuları - SOAR/biletleme/webhooks.
5. Uzun süreli depolama (Lakehouse)
Bronz (ham), Gümüş (temiz), Altın (servis) - Parke + Delta/Iceberg/Hudi.
Tekrar oynatma/geri test etme, zaman yolculuğu.
6. Gözlemlenebilirlik
Boru hattı ölçümleri, izleme (OTel), günlükler, soy.
3) Planlar ve sözleşmeler
Schema-first: JSON/Avro/Protobuf + Registry, her olayda 'schema _ version'.
Evrim: geri uyumlu - yeni nullable alanlar; Breaking -'/v2 '+ çift yayın.
Gerekli alanlar 'event _ time' (UTC), 'event _ id', 'trace _ id', 'user'dır. pseudo_id', 'pazar', 'kaynak'.
4) Windows, filigranlar ve geç veriler
Windows:- Yuvarlanma, zıplama, seans.
- Filigran: olay zamanı "bilgi" eşiği; Örneğin 2-5 dakika.
- Geç veri: ön sorun ayarlamaları, "geç = doğru", güçlü bir gecikme ile DLQ.
sql
SELECT user_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS sum_10m
FROM stream.payments
GROUP BY user_id, TUMBLE(event_time, INTERVAL '10' MINUTE);
5) Durumsal toplamalar ve CEP
Anahtar: 'User _ id', 'device _ id', 'ödeme. account_id'.
Durum: veri tekilleştirme için kayan toplamlar/sayaçlar, oturumlar, bloom filtreleri.
CEP modelleri: yapılandırma (T penceresi başına <eşik, ≥N kez), cihaz anahtarı, RG yorgunluğu.
python if deposits.count(last=10MIN) >= 3 and deposits.sum(last=10MIN) > THRESH and all(d.amount < REPORTING_THRESHOLD):
emit_alert("AML_STRUCTURING", user_id, window_snapshot())
6) Tam olarak-Bir kez, sipariş ve idempotence
Veri yolu: En az bir kez + bölüm anahtarları yerel sipariş sağlar.
Idempotence: 'event _ id' + dedup durumu (TTL 24-72 h).
Lavabo: işlemsel taahhütler (2 fazlı) veya uppert/merge-idempotency.
Giden Kutusu/Gelen Kutusu: OLTP'den etki alanı olaylarının garantili yayınlanması.
7) Gerçek zamanlı zenginleştirme
Arama: Redis/Scylla (RG limitleri, KYC durumu, BIN ^ MCC, IP ^ Geo/ASN).
Asenkron çağrılar: yaptırımlar/zaman aşımları ve geri dönüş ("bilinmeyen") ile APP API.
FX/zaman dilimi: miktarların ve yerel piyasa zamanının normalleştirilmesi ('fx _ source', 'tz').
8) Hizmet ve gerçek zamanlı vitrinler
ClickHouse/Pinot/Druid: dakika/saniye ile toplamalar, materyalize görünümler.
Gold-stream: operasyonel tablolar GGR/RG/AML, ≤ gecikme için SLA 1-5 dakika.
API/GraphQL: gösterge panoları ve harici entegrasyonlar için düşük gecikme süresi.
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;
9) Gözlemlenebilirlik ve SLO
SLI/SLO (yer işaretleri):- P95 ingest - uyarı ≤ 2 s (kritik), ≤ 5 s (denge).
- T ≥ 99 penceresinin tamlığı. 5%.
- Şema hataları ≤ 0. 1%; 'Trace _ id' içeren olayların yüzdesi %98 ≥.
- Akış hizmeti kullanılabilirliği ≥ 99. 9%.
- Parti/konu gecikmeleri, meşgul zaman operatörleri, durum boyutu.
- Huni "sobytiye ^ pravilo ^ anahtarlar", "sıcak" anahtarların haritası, geç oran.
- Maliyet: Maliyet/GB, maliyet/sorgu, kontrol noktalarının/tekrarların maliyeti.
10) Gizlilik ve uyumluluk
PII minimizasyonu: ID takma adı, alan maskeleme, PAN/IBAN tokenizasyonu.
Veri ikametgahı: bölgesel boru hatları (EEA/İngiltere/BR), bireysel şifreleme anahtarları.
Yasal işlemler: Aşağı akış vitrinlerinde DSAR/RTBF, davalar/raporlar için Yasal Bekletme.
Denetim: erişim günlükleri, değişmeyen çözüm arşivleri.
11) Ekonomi ve verimlilik
Anahtarlar ve sharding: "Sıcak" tuşlardan kaçının (tuzlama/kompozit anahtar).
Durum: makul TTL, anlık görüntüler, RocksDB/arka uç durumunu ayarlama.
Ön toplama: Gürültülü akışlar için ön küçültme.
Örnekleme: Kritik olmayan metriklerde geçerlidir (işlemlerde/uyumlulukta değil).
Ters ibraz: temalar/işler, kotalar ve takım tahsisi için bütçeler.
12) DQ Akışı (Kalite)
Ingest-validation (şema, enums, boyut), dedup '(event_id, kaynak)'.
Akışta: bütünlük/dup-rate/late-ratio, pencere kontrolü (çift sayma yok).
Reaksiyon politikaları: kritik DLQ + uyarısı; Major/minor - etiket ve sonra açık.
yaml stream: payments rules:
- name: schema_valid type: schema severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: dedup_window type: unique keys: [event_id]
window_minutes: 1440
13) Erişim güvenliği ve serbest bırakma kontrolü
RBAC/ABAC: Konuları okumak, kuralları/modelleri değiştirmek için ayrı roller.
İkili kontrol: "2 anahtar" aracılığıyla kuralların ve modellerin kullanıma sunulması.
Kanarya/A/B: karanlık kural ve model çalışır, hassasiyet/hatırlama kontrolü.
Sırlar: KMS/CMK, düzenli rotasyon, günlüklerde sırların yasaklanması.
14) Süreçler ve RACI
R (Responsible): Akış Platformu (infra/releases), Domain Analytics (rules/features), MLOps (scoring).
A (Sorumlu): Etki alanına göre Veri/Risk/Uyumluluk Başkanı.
C (Consulted): DPO/Legal (PII/retention), SRE (SLO/Incidents), Mimarlık.
I (Bilgilendirilmiş): Ürün, Destek, Pazarlama, Finans.
15) Uygulama Yol Haritası
MVP (2-4 hafta):1. Kafka/Redpanda + iki kritik konu ('ödemeler', 'auth').
2. Filigran, veri tekilleştirme ve bir CEP kuralıyla (AML veya RG) flink işi.
3. ClickHouse/Pinot vitrin 1-5 dk, panolar gecikme/tamlık.
4. Olay kanalı (webhooks/Jira), temel SLO'lar ve uyarılar.
Faz 2 (4-8 hafta):- Çevrimiçi zenginleştirme (Redis/Scylla), Özellik Mağazası, asenkron aramalar.
- Kod olarak kural yönetimi, kanarya bültenleri, A/B
- Akış DQ, boru hatlarının bölgeselleştirilmesi, DSAR/RTBF prosedürleri.
- Çok bölgeli aktif-aktif, what-if tekrar simülatörü, eşiklerin otomatik kalibrasyonu.
- Full Gold-stream vitrinler (GGR/RG/AML), neredeyse gerçek zamanlı raporlama.
- Değer panoları, ters ibraz, DR egzersizleri.
16) Örnekler (parçalar)
Flink CEP - cihaz anahtarı:sql
MATCH_RECOGNIZE (
PARTITION BY user_id
ORDER BY event_time
MEASURES
FIRST(A.device_id) AS d1,
LAST(B.device_id) AS d2,
COUNT() AS cnt
PATTERN (A B+)
DEFINE
B AS B.device_id <> PREV(device_id) AND B.ip_asn <> PREV(ip_asn)
) MR
Kafka Akışları - idempotent filtre:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}
17) Satış öncesi kontrol listesi
- Sicildeki şemalar ve sözleşmeler, back-compat testleri yeşildir.
- Filigran/izin verilen gecikme, dedup ve DLQ dahil.
- Yapılandırılmış SLO ve uyarılar (lag/late/dup/state boyutu).
- Önbellekler ve zaman aşımları ile zenginleştirme, "bilinmeyen" geri dönüş.
- Kurallara/modellere RBAC/çift kontrol, tüm değişiklikler kaydedilir.
- Kurallar, vitrinler ve runbook belgeleri ve tekrar oynatma/geri alma.
18) Sık yapılan hatalar ve bunlardan nasıl kaçınılacağı
Olay zamanını göz ardı edin: filigranlar olmadan, metrikler "yüzer".
Veri tekilleştirme yok: yanlış uyarılar ve çift sayım.
Kısayol tuşları: partilerin bozulması - tuzlama/yeniden şekillendirme.
Sıcak yolda eşzamanlı ön uç API'leri: yalnızca async + önbellek.
Yönetilmeyen maliyet: ön toplamalar, TTL durumları, kotalar, maliyet panoları.
Simülatör eksikliği: "yeniden oynatma" olmadan kullanıma sunulanlar regresyonlara yol açar.
19) Sözlük (kısa)
CEP - Karmaşık Olay İşleme.
Filigran - olay zamanına göre pencere hazırlık sınırı.
İzin verilen Gecikme - geç olayların toleransı.
Stateful Operator - kaydedilmiş durumu olan bir operatör.
Özellik Mağazası - koordine edilmiş özellik sörfü (çevrimiçi/çevrimdışı).
20) Alt satır
Akış ve akış analitiği yönetilen bir sistemdir: sözleşmeler, pencereler ve filigranlar, durumsal mantık ve CEP, zenginleştirme ve gerçek zamanlı vitrinler, SLO ve gözlemlenebilirlik, gizlilik ve kontrol altındaki değer. Açıklanan uygulamaları takip ederek, platform güvenilir risk dedektörleri, operasyonel paneller ve öngörülebilir gecikme ve maliyetle kişiselleştirme alır.