GH GambleHub

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)

KryteriumStrumieńPartia
Reakcje SLAsekundy/minutygodziny/dni
Kompletnośćwysokie, ale późne poprawki są możliwebardzo wysoki, kontrolowany D + 1
Odtwarzalność „od”trudniej (powtórka)łatwiejsze (podróże w czasie/migawki)
Koszt jednostkowydroższy sposób onlinetańsze na objętość
Typowe zadaniaWpisy AML/RG, SRE, prezentacje w czasie rzeczywistymraporty, uzgodnienia, ML off-line
Historyzacja (SCD)restrykcyjniew pełni
Regulacja/WORMza pośrednictwem złota recenzjinatywnie (Gold/D + 1)

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.

Odtwarzalność:
  • 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.
Faza 3 (8-12 tygodni):
  • 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.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.