Stream vs Analiza partii
1) Krótki dźwięk
Strumień - ciągłe przetwarzanie zdarzeń w sekundach: przeciwdziałanie oszustwom/AML, wyzwalacze RG, alerty SLA, panele operacyjne.
Partia - okresowa rekalkulacja z pełną odtwarzalnością: sprawozdawczość regulacyjna (GGR/NGR), dokumenty finansowe, zestawy danych ML.
Punkty orientacyjne: strumień p95 e2e 0. 5-5 s, partia D + 1 do 06:00 (zamek.) .
2) matryca wyboru (TL; DR)
Zasada 80/20: Wszystko, co nie wymaga reakcji <5 minut - w Batch; Reszta jest w Stream, z walidacją Batch Night.
3) Architektury
3. 1 Lambda
Strumień dla online + Partia dla konsolidacji. Plus: elastyczność. Minus: dwie logiki.
3. 2 Kappa
Wszystko jest jak strumienie; Partia = „powtórka” przez dziennik. Plus: pojedynczy kod. Minus: złożoność powtórzeń/kosztów.
3. 3 Lakehouse-Hybrid (zalecane)
Stream → online OLAP Marts (minuty) i brąz/srebro; Partia reassembluje złoto (D + 1) i publikuje raporty.
4) Dane i czas
Strumień
Okna: tumbling/hopping/session.
Znaki wodne: 2-5 min; późne dane są oznaczone i przyciemnione.
Statious: CEP, dedup, TTL.
Partia
Przyrosty/CDC: 'updated _ at', replikacja dziennika.
SCD I/II/III: historia atrybutów.
Migawki: dzienne/miesięczne warstwy dla „as-of”.
5) Wzory aplikacji w iGaming
AML/Antifraud: Strumień (prędkość/strukturyzacja) + Uzgodnienia partii i przypadki.
Odpowiedzialne gry: Kontrola strumieniowa limitów/samodzielnych wyłączeń; Rejestry raportowania partii.
Operacje/SRE: alerty strumieniowe SLA; Seria po analizie incydentów i trendów.
Produkt/Marketing: Personalizacja strumienia/Misje; Kohorty partii/LTV.
Finanse/raporty: Partia (Gold D + 1, WORM pakiety), Stream - panele operacyjne.
6) DQ, odtwarzalność, powtórka
Stream DQ: walidacja programów, dedup '(event_id, źródło)', kompletność okna, późny stosunek, wskaźnik dup; krytyczny DLQ →.
Seria DQ: unikalność/FK/zakres/czas, uzgodnienia z OLTP/dostawców; krytyczny → nieudane zadanie + raport.
- Strumień: tematy repliki według zakresu + transformacja deterministyczna.
- Partia: czasowe/logiczne wersje ('logic _ version') + Złote migawki.
7) Prywatność i miejsce zamieszkania
Strumień: pseudonimizacja, maskowanie online, rurociągi regionalne (EOG/UK/BR), terminy do zewnętrznych PII-lookups.
Partia: izolacja mapowania PII, RLS/CLS, DSAR/RTBF, Legal Hold, archiwum WORM.
8) Inżynieria kosztowa
Strumień: unikać „gorących” klawiszy (solenie), ograniczyć async wyszukiwania, stany TTL, preagregacja.
Partia: partycja/klastrowanie, kompresja małych plików, materializacja stabilnych agregatów, kwoty/okna startowe.
9) Przykłady
9. 1 Stream - Flink SQL (10-min prędkości depozytu)
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);
9. 2 Stream - CEP (kod pseudo AML)
python if count_deposits(10MIN) >= 3 and sum_deposits(10MIN) > THRESH \
and all(d. amount < REPORTING_LIMIT for d in window):
emit_alert("AML_STRUCTURING", user_id, snapshot())
9. 3 Partia - MERGE (srebrny przyrost)
sql
MERGE INTO silver. payments s
USING stage. delta_payments d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;
9. 4 Partia - Złoty GGR (D + 1)
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) event_date,
b. market, g. provider_id,
SUM(b. stake_base) stakes_eur,
SUM(p. amount_base) payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) ggr_eur
FROM silver. fact_bets b
LEFT JOIN silver. fact_payouts p
ON p. user_pseudo_id = b. user_pseudo_id
AND p. game_id = b. game_id
AND DATE(p. event_time) = DATE(b. event_time)
JOIN dim. games g ON g. game_id = b. game_id
GROUP BY 1,2,3;
10) Metryki i SLO
Strumień (punkty orientacyjne)
p95 ingest → alert ≤ 2-5 c kompletność окна ≥ 99. 5%
błędy schematu ≤ 0. 1%
współczynnik opóźnienia ≤ 1%
dostępność ≥ 99. 9%
Partia (punkty orientacyjne)
Złoto. codziennie jest gotowy do 06:00 zamek.
kompletność ≥ 99. 5%
okres ważności ≥ 99. 9%
Incydent MTTR DQ ≤ 24-48 godzin
11) Testy i wydania
Umowy/programy: testy konsumenckie; back-compat CI.
Strumień: zasady kanaryjskie, ciemny start, symulator powtórki.
Partia: suchy przebieg na próbkach, porównanie mierników, uzgadnianie.
12) Anty-wzory
Duplikat logiki: różne obliczenia strumienia i partii bez wyrównania formuły.
Synchroniczne zewnętrzne interfejsy API w gorącej ścieżce Stream bez cache/timeouts.
Pełne przeładowanie „na wszelki wypadek” zamiast przyrostów.
Brak znaków wodnych/późna polityka.
PII w warstwach analitycznych; brak CLS/RLS.
Złoto prezentuje, które „mutują” z mocą wsteczną.
13) Zalecana hybryda (playbook)
1. Stream-loop: ingest → autobus → Flink/Beam (znaki wodne, dedup, CEP) →
OLAP (ClickHouse/Pinot) dla paneli 1-5 min + brąz/srebro (dodatek).
2. Pętla wsadowa: przyrosty/CDC → Normalizacja srebra/SCD → Gold Daily Displays/Reports (WORM).
3. Dopasowanie: pojedyncza warstwa semantyczna metryk; nocne pojednanie strumieniowo-partyjne; rozbieżności> próg → bilety.
14) RACI
R (Responsible): Streaming Platform (Stream-info), Data Engineering (Batch Models), Domain Analytics (Metrics/Rules), MLOps (Features/Feature Store).
A (Odpowiedzialność): szef danych/CDO.
C (skonsultowany): Zgodność/Prawna/DPO, Finance (FX/GGR), Risk (RG/AML), SRE (SLO/стоимоста).
I (Poinformowany): BI/Produkt/Marketing/Operacje.
15) Plan działania
MVP (2-4 tygodnie):1. Kafka/Redpanda + 2 tematy krytyczne ('płatności', 'auth').
2. Zadanie Flink: znak wodny + dedup + 1 reguła CEP (AML lub RG).
3. OLAP prezentuje 1-5 min + deski rozdzielcze lag/late/dup.
4. Lakehouse Silver (ACID), pierwsze Złoto. ggr_daily (D + 1 do 06:00).
Faza 2 (4-8 tygodni):- Przyrosty/CDC według domeny, SCD II, warstwa mierników semantycznych.
- Przesyłanie strumieniowe DQ i nocne połączenie strumieniowo-partyjne.
- Regionalizacja (EOG/UK/BR), DSAR/RTBF, Legal Hold.
- Symulator powtórki, kanarkowe/A-B wydania reguł/metryki.
- tablice rozdzielcze kosztów i kwoty; składowanie wielopoziomowe; Nauki DR.
- Automatyczna generacja dokumentacji prezentacji/mierników i rodowodu.
16) Lista kontrolna wdrażania
- Systemy/umowy w rejestrze; testy porównania pleców są zielone.
- Strumień: znaki wodne/dozwolona latalność, дедра, DLQ; Panele OLAP w prod.
- Partia: przyrosty/CDC, SCD II, złoto D + 1 z eksportem WORM.
- Pojedyncza warstwa semantyczna metryk; Nocne pojednanie strumieniowo-partyjne.
- Płyty DQ dotyczące świeżości/kompletności/ważności; alert lag/late/dup.
- RBAC/ABAC, szyfrowanie, miejsce zamieszkania; DSAR/RTBF/Legal Hold.
- Koszt kontrolowany (koszt/GB, koszt/zapytanie, rozmiar państwa, powtórzenia są przydzielone do kwot).
17) Sedno sprawy
Stream i Batch nie są konkurentami, ale dwa biegi tego samego napędu. Strumień daje reakcję "tu i teraz", Seria - sprawdzalna prawda "rano. "Hybrydowe podejście Lakehouse, pojedyncza warstwa metryk i dyscyplina DQ/lineage pozwalają na budowanie szybkich, odtwarzalnych i zgodnych z wymogami konturów analitycznych, które są optymalne w SLA i kosztach.