GH GambleHub

Wzbogacanie danych

1) Cel i wartość biznesowa

Wzbogacenie przekształca „surowe” wydarzenia w użyteczne fakty, dodając kontekst i znaki:
  • Finansowanie/sprawozdawczość: znormalizowanie kwot, wiążące dla rynków/stawek podatkowych, obliczanie GGR/NGR.
  • Zgodność/AML/RG: wyniki ryzyka, sankcje/tagi PEP, limity RG, charakterystyka behawioralna.
  • Marketing/produkt: źródła ruchu, segmenty, misje/zadania, personalizacja.
  • SRE/operacje: geo/ASN dla ruchu, typ klienta/urządzenia, flagi funkcji i wydania.

Kluczowym rezultatem jest poprawa dokładności modeli, jakości sprawozdań i szybkości podejmowania decyzji.


2) Źródła wzbogacania (przykład katalog)

Referencje/katalogi: gry, dostawcy, rynki/jurysdykcje, waluty, tabele podatkowe, kalendarz wakacyjny.
KYC/KYB/RG: poziomy weryfikacji, statusy, samodzielne wyłączenia, limity, grupy wiekowe.
AML/sankcje/PEP: badania przesiewowe, wykazy, poziomy ryzyka.
Sieci i urządzenia: IP → geo/ASN, urządzenie/OS/przeglądarka, odcisk palca urządzenia.
Dostawcy płatności (PSP): tabele BIN, metody, MCC, znaczniki ryzyka.
FX/czas: kursy wymiany na dzień zdarzenia, lokalne strefy czasowe/DST.
Treść i marketing: źródła/kampanie/UTM, filie, segmenty.
Modele i heurystyka: wstępnie wyszkolone punktowanie, wbudowanie, kategoryczne odwzorowanie.


3) Rodzaje wzbogacania

Lookup-joint: mapowanie punktu za pomocą klucza (game_id, BIN, ip_range, user_pseudo_id).
Dołączyć wymiar: przymocowanie wymiarów (wym.) do faktów.
Pola pochodne: kolumny obliczeniowe (amount_base, local_time, tax_rate).
Agregacje/prędkość: liczniki dla okien (N stawki/min, ilość depozytów/godzinę).
Funkcje ryzyka/zachowania: „czas od ostatniego zdarzenia”, udział w portfelu, nocna aktywność.
Geo/ASN/Device: kod kraju, region, operator, typ urządzenia/przeglądarki.
Mapowania semantyczne: dostawca/klasyfikacja gier, klastry graczy.

Funkcje ML do modelowania online/offline (sklep z funkcjami)


4) Gdzie wzbogacić: Batch vs Stream

Strumień (w czasie rzeczywistym): antyfraud, wyzwalacze RG, wpisy SRE - p95 opóźnień ≤ 2-5 s; szukać buforów (Redis/Scylla), asynchroniczne żądania do dostawców z terminami.
Partia (mikro-partia/dziennie): Prezentacje złota (GGR/RG/AML), pojednania, raporty - stabilność i kompletność są ważniejsze niż opóźnienie.
Hybryda: szybka funkcja online + nocne ponowne wzbogacanie (pojednanie/dokładność).


5) Odniesienie architektoniczne

1. Brąz - surowe zdarzenia (tylko dodatek).
2. Srebro (czyste/zgodne) - normalizacja, klucze, primary lookup'i (fx, geo, dim.).
3. Warstwa wzbogacająca - rozszerzone właściwości, kruszywa okienne, etykiety ryzyka.
4. Funkcja Sklep - charakterystyczny rejestr (spójność online/offline).
5. Złoto - prezentacje dla BI/regulatora/modeli; niezmienne artefakty.
6. Usługi - API/GraphQL, zgłoszony eksport, wpisy w czasie rzeczywistym.

Komponenty: Kafka/Redpanda, Flink/Iskra/Wiązka, Redis/Scylla (wyszukiwanie), ClickHouse/Pinot (czytanie na żywo), Lakehouse (Delta/Iceberg/Hudi).


6) Umowy i systemy

Schemat pierwszy: 'event _ time', 'schema _ version', klucze stabilne (user_pseudo_id, game_id, transaction_id).
Znaki wzbogacania: "wzbogacenie. wersja „,” wzbogacenie. źródła ',' fx _ source ',' geo _ source ',' model _ version '.
Wersioning: nowe funkcje są dodawane jako nieważne; zmiany łamania - poprzez '/v2'i podwójne wejście.


7) Przykłady wzbogacania (SQL/pseudokoda)

7. Normalizacja 1 FX i czas lokalny

sql
SELECT p.transaction_id,
p.amount_orig,
p.currency,
r.rate   AS fx_rate_used,
p.amount_orig r.rate AS amount_base,
p.event_time,
convert_timezone(m.tz, 'UTC', p.event_time) AS local_time,
r.fx_source
FROM bronze.payment_events p
JOIN dim.fx_rates r
ON r.date = DATE(p.event_time) AND r.ccy_from = p.currency AND r.ccy_to = 'EUR'
JOIN dim.markets m ON m.code = p.market;

7. 2 Geo/ASN według IP (pseudokoda)

python geo = geo_db.lookup(ip)
asn = asn_db.lookup(ip)
record["geo_country"] = geo.country record["asn"] = asn.number record["enrichment"]["geo_source"] = "mmdb:2025-10-01"

7. 3 Oznaki szybkości depozytu (strumień)

sql
SELECT user_pseudo_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS deposits_sum_10m
FROM silver.payments
GROUP BY user_pseudo_id, TUMBLE(event_time, INTERVAL '10' MINUTE);

7. 4 Interfejs z limitami RG

sql
SELECT b., r.daily_deposit_limit, r.self_exclusion
FROM silver.bets b
LEFT JOIN dim.rg_limits r USING (user_pseudo_id);

8) Jakość wzbogacania (DQ)

Zasady minimalne:
  • FX: 'fx _ rate _ used', nie NULL, 'fx _ source' z białej listy, obliczona 'amount _ base ≥ 0'.
  • Geo/ASN: udział pomyślnych wyszukiwań ≥ 98% (według rynku), „kraj” w katalogu.
  • Etykiety RG/AML: „valid _ from/valid _ to” (SCD II) nie przecinają się; brak „dziur” w historii.
  • Agregaty/okna: poprawność okien (brak podwójnego liczenia), kompletność ≥ 99. 5%.
  • Wersje modelu: 'model _ version' obecny, funkcja sterowania dryfem.
Przykład reguł YAML:
yaml table: enriched.payments rules:
- name: fx_present type: not_null column: fx_rate_used severity: critical
- name: country_known type: in_set column: geo_country set_ref: ref.countries severity: major
- name: rg_scd_valid type: scd_validity columns: [valid_from, valid_to]
severity: major

9) Prywatność i zgodność

Minimalizacja PII: wzbogacona o pseudo-ID, prawdziwe identyfikatory - w osobnej pętli.
Lokalizacja geograficzna i rezydencja: routing według regionu (EEA/UK/BR), oddzielne klucze szyfrujące.
DSAR/RTBF: wzbogacone projekcje muszą wspierać „ukrywanie „/redakcję; zachować podstawę prawną dla wyjątków.
Blokada prawna: zamrożenie usunięć artefaktów/spraw raportowanych.


10) Obserwowalność i rodowód

Linage: z surowego zdarzenia → wyszukiwanie/agregaty → wyświetlacze/modele; naprawić wersje źródłowe ('fx _ source', 'geo _ source', 'bin _ source').
SLI/SLO: świeżość p95 (Silver) ≤ 15 мий; udane wyszukiwanie geograficzne ≥ 98%; Odsetek rekordów z ukończonymi kluczowymi właściwościami ≥ 99% opóźnień wzbogaconych strumieniem p95 ≤ 2-5 s.
Deski rozdzielcze: kompletność mapy ciepła według źródeł, mapa wersji książek/modeli referencyjnych, monitor „drogich” połączeń, dryf znaków.


11) Koszt i wydajność

Bufory/materializacja: częste wyszukiwanie "i w Redis/Scylla; okresowe migawki.
Znaki zwarte: kruszywa sklepowe (nie wykazy „surowe”); używać formatów Parkiet/kolumna.
Podział: według daty/rynku/najemcy; klastrowanie przez często filtrowane pola.
Częstotliwość adaptacyjna: ciężkie, wzbogacone miejsca pracy - w nocy; czas rzeczywisty - tylko krytyczny.
Obciążenie zwrotne: koszt/zapytanie i księgowanie kosztów/GB według zespołu/funkcji.


12) Wzory i anty-wzory

Wzory:
  • Wyszukiwanie wymiarów + SCD II dla RG/KYC/dostawców.
  • Async Wzbogacenie z czasem i wycofaniem (etykieta „nieznana” + powtórzenie).
  • Funkcja Sklep z negocjacjami online/offline i testami powtarzalności.
  • Kod reguły wzbogacania (mapy progowe/kategoryczne).
Anty-wzory:
  • Sztywne wiązanie z zewnętrznymi interfejsami API w gorącej ścieżce bez pamięci podręcznej.
  • Nieznakowane wersje źródłowe ('fx _ source', 'geo _ source').
  • Denormalizacja „wszystko ze wszystkim” w Silver (eksplozje kosztów/złożoności).
  • Wprowadzenie PII do warstw analitycznych.

13) Procesy i RACI

R (Odpowiedzialny): Inżynieria Danych (rurociągi wzbogacone/strumień), Właściciele domen (semantyka funkcji), MLOps (Sklep z funkcjami).
A (Odpowiedzialny): Szef Danych/Główny Inspektor Danych.
C (Konsulat): Zgodność/Prawna/DPO, Finance (FX/налова), Risk (RG/AML), SRE.
I (Poinformowany): BI/Produkt/Marketing/Operacje.


14) Plan działania w zakresie wdrażania

MVP (2-4 tygodnie):

1. Katalog źródeł wzbogacania (fx, geo, rynki, RG/KYC).

2. Normalizacja srebra + podstawowe wyszukiwanie "i (fx/geo/dim.) .

3. Pierwsze agregaty to prędkość (depozyty/stawki) i wzbogacone. v1 tabele.

4. Deska rozdzielcza kompletność/świeżość, wersje źródłowe.

Faza 2 (4-8 tygodni):
  • Podłączenie sankcji/PEP/BCL, tabele PSP BIN, odcisk palca urządzenia.
  • Funkcja Sklep (podstawowe funkcje) + pamięć podręczna online, rzeczywiste wzbogacenie Flink.
  • Zasady DQ dla wzbogaconych warstw, linii i symulacji suchych.
Faza 3 (8-12 tygodni):
  • Personalizacja (misje/zadania) i detektory RG/AML online.
  • Zarządzanie wartością (kontyngenty, materializacja, Z-order), wielobranżowe.
  • Automatyczna generacja dokumentacji funkcji i katalogu.

15) Lista kontrolna jakości przed sprzedażą

  • Spójne klucze i schematy, podpisane wersje źródłowe.
  • Zasady DQ dotyczące fx/geo/RG/sankcje/okna; wpisy i SLO.
  • Caches/timeouts i fallbacks for external lookups.
  • Deski rozdzielcze i kosztowe/wydajnościowe.
  • Procedury DSAR/RTBF/Legal Hold dla wzbogaconych tabel.
  • Dokumentacja charakterystyki (właściciel, wzory, SLO, wpływ).

16) Częste błędy i jak ich uniknąć

Niewykorzystane wersje odniesienia/modelu: Zawsze naprawić '_ source' i 'model _ version'.
Obliczanie fx „z mocą wsteczną”: zastosować szybkość w czasie zdarzenia; przechowywać źródło FX.
Mieszanie PII: Tokenizuj i izoluj mapy.
Podwójne liczenie w jednostkach: sprawdź okna i dedup.
Synchroniczne połączenia zewnętrzne bez pamięci podręcznej: wprowadź async + cache/retrai.
Nie ma powtarzalności funkcji: pojedynczy kod transformacji online/offline, testy zgodności.


17) Słownik (krótki)

Wyszukiwanie/Wymiar dołączyć - dołączyć księgę odniesienia do faktu przez klucz.
Funkcja Sklep - charakterystyka rejestru i porcji dla ML.
SCD II - historyzacja pomiarów z przedziałami ważności.
FX - kursy wymiany walut i normalizacja kwot.
ASN - autonomiczny system sieciowy; przydatne do zwalczania nadużyć finansowych i geoanalizy.


18) Najważniejsze

Wzbogacanie to dyscyplina przekształcania wydarzeń w wiedzę: spójne klucze i schematy, kontrolowane wyszukiwanie i agregaty, wersjonowane źródła, domyślna prywatność, DQ i obserwowalność. Wykonując opisane wzory, otrzymasz odtwarzalne, ekonomiczne i zgodne z wymogami prezentacje i znaki gotowe do raportowania, personalizacji i wykrywaczy ryzyka w czasie rzeczywistym.

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.