Przetwarzanie sygnału w czasie rzeczywistym
1) Cel i wartość biznesowa
Strumień w czasie rzeczywistym jest potrzebny, aby odpowiedzieć „tutaj i teraz”:- Antifraud/AML: złoża strukturyzujące, „mulling”, ataki prędkości.
- Responsible Gaming (RG): przekroczenie limitów, wzorce ryzyka zachowania.
- Ryzyko/zgodność: rejestracja online/kontrola sankcji transakcyjnych.
- Personalizacja: wyzwalacze bonusowe/misyjne, kampanie reaktywne.
- Operacje/SRE: degradacja SLA, skurcze błędów, anomalie metryk.
Główne cele: niskie opóźnienia (p95 0. 5-5 s), wysoka kompletność (≥ 99. 5%), odporność na przepięcia.
2) Taksonomia sygnału
Transakcja: "płatność. wpłata/wypłata/obciążenie zwrotne ".
Gra: 'gra. bet/payout ',' gra. session_start/stop'.
Uwierzytelnianie: 'auth. login/failure', device change/geo.
Zachowanie: szybkość zakładów, wykładniczy wzrost ilości, aktywność nocna.
Pokoje operacyjne: 'api. opóźnienie ',' błąd. szybkość ', „burza” paleniska ponownie rozpoczyna.
Każdy typ ma schemat, właściciela domeny, krytyczność, SLO i zasady późnych danych.
3) Architektura odniesienia pętli w czasie rzeczywistym
1. Ingest and bus: HTTP/gRPC → Edge → Kafka/Redpanda (partycjonowanie przez 'user _ id/lokator').
2. Streaming-двивой: Flink/Spark Structured Streaming/Beam; stanowcze oświadczenia, CEP.
3. Wzbogacanie online: tabele wyszukiwania (Redis/Scylla/ClickHouse Read-Only), cache dostawcy (sankcje/CUS).
- Tematy alertu/cue (zarządzanie sprawami, SOAR).
- Fichestor online (modele punktacji).
- Prezentacje ze złotym strumieniem (deski rozdzielcze).
- „Ciepłe” przechowywanie do szybkiej analizy (ClickHouse/Pinot/Druid).
- 5. Archiwum/kryminalistyka: niezmienne składanie w jeziorze (parkiet, podróż w czasie).
- 6. Obserwowalność: śledzenie/metryka/kłody + rodowód.
4) Okna, znaki wodne i „późne dane”
Widoki okien:- Bumbling: stałe okna (np. 1 min) - kruszywa proste.
- Chodzenie: nakładanie się (np. krok 30 s, okno 2 min) - „gładkie” mierniki.
- Sesja: brak aktywności - analiza behawioralna.
- Znaki wodne: granica „znajomości czasu” dla czasu zdarzeń; pozwalają na opóźnienie (np. 2 min).
- Spóźnione strategie: dodatkowa kwestia korekt, postscript „late = true”, DLQ.
5) Stanowcze oświadczenia i deduplikowanie
Klucz: przez 'user _ id',' payment. account_id', 'device _ id'.
Status: addery, liczniki przesuwne, filtry kwitnienia dla idempotencji.
Dedup: przechowywanie „(event_id, seen_at)” w stanie/kv; TTL = 24-72 godziny.
Dokładnie raz: zlew transakcyjny'i (2-fazowy), operacje idempotent upsert.
6) Wzbogacanie strumienia
Radości wyszukiwania: limity RG, wskaźnik ryzyka użytkownika, poziom KYC, geo/ASN.
Połączenia asynchroniczne: rejestr sankcji/dostawcy środków zwalczania nadużyć finansowych (async I/O, timeouts i fallback).
Normalizacja waluty/strefa czasowa: ujednolicenie do UTC i waluty bazowej; naprawić 'fx _ source'.
7) CEP: wykrywanie złożonych wzorów
Przykłady zasad:- Strukturyzacja: depozyt ≥ 3 przez 10 minut, każdy
X. - Urządzenie-switch: 3 różne urządzenia w 15 minut + zmiana IP/ASN.
- Zmęczenie RG: całkowite zakłady na 1 godzinę> limit + utrata ≥ Y.
- Ops-storm: opóźnienie p95> 2 × podstawa, 5xx> 3% w oknie 5-min.
CEP jest wygodnie wyrażony w bibliotekach Flink CEP/SQL lub szablonach zdarzeń.
8) Funkcje i modele online
Rurociągi funkcyjne: liczniki, prędkość-mierniki, „czas od ostatniego wydarzenia”, share-of-portfel.
Spójność online/offline: jedna baza kodowa transformacji; testy przejściowe.
Punktacja: modele światła (logit/GBDT) synchronicznie; ciężkie - asynchronicznie przez kolejkę.
Sterowanie dryfem: PSI/KS i wpisy; „dark launches” dla nowych modeli.
9) Gwarancje dostawy i procedura
Przynajmniej raz w oponie + idempotencja w recepcji.
Partytura klucza zapewnia lokalne zamówienie.
Retries & backpressure: przekładnie wykładnicze z jitterem, automatyczna kontrola ciśnienia.
10) SLO/SLI (zalecane)
11) Obserwowalność konturu w czasie rzeczywistym
Mierniki rurociągu: przepustowość, opóźnienie na przegrodę, czas zajęty, czas trwania punktu kontrolnego.
Jakość sygnału: kompletność, szybkość powielania, późny stosunek.
Deski rozdzielcze: mapa ciepła lagów według tematu, lejek alarmowy (sobytiye → pravilo → klawisze), mapa gorących kluczy.
Śledzenie: skojarzyć alert z zdarzeniami inicjującymi (trace_id).
12) Bezpieczeństwo i prywatność
Minimalizacja PII: tokenizacja identyfikatorów, maskowanie pól wrażliwych.
Georezydencja: przenośniki regionalne (EEA/UK/BR).
Audyt: niezmienne dzienniki decyzji (kto, co, dlaczego), Legal Hold dla spraw.
Dostęp: RBAC do reguł/modeli, podwójna kontrola na kopnięciach.
13) Koszt i wydajność
Klucze gorące: redystrybucja (solenie kluczy), klucze kompozytowe.
Warunek: rozsądny TTL, przyrostowa materializacja, strojenie RocksDB.
Okna: optymalny rozmiar i dozwolone opóźnienie; warstwy wstępnego zagregowania strumieni „hałaśliwych”.
Kontrola wyrywkowa: na przepływach innych niż krytyczne i na poziomie metrycznym (nie na transakcjach/zgodności).
14) Przykłady (uproszczone)
Kołnierz SQL - złoża strukturalne (okno 10-min, krok 1 min):sql
CREATE VIEW deposits AS
SELECT user_id, amount, ts
FROM kafka_deposits
MATCH_RECOGNIZE (
PARTITION BY user_id
ORDER BY ts
MEASURES
FIRST(A. ts) AS start_ts,
SUM(A. amount) AS total_amt,
COUNT() AS cnt
ONE ROW PER MATCH
AFTER MATCH SKIP PAST LAST ROW
PATTERN (A{3,})
WITHIN INTERVAL '10' MINUTE
) MR
WHERE total_amt > 500 AND cnt >= 3;
Kod pseudo anty-prędkości według oferty:
python key = event. user_id window = sliding(minutes=5, step=30) # hopping window count = state. counter(key, window)
sum_amt = state. sum(key, window)
if count > 30 or sum_amt > THRESH:
emit_alert("RG_VELOCITY", key, snapshot(state))
Kafka Streams event_id:
java if (!kvStore.putIfAbsent(event. getId(), now())) {
forward(event); // unseen -> process
}
15) Procesy i RACI
R (Responsible): Streaming Platform (info, status, wydania), Domain Analytics (zasady/funkcje).
A (Odpowiedzialność): szef danych/ryzyka/zgodności ze swoimi dziedzinami.
C (Konsultacja): DPO/Legal (PII/retencja), SRE (SLO/Incydenty), Architektura.
I (Poinformowany): Produkt/Wsparcie/Marketing.
16) Plan działania w zakresie wdrażania
MVP (2-4 tygodnie):1. 2-3 sygnały krytyczne (np. "płatność. depozyt ',' auth. logowanie, gra. zakład ").
2. Kafka + Flink, podstawowy odpływ i znak wodny; jedna zasada CEP w odniesieniu do zwalczania nadużyć finansowych i jedna w odniesieniu do RG.
3. ClickHouse/Pinot dla operacyjnych sklepów; deski rozdzielcze opóźnienie/kompletność.
4. Kanał incydentu (webhook/Jira) i ręczny triage.
Faza 2 (4-8 tygodni):- Fichestor online, modele światła punktowego; asynchroniczne przeglądanie (sankcje/CCL).
- Zarządzanie regułami jako kod, rolki kanaryjskie, reguły A/B.
- Regionalizacja i kontrole PII, Hold prawny dla spraw.
- Katalog sygnału, automatyczna generacja dokumentacji, powtórka i symulator co-jeśli.
- Automatyczna kalibracja progów (Bayesian/quantile), precyzja/recall metrics online.
- Ćwiczenia DR, wielobranżowe modele aktywnego obciążenia zwrotnego.
17) Lista kontrolna jakości przed sprzedażą
- Programy i umowy, zatwierdzenie po połknięciu.
- Skonfigurowane Windows, znaki wodne, dozwolone opóźnienie + DLQ.
- Dedup i idempotent sink'i.
- Mierniki wielkości LGD/przepustowości/stanu, wpisy SLO.
- Bezpieczeństwo: RBAC w zakresie zasad/modeli, maskowanie PII.
- Dokumentacja: właściciel, SLO, przykłady, mapy zależności.
- Procedury rollback i przycisk frieze.
18) Częste błędy i jak ich uniknąć
Ignoruj czas zdarzeń: użyj znaków wodnych, w przeciwnym razie mierniki będą „slajdów”.
Brak deduplikacji - duplikaty spowoduje fałszywe wpisy → typ idempotencji.
Gorące klucze: zniekształcenie stron → solenie/odtworzenie.
Okna zbyt twarde: utrata opóźnienia → dozwolone opóźnienia + emisje korekcyjne.
Mieszanie PII: Oddzielna tokenizacja i przepływ analityczny.
Brak symulatora: Zasady testowania „powtórki” przed uruchomieniem.
19) Słownik (krótki)
CEP - Kompleksowe przetwarzanie zdarzeń, wykrywanie wzorów.
Znak wodny - próg czasowy gotowości okna.
Dozwolone Lateness - przyjęcie późnych wydarzeń.
Statious Operator jest uporczywym operatorem.
Sklep funkcyjny - sklep z charakterystyką online/offline dla ML.
20) Sedno sprawy
Przetwarzanie sygnału w czasie rzeczywistym to kontrolowany rurociąg z przezroczystymi obwodami, oknami i znakami wodnymi, statyczną logiką, internetowym wzbogaceniem i surowymi SLO. Stosując się do tych praktyk, otrzymujesz szybkie i niezawodne wykrywacze ryzyka, trwałe uruchamiacze personalizacji i deski rozdzielcze, które skalują się słabo i zgodnie.