GH GambleHub

Data Lake i scentralizowane przechowywanie

(Sekcja: Technologia i infrastruktura)

Krótkie podsumowanie

Data Lake to podstawowa warstwa scentralizowanego przechowywania surowców i skonsolidowanych zbiorów danych. Dla iGaming, akceptuje zakłady/płatności/zdarzenia dziennika gier, przesyłania partnerskie, CDC z OLTP i daje je analityce, anty-oszustwa, CRM i BI. Nowoczesna praktyka - Lakehouse: open column formats + ACID table layer + single directory + transactions/data versions. Kluczem do sukcesu jest dyscyplina programów i podziału, zarządzanie kosztami, bezpieczeństwo PII oraz ścisła kultura operacyjna (DQ, lineage, DR).

Rola jeziora danych w platformie iGaming

Pojedynczy punkt prawdy dla analityki: przechowywanie surowych i oczyszczonych danych niezależnie od źródła i formatu.
Elastyczność: wsparcie dla serii i strumieniowania (CDC/złącza, strumienie imprez).
Ewolucja: od surowego brązu do zgodnych przypadków biznesowych Silver i Gold.
Podział odpowiedzialności: usługi produkcyjne pisać do opony/staging, analityka/ML zużywa z warstw jeziora.

Modele architektoniczne: Jezioro vs Lakehouse

Data Lake (S3/ADLS/GCS + Parquet/ORC): schemat na czytanie, tanie przechowywanie, elastyczne formaty.
Lakehouse (Delta/Iceberg/Hudi over Parquet): transakcje ACID, upsert/merge, podróże w czasie, pliki kompaktowe, próżnia, indeksowanie/klastrowanie.
Praktyka: Lakehouse jest korzystne dla iGaming jako głównej warstwy, a zewnętrzne OLAP (ClickHouse/Query/Snowflake/Pinot) jako prezentacje i silniki specjalne.

Model warstwy medalionu

Brąz (Raw/Staging): pliki surowe ze źródeł (CDC, log dumps, affiliate CSV, webhooks). Minimalna walidacja, „tak jak jest”.
Srebro (Zgodne): czyszczenie/dedup, normalizacja walut/stref czasowych, wpisywanie, pomiary SCD, spójne klucze.
Złoto (Marts/Serving): agregaty dla GGR/NGR/LTV/Retention, zmaterializowane sklepy dla BI/CRM/anti-fraud.
TTL: agresywny na brązie, umiarkowany na srebrze, długoterminowy na złocie.

Formaty i warstwy stołowe

Kolumna: Parkiet (de facto standard), ORC.

Otwarte formaty tabeli (ACID):
  • Delta Lake - transakcje, „MERGE”, podróże w czasie, optymalizacja/próżnia, Z-order.
  • Apache Iceberg - tabele z manifestami/migawkami, ukryte partycjonowanie, 'MERGE/DELETE/UPDATE', podróże w czasie.
  • Apache Hudi - kopiowanie/pisanie/łączenie-on-read, upsert-optimizacja, ekstrakty przyrostowe.
  • Dokonaj wyboru w oparciu o ekosystem i wymagania dla upsert/streaming/elastyczność ewolucji systemów.

Katalog i przerzut

Pojedynczy katalog (katalog Hive Metastore/Unity/Klej/platforma) przechowuje schematy, strony, wersje, prawa.
Wymagania: spójność transakcyjna z warstwą stołu, wsparcie dla wielu silników (Spark, Trino/Presto, Flink, dbt), audyt/linia.

Programy i ewolucja

Schemat umowy: ustalić obowiązkowe pola, rodzaje, semantyka; źródła wersji ('schema _ version').
Ewolucja: dodawanie pól fakultatywnych, zakaz przełamywania zmian bez migracji; automatyczne systemy kontroli w rurociągach.
Segmentacja PII: pola wrażliwe - na oddzielne kolumny/tabele z szyfrowaniem i oddzielnymi prawami.

Podział danych i ułożenie

Data/godzina - klucz bazowy dla wydarzeń; pola opcjonalne: "kraj", "produkt", "najemca _ id'.
W stylu ula мута: 's3 ://lake/bronze/payments/source = pspA/dt = 2025-11-05/hour = 13/part-0001. parkiet '.
Klastrowanie/sortowanie: Z-order/Sortuj klucze według często filtrowanych pól (player_id, kraj).
Rozmiar pliku: Cel dla 128-1024 MB; unikać „małych plików” (patrz poniżej).
Wirtualne kolumny (Iceberg/Delta) do ukrytego partycjonowania.

Małe pliki i problem z zagęszczeniem

Źródła strumień małe kawałki → degradacja skanów i metadanych.
Rozwiązanie: okresowa optymalizacja/zagęszczanie (koalesce), harmonogram zadań zagęszczania, partyjny mikro-pakiet na spożycie, „AutoOptimize” (jeśli jest dostępny).
Zasada scalania-on-read vs copy-on-write jest równowagą między opóźnieniem zapisu a szybkością odczytu.

Injest: partia, strumień, CDC

CDC z OLTP (Debezium/złącza) → Brąz (minuta świeżości).
Strumień (Kafka/Flink/Spark Structured Streaming) → Srebro/Złoto stopniowo (upsert/fuzja).
Partia (raporty partnerskie/CSV/JSON) - poprzez „odbiorniki” z manifestami, kontrolę duplikatów przez checksum.
Idempotencja: klucze (idempotency_key), dedup by (key, ts), „znaki wodne” dla późniejszych rekordów.

Jakość danych (DQ) i rodowód

Kontrole DQ: kompletność, wyjątkowość kluczy, zakresy, integralność odniesienia (listy krajów/walut), zasady prowadzenia działalności (GGR ≥ 0).
Liniowanie: wykres zależności od raportu do źródła, wersja kodu modelu i migawka tabeli.
Sterowanie schematem: automatyczne testy pleców/przednich kompat, które blokują zmiany „łamania”.
Pliki do pobrania audytu: kto/kiedy/ile, odrzucone partie, przekaźniki.

Obsługa i dostęp

Silniki SQL: iskra/trino/presto do doraźnych i transformacji; dbt dla modeli ELT.
W czasie rzeczywistym/w czasie zbliżonym do rzeczywistego: Pinot/Druid/ClickHouse jako sklepy; Lakehouse jest źródłem przez zlew przyrostowy.
Udostępnianie danych: udostępnianie tabel/migawek zewnętrznym poleceniom bez kopii (jeśli obsługiwany jest przez format).

Bezpieczeństwo, PII i wielopoziomowe

Szyfrowanie: odpoczynek (KMS) i tranzyt (TLS).
IAM/RBAC/ABAC: role na poziomie katalogu/tabeli/kolumny/wiersza (maskowanie, polityka dynamiczna).
Segmentacja według regionu (lokalizacja UE/Turcja/LatAm): izolacja wiader i puli obliczeniowe.
Wielopoziomowość: obszar nazw/katalogi i prefiksy ścieżek, filtry według 'lokator _ id', opcjonalnie - zasady rzędu.
Audyt dostępu: dzienniki odczytu/zmiany metadanych, dzienniki retencji i niewymiarowe.

Zarządzanie kosztami

Klasy pamięci masowej: gorący (często czytelny) w klasie standardowej, archiwum - w klasach zimnych/lodowcowych z zasadami TTL.
Partytura/klastry zmniejszyć skany → mniej niż $ $.
Zmaterializowane sklepy dla drogich raportów; Pamięć podręczna wyników BI.
Kompresja i „poprawny rozmiar pliku” - mniej metadanych i I/O.
Kwoty i budżetowanie: limity klastrów obliczeniowych/miejsc pracy, raporty kosztów zbioru danych/zespołu.
Usuwanie śmieci: 'VACUUM/REWRITE' w formatach tabeli, TTL Bronze.

DR i odtwarzalność

Wersioning stołu w czasie podróży i migawki katalogowe.
Replikacja międzyregionalna wiader i metadanych.
PITR: przechowywanie dzienników transakcji tabeli (Delta/Iceberg/Hudi) i dzienników rurociągów.
Dzień gry: regularne ćwiczenia odzyskiwania i przełączanie regionów.

Obserwowalność i SLO

Świeżość SLO: brąz ≤ 5 min, srebro ≤ 15-30 min, złoto ≤ 60 min (przykład).
Mierniki: objętość/liczba plików, średni rozmiar pliku parkietu, czas skanowania, udział pominiętych partii, częstotliwość zagęszczania, koszt/data, błędy DQ, późne dane.
Alerty: mały wzrost plików, wzrost kosztów, degradacja p95/p99, naruszenie DQ/schematu, strumień-niebieski lag.

Nazewnictwo konwencji i ścieżek (szablon)


s3://<lake>/<layer>/<domain>/<dataset>/
source=<sys>/      # для Bronze dt=YYYY-MM-DD/
hour=HH/
country=XX/

Nazwy zbiorów danych: 'bets _ raw', 'payments _ cdc',' players _ silver ',' mart _ ggr _ daily '.
Kolumny metadanych: 'ingest _ ts',' source ',' schema _ version ',' trace _ id', 'lokator _ id'.

Przykłady (uogólnione)

1) Góra lodowa: Srebrny stół z ukrytą stroną według daty

sql
CREATE TABLE silver. bets (
bet_id    BIGINT,
player_id   BIGINT,
country    STRING,
stake     DECIMAL(18,2),
win      DECIMAL(18,2),
event_ts   TIMESTAMP,
ingest_ts   TIMESTAMP,
schema_version INT
)
PARTITIONED BY (days(event_ts))
TBLPROPERTIES ('format-version'='2');

2) Delta: przyrostowa przewaga z CDC

sql
MERGE INTO silver. players t
USING bronze. players_cdc s
ON t. player_id = s. player_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

3) Polityka TTL dla brązu (pomysł)


bronze/: keep 30 days silver/: keep 365 days (non-PII), 90 days (PII masked)
gold/marts/: keep 2–3 years (aggregated)

Lista kontrolna implementacji

1. Wybierz format tabeli (Delta/Iceberg/Hudi) i katalog; zbieżność z silnikami (Spark/Trino/Flink/dbt).
2. Zdefiniuj warstwy medalionu, zasady TTL i odpowiedzialność zespołu.
3. Przechwytywanie kontraktów schematów, kontrola ewolucji, segmentacja PII i szyfrowanie.
4. Układ projektu: części, klawisze sortowania, rozmiar pliku docelowego; umożliwia zagęszczenie.
5. Konfiguracja ingestu (CDC/stream/batch) z idempotencją i deduplikacją.
6. Włącz DQ/lineage, katalog metadanych i audyt.
7. Zdefiniuj świeżość/koszt SLO, deski rozdzielcze mierników i wpisów.
8. Zorganizuj DR: migawki/replikacja/odzyskiwanie + regularne ćwiczenia.
9. Ujednolicenie nazw i ścieżek, kolumn meta ('ingest _ ts',' source ',' schema _ version ').
10. Przynieś prezentacje Gold i obsługę w czasie rzeczywistym do odpowiednich silników OLAP/RT.

Anty-wzory

Jeden wspólny „worek” bez warstw i TTL → chaos i eksplozja kosztów.
Tylko przegrody czasowe z wyłączeniem kraju/produktu → ciężkie skany.
Wątki, które tworzą tysiące małych plików/godzinę bez zagęszczania.
Brak kontroli nad systemami i DQ → „łamanie” zmian i nieufność do raportów.
Mieszanie PII z gablotami Gold bez maskowania/separacji praw.
Hardcode praw dostępu na poziomie wiader zamiast katalogu i polityki tabelarycznej.

Podsumowanie

Modern Data Lake for iGaming to Lakehouse z otwartym formatem stołu, jednym katalogiem i modelem medalionu. Dyscyplina schematów/stron, zagęszczenie przeciwko małym plikom, DQ/rodowód, bezpieczeństwo PII i higiena kosztów przekształcają warstwę jeziora w zrównoważony fundament: tani do przechowywania, szybki do odczytu, przewidywalny w SLO i gotowy do DR. Takie wagi fundamentowe do szczytów turniejowych i obsługuje zarówno analizy partii i sklepy w czasie zbliżonym do rzeczywistego.

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.