Analiză în timp real
1) Scopul și valoarea afacerii
Analiza în timp real (RTA) oferă reacții în câteva secunde, nu ore:- AML/Antifraudă: structurarea depozitelor, atacuri de viteză, tranzacții de risc.
- Joc Responsabil (RG): depășirea limitelor, tipare de risc, auto-excludere.
- SRE/Operațiuni: detectarea precoce a degradării SLA, explozii de eroare, supraîncălzirea clusterului.
- Produs și marketing: declanșatoare de personalizare, misiuni/misiuni, segmentare în timp real.
- Raportare operațională: aproape în timp real GGR/NGR, tablouri de bord ale sălilor/furnizorilor.
Obiective: p95 end-to-end 0. 5-5 с, completitudine ≥ 99. 5%, disponibilitate ≥ 99. 9%.
2) Arhitectura de referință
1. Ingera/Edge - '/events/lot '(HTTP/2/3), gRPC, OTel Collector; validarea schemelor, anti-duplicate, geo-rutare.
2. Event bus - Kafka/Redpanda (participare prin 'user _ id/chiriaș/piață', DLQ, retenție 3-7 zile).
3. Procesare flux - Flink/Spark structurat Streaming/fascicul: operatori de stat, CEP, filigrane, permise întârziere, deadup.
4. Îmbogățire online - Redis/Scylla/ClickHouse lookups (limite RG, KYC, BIN→MCC, IP→Geo/ASN), apeluri asincrone cu timeout și rezervă.
5. Servire - ClickHouse/Pinot/Druid (vitrine operaționale 1-5 minute), Feature Store (semne online), webhooks/ticketing/SOAR.
6. Lakehouse - bronz/argint/aur pentru consolidare pe termen lung, reluare și reconciliere.
7. Observabilitate - măsurători ale conductelor, urmărire (OTel), jurnale, linii și tablouri de bord.
3) Semnale și taxonomie
Plăți: "plată. depozit/retragere/chargeback ".
Gaming: 'joc. pariu/plată ", sesiuni.
Autentificare și comportament: „autentificare/eșec”, comutator de dispozitiv, viteză.
Operare: latență, rată de eroare, repornire vatră, saturație.
Conformitate: screening de sancțiuni, steaguri RG, evenimente DSAR.
Fiecare tip are un proprietar de domeniu, o schemă, un SLO de prospețime și o politică de date târzie.
4) Ferestre, filigrane și date târzii
Ferestre: tumbling (fix), țopăit, sesiune.
Filigran: limită „cunoaștere după timp” (de obicei 2-5 min).
Evenimente întârziate: problemă suplimentară de ajustări, pavilion „târziu = adevărat”, DLQ cu o întârziere puternică.
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 și agregări statale
Cheie: 'user _ id',' device _ id', 'payment. account_id'.
Stare: contoare/sume glisante, filtre de înflorire pentru eliminarea duplicatelor, TTL.
Modele CEP: structurare (<prag, ori ≥N, pe fereastră T), dispozitiv-switch, oboseală RG.
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) Exact-o dată, ordine și idempotence
Cel puțin o dată de livrare în autobuz + dedup prin 'event _ id' la procesare (TTL 24-72 h).
Comandă: partiționarea după chei (ordinea locală este garantată).
Chiuvetă: comite tranzacționale (2 faze) sau upsert/îmbinare idempotent.
Outbox/Inbox: publicarea tranzactionala a evenimentelor de domeniu de la OLTP.
7) Îmbogățirea online și Feature Store
Lookup: limite RG, statusuri KYC, BIN→MCC, IP→Geo/ASN, piețe/taxe, FX la momentul evenimentului.
Apeluri asincrone: sancțiuni/APP API cu timeout; pe eroare - 'necunoscut' + retray/cache.
Feature Store: negociere online/offline; o codebase de transformare.
8) storefronturi în timp real și navigare
ClickHouse/Pinot/Druid: agregate al doilea/minut, vizualizări materializate, SLA pentru o întârziere de 1-5 min.
API/GraphQL: latență scăzută pentru tablouri de bord/widget-uri.
Alerte: webhooks/Jira/SOAR cu context îmbogățit (trace_id, ultimele evenimente).
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) Metrics, SLI/SLO și tablouri de bord
SLI/SLO recomandate:- p95 ingest→alert ≤ 2 s (reguli critice), ≤ 5 s (altele).
- Integralitatea ferestrei T ≥ 99. 5%; Valabilitatea schemei ≥ 99. 9%; Acoperirea urmelor ≥ 98%.
- Disponibilitatea serviciului Stream ≥ 99. 9%; raport tardiv ≤ 1%.
- Lag pe partide/subiecte; timpul ocupat al operatorilor; dimensiunea de stat.
- Pâlnie „sobytiye→pravilo→keys”, precizie/rechemare după domeniu.
- Cardul de căldură întârziere/completitudine; hartă cheie fierbinte.
10) Streaming DQ (Calitate)
Ingera-validări: schema/enums/size-limite, anti-duplicate.
Pe flux: completitudine/dup- rate/late-ratio, corectitudine fereastră (fără dublă numărare).
Politici de reacție: → critică DLQ + pager; major/minor → tagging + report.
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) Confidențialitate, securitate și rezidență
Minimizare PII: aliasing ID, mascare câmp sensibil, tokenizare PAN/IBAN.
Rezidență de date: conducte regionale (SEE/UK/BR), chei KMS individuale.
DSAR/RTBF: editare selectivă pe storefronturi din aval; Legal Hold pentru cazuri/rapoarte.
Audit: jurnalele neschimbabile ale modificărilor de acces/regulă, logarea eliberării.
12) Economie și productivitate
Sharding/chei: evitați cheile „fierbinți” (sărare/compozit), echilibrul partidelor.
Stare: TTL, instantanee compacte, reglare backend RocksDB/stare.
Pre-agregări: reducerea în primele etape pentru teme zgomotoase.
Eșantionare: numai pentru valori non-critice (nu tranzacții/conformitate).
Chargeback: Bugete tematice/de locuri de muncă, reluarea cotelor și cereri grele.
13) Procese și RACI
R: Streaming Platform (info/releases), Domain Analytics (reguli/caracteristici), MLOps (scoring/Feature Store).
R: Șef de date/Risc/Conformitate pe domenii.
C: DPO/Legal (PII/retenție), SRE (SLO/incidente), Arhitectură.
I: Produs, Suport, Marketing, Finanțe.
14) Foaia de parcurs privind implementarea
MVP (2-4 săptămâni):1. Kafka/Redpanda + 2 subiecte critice (de exemplu, „plăți”, „auth”).
2. Lucrare Flink cu filigran, eliminarea duplicatelor și regula 1 CEP (AML sau RG).
3. Vitrină operațională la panourile de bord ClickHouse/Pinot (1-5 min), lag/completeness.
4. Canal incident (webhooks/Jira), SLO-uri de bază și alerte.
Faza 2 (4-8 săptămâni):- Îmbogățire online (Redis/Scylla), Feature Store, căutări asincrone.
- Gestionarea regulilor ca cod, canar/A-B, streaming DQ.
- Regionalizarea transportoarelor, procedurile DSAR/RTBF, Legal Hold pentru cazuri.
- Multi-regiune activ-activ, reluare & ce-dacă simulator, auto-prag de calibrare.
- Storefronturi gold-stream (GGR/RG/AML), raportare aproape în timp real.
- Cost-tablouri de bord, chargeback, DR-exerciții.
15) Exemple (fragmente)
Flink CEP - comutator de dispozitiv: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 - filtru idempotent:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}
16) Lista de verificare pre-vânzare
- Scheme/contracte în Registry, testele back-compat sunt verzi.
- Incluse filigran/permise lateness, dedup, și DLQ.
- Configurat SLO și alerte (lag/late/dup/stat dimensiune).
- Îmbogățirea cu cache și timeout; rezervă „necunoscut”.
- RBAC/dual-control pe reguli/modele; modificați jurnalul activat.
- Documentarea regulilor/vitrinele magazinelor; runbook 'și reluare/rollback.
17) Greșeli frecvente și cum să le evitați
Ignorați timpul de eveniment: fără filigrane, măsurătorile „float”.
Fără deduplicare: alerte false, numărare dublă.
Taste fierbinți: distorsionarea petrecerilor → sărarea/resharding.
API-uri front-end sincrone în calea fierbinte: numai async + cache.
Costuri fără administrare: preagregări, state TTL, cote, monitorizarea costurilor.
Fără simulator: role fără reluare → regresie.
18) Linia de jos
Analiza în timp real nu este „BI rapid”, ci un circuit gestionat cu contracte, logică statală, CEP, filigrane, îmbogățire online și SLO-uri stricte. Urmând aceste practici, platforma primește semnale și decizii exacte în câteva secunde, menținând conformitatea, scenariile produselor și reziliența operațională la un cost controlat.