Real vaxt analitikası
1) Təyinat və biznes dəyəri
Real Time Analytics (RTA) saatlarda deyil, saniyələrdə reaksiyaları təmin edir:- AML/Antifrod: depozitlərin strukturlaşdırılması, velocity hücumları, risk əməliyyatları.
- Responsible Gaming (RG): limitləri aşmaq, risk nümunələri, özünü istisna etmək.
- SRE/Əməliyyatlar: SLA deqradasiyalarının erkən aşkarlanması, səhv partlayışları, həddindən artıq qızma.
- Məhsul və marketinq: personalizasiya tetikleyiciləri, missiyalar/axtarışlar, real vaxt seqmentasiyası.
- Əməliyyat hesabatı: near-real-time GGR/NGR, zalların/provayderlərin daşbordları.
Hədəf göstəriciləri: p95 end-to-end 0. 5–5 с, completeness ≥ 99. 5%, mövcudluğu ≥ 99. 9%.
2) Etalon arxitekturası
1. Ingest/Edge — `/events/batch` (HTTP/2/3), gRPC, OTel Collector; sxemlərin validasiyası, anti-dubli, geo-marşrutlaşdırma.
2. Hadisə şinası - Kafka/Redpanda ('user _ id/tenant/market', DLQ, retenshn 3-7 gün).
3. Stream emal - Flink/Spark Structured Streaming/Beam: stateful operatorları, CEP, watermarks, allowed lateness, dedup.
4. Online zənginləşdirmə - Redis/Scylla/ClickHouse lookups (RG-limitləri, KYC, BIN → MCC, IP → Geo/ASN), taymaut və fallback ilə asinxron zənginləşdirmə.
5. Servinq - ClickHouse/Pinot/Druid (1-5 dəqiqə əməliyyat vitrinləri), Feature Store (onlayn əlamətlər), webhooks/ticeting/SOAR.
6. Lakehouse - Bronze/Silver/Gold uzunmüddətli konsolidasiya, replay və uyğunlaşma üçün.
7. Müşahidə - payplayn metrikası, treysinq (OTel), loqlar, lineage və cost-daşbordlar.
3) Siqnallar və taksonomiya
Ödənişlər: 'payment. deposit/withdraw/chargeback`.
Oyun: 'game. bet/payout ', sessiyalar.
Kimlik və davranış: 'auth. login/failure`, device-switch, velocity.
Əməliyyat: latency, error-rate, podların yenidən başlaması, saturation.
Komplayens: sanksiya skrininqi, RG bayraqları, DSAR hadisələri.
Hər bir növün sahibi (domain owner), sxemi, SLO təravəti və late data siyasəti var.
4) Pəncərələr, watermarks və late data
Pəncərələr: tumbling (fiks.) , hopping (üst-üstə), session (fəaliyyətsizliyə görə).
Watermark: sərhəd «vaxt bilik» (adətən 2-5 dəqiqə).
Gecikmiş hadisələr: əlavə düzəlişlər, bayraq 'late = true', DLQ güclü gecikmə ilə.
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) CEP və stateful-aqreqasiya
Açar: 'user _ id', 'device _ id', 'payment. account_id`.
Hal: sürüşmə sayğacları/məbləğləri, dedup üçün bloom filtrləri, TTL.
CEP nümunələri: structuring (<eşik, ≥ N dəfə, T pəncərə), device-switch, RG-fatigue.
python if cnt_deposits(last=10MIN) >= 3 and sum_deposits(last=10MIN) > THRESH and all(d.amount < REPORTING_THRESHOLD):
emit_alert("AML_STRUCTURING", user_id, snapshot())
6) Exactly-Once, nizam və idempotentlik
At-least-once çatdırılma şin + dedup 'event _ id' emal (TTL 24-72 saat).
Sifariş: açarlar üzrə partizanlaşdırma (yerli prosedura zəmanət verilir).
Sink: əməliyyat kommitləri (2-faza) və ya idempotent upsert/merge.
Outbox/Inbox: ALTP-dən domen hadisələrinin tranzaksiya nəşri.
7) Online zənginləşdirmə və Feature Store
Lookup: RG-limitləri, KYC-statuslar, BIN → MCC, IP → Geo/ASN, bazarlar/vergilər, hadisə zamanı FX.
Asenxron çağırışlar: vaxtlarla sanksiya/RER API; səhv olduqda - 'unknown' + retrai/cache.
Feature Store: online/offline koordinasiya; bir kod transformasiya bazası.
8) Real-time vitrinlər və xidmət
ClickHouse/Pinot/Druid: saniyə/dəqiqə aqreqatları, materialized views, 1-5 dəqiqə gecikmə üçün SLA.
API/GraphQL: dashboard/widget üçün aşağı gecikmə.
Alertlər: zənginləşdirilmiş kontekstlə/Jira/SOAR (trace_id, last events).
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) Metriklər, SLI/SLO və Daşbordlar
Tövsiyə olunan SLI/SLO:- p95 ingest → alert ≤ 2 s (kritik qaydalar), ≤ 5 s (digər).
- Completeness pəncərə T ≥ 99. 5%; Schema validity ≥ 99. 9%; Trace coverage ≥ 98%.
- Axın xidmətinin mövcudluğu ≥ 99. 9%; late-ratio ≤ 1%.
- Partiyalar/topiklər üzrə laq; busy time operatorları; dövlət ölçüsü.
- Huni «hadisə → qayda → case», domenlər üzrə precision/recall.
- istilik kartı late/completeness; «qaynar» açar kart.
10) DQ axını (keyfiyyət)
Ingest-validasiya: schema/enums/size-limits, anti-dubley.
Axında: completeness/dup-rate/late-ratio, pəncərələrin düzgünlüyü (ikiqat hesablama olmadan).
Reaksiya siyasəti: critical → DLQ + pager; major/minor → etiketləmə + hesabat.
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
11) Gizlilik, təhlükəsizlik və rezidentlik
PII-minimallaşdırma: ID təxəllüsü, həssas sahələrin maskalanması, PAN/IBAN tokenləşdirilməsi.
Data residency: regional konveyerlər (EEA/UK/BR), fərdi KMS açarları.
DSAR/RTBF: downstream vitrinlərdə seçici redaktələr; Cases/hesabatlar üçün Legal Hold.
Audit: dəyişməz giriş/qaydaların dəyişdirilməsi, buraxılışların jurnallaşdırılması.
12) İqtisadiyyat və performans
Sharding/açarları: «isti» açarlardan (salting/composite), partiyalar balansından çəkinin.
State: TTL, compact snapshots, tuning RocksDB/state backend.
Ön aqreqasiya: səs-küylü mövzular üçün erkən mərhələlərdə reduce.
Sampling: yalnız kritik olmayan metriklər üçün (heç bir əməliyyat/komplayens).
Chargeback: mövzular/jobs üçün büdcələr, replay kvotaları və ağır sorğular.
13) Proseslər və RACI
R: Streaming Platform (infra/relizlər), Domain Analytics (qaydalar/fayllar), MLOps (scoring/Feature Store).
A: Domenlər üzrə Head of Data/Risk/Compliance.
C: DPO/Legal (PII/retention), SRE (SLO/insidentlər), Memarlıq.
I: Məhsul, Dəstək, Marketinq, Maliyyə.
14) Tətbiqi yol xəritəsi
MVP (2-4 həftə):1. Kafka/Redpanda + 2 tənqidi topika (məsələn, 'payments', 'auth').
2. Flink cob watermark, dedup və 1 CEP qaydası (AML və ya RG) ilə.
3. ClickHouse/Pinot (1-5 dəq) əməliyyat vitrin, dashboard lag/completeness.
4. Hadisə kanalı (vebhuk/Jira), əsas SLO və alertlər.
Faza 2 (4-8 həftə):- Online zənginləşdirmə (Redis/Scylla), Feature Store, asenxron lookups.
- Kod, canary/A-B, axın DQ kimi qaydaları idarə edin.
- konveyerlərin regionlaşdırılması, DSAR/RTBF prosedurları, hallar üçün qanuni Hold.
- Multi-region active-active, «replay & what-if» simulyatoru, astanaların avtomatik kalibrlənməsi.
- Gold-stream vitrin (GGR/RG/AML), near-real-time hesabat.
- Cost-dashboard, chargeback, DR-təlimlər.
15) Nümunələr (fraqmentlər)
Flink CEP — device-switch: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 Streams - idempotent filtr:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}
16) Satış öncəsi yoxlama siyahısı
- Registry sxemləri/müqavilələr, back-compat testlər yaşıl.
- watermark/allowed lateness, dedup və DLQ daxildir.
- SLO və alertlər (lag/late/dup/state size).
- Caches və Taymaut ilə zənginləşdirilməsi; fallback «unknown».
- RBAC/dual-control qaydaları/modelləri; dəyişiklik jurnalı daxil edilmişdir.
- Qaydaların/vitrinlərin sənədləşdirilməsi; runbook 'və replay/geri.
17) Tez-tez səhvlər və onlardan necə qaçmaq olar
Ignor hadisə-vaxt: watermarks metrik olmadan «üzmək».
No dedupe: saxta alert, ikiqat uçot.
Qaynar açarlar: partiyalar → salting/resharding.
İsti yolda sinxron xarici API: yalnız async + cache.
İdarə olunmayan dəyər: əvvəlcədən aqreqasiya, TTL vəziyyəti, kvotalar, cost-monitorinq.
Simulyatorun olmaması: «replay» → reqressiya olmadan çıxışlar.
18) Yekun
Real vaxt analitikası «sürətli BI» deyil, müqavilələr, stateful-məntiq, CEP, watermarks, onlayn zənginləşdirmə və ciddi SLO ilə idarə olunan dövrədir. Bu təcrübələrə əməl edərək, platforma komplayens, məhsul ssenariləri və nəzarət olunan dəyərlə əməliyyat sabitliyini qoruyaraq saniyələr ərzində dəqiq siqnallar və həllər alır.