GH GambleHub

Arhitectura fluxului de date

1) Scop și principii

Obiective: furnizarea de date corecte, în timp util și conforme pentru analiză, raportare, antifraudă, personalizare și ML.

Principii:
  • Date ca produs: proprietari clari, contracte, SLO-uri și versioning.
  • Schema-first: sunt necesare sisteme; evoluţia după reguli.
  • Privacy-by-Design: PII minimizare, aliasing, control acces.
  • Observație în mod implicit: urme, metrici, descendență, profile de calitate.
  • Conștient de costuri: stocare pe niveluri, eșantionare evenimente zgomotoase, compresie.

2) Peisaj sursă și eveniment

Tranzacțional: depozite/retrageri, pariuri/plăți, bonusuri, chargeback.
Utilizator: sesiuni, clicuri, conversii, limite RG, stări KYC.
Operare: jurnale de aplicații, măsurători de performanță, alerte.
Furnizori: PSP/KYC/sancțiuni/studiouri de jocuri (agregatoare).
Referință: cataloage de jocuri, directoare de țară/valută, tarife/taxe.

Tastarea evenimentului (exemplu):
json
{
"event_time":"2025-10-31T19:20:11Z",
"event_type":"payment. deposit",
"schema_version":"1. 3. 0",
"user":{"id":"U-123","country":"EE","age_band":"18-24"},
"payment":{"amount":200. 00,"currency":"EUR","method":"card","psp_ref":"PSP-222"},
"ctx":{"ip":"198. 51. 100. 10","session_id":"s-2233","trace_id":"f4c2..."}
}

3) Arhitectură de referință la nivel înalt

1. Strat de ingerare

Gateway-uri (HTTP/gRPC), conectori CDC (de la OLTP), cozi/autobuze (Kafka/Redpanda), colectoare de telemetrie.
Validarea, normalizarea, ediția PII la intrare, executarea contractului.

2. Strat de streaming

Stream jabs (Flink/Spark structurat Streaming/fascicul) cu eliminare a duplicatelor, filigran, agregate statale.
Fan-out pentru stocare și servicii online (fichestore, anti-fraudă).

3. Strat de lot

Orchestrație (Airflow/Dagster), descărcări incrementale, backtest-uri și retroprocese, tipuri SCD.

4. Depozitare (Lakehouse)

Bronz: evenimente brute (numai adăugați, imuabile).
Argint: curățate, mese conforme cu calitate și deduplicare.
Aur: vitrine/marte pentru cazuri specifice (BI/regulator/ML).
Formate de masă cu ACID (Delta/Iceberg/Hudi), stratificare caldă/caldă/rece.

5. Servire și acces

BI/SQL (Trino/Presto/DuckDB), strat semantic (strat metric), API/GraphQL, Feature Store pentru consistență online/offline.

6. Guvernanță și siguranță

Director/linie, reguli DQ, motor de acces politic (RBAC/ABAC), mascare/tokenizare, arhiva WORM pentru rapoarte.

4) Contracte și scheme

Contracte de date: OpenAPI/AsyncAPI/JSON Schema/Avro.
Evoluție: versiuni semantice; modificări compatibile înapoi - adăugarea de câmpuri nullable; rupere - numai cu „/v2 ”și dublă intrare pentru perioada de migrație.
Registre: Schema Registry, director de domenii (Plăți, Gameplay, Marketing).

5) Modele de integrare

CDC (Change Data Capture): de la OLTP la bus (Debezium), domeniu cheie de partiționare.
Outbox/Inbox: livrarea garantată a evenimentelor logice de domeniu.
Exact-o dată/eficient-o dată: tranzacţii în stat, chiuveta idempotent, tastele de eliminare a duplicatelor.
Date și filigrane târzii: gestionarea evenimentelor târzii; ferestre cu întârziere permisă.
Reprocesare: conducte idempotente, călătorii în timp, remedieri instantanee.

6) Modelul Lakehouse: bronz/argint/aur

Bronz (brut):
  • Timp (event_date) și părți de piață (jurisdicție).
  • Numai adăugarea; depozitarea sarcinii utile originale pentru criminalistică.
Argint (curat):
  • Tipuri normalizate, cărți de referință, deduplicare prin „(event_id, event_time)”.
  • Verificarea FK, standardizarea valutară/fusul orar, îmbogățirea.
Aur (servi):
  • Vitrine denormalizate (GGR, RG scoring, LTV, tabele de cohortă).
  • SLA pentru actualizarea, agregate pentru BI și raportare.

7) Calitatea datelor

Reguli: validare circuit, intervale, unicitate, completitudine, integritate referențială.
Profilare: distribuție, cardinalitate, „derivă” de semne.
Monitorizare: întârziere conductă p50/p95, drop-rate, bugetul de eroare.
Politica de degradare: rezervă automată (ultimul instantaneu), alerte și t-teste pentru metrici.

Exemplu de contract DQ (YAML):
yaml table: silver. payments rules:
- name: amount_positive type: range column: amount min: 0. 01
- name: currency_valid type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: unique_tx type: unique columns: [transaction_id]
slo:
freshness_minutes: 15 completeness_percent: 99. 5

8) Confidențialitate și conformitate

Minimizarea și mascarea PII: stocați pseudo-ID, mapări separate de căutare.
Regionalizare: găleți/cataloage geo-locale (SEE/UK/BR), „rezidență de date”.
Operațiuni juridice: DSAR/RTBF (proiecții calculabile și modificări selective), Legal Hold, arhive de rapoarte neschimbabile.
Logare acces: audit citește tabele „sensibile”, break-glass și acces JIT.

9) Observabilitate și management

Linege-Automat urme dependențele de la sursa la storefront.
Valori conducte: debit, decalaj, rata de eșec, cost/GB, cost/interogare.
Trace (OTel): 'trace _ id' din aplicații este aruncat în evenimente, → vom construi o cale de cerere end-to-end.
Alerte: bugete SLO, anomalii de prospețime/volum/cardinalitate.

10) Model de acces și securitate

Categorii de date: public/intern/confidențial/restricționat.
Politici: securitate la nivel de rând/coloană; mascare dinamică (PAN/IBAN/email).
Managementul cheilor: KMS/CMK, criptare în repaus/în tranzit, rotație.
Segregarea sarcinilor: roluri separate de prod/analist/admin/referent.

11) Plasă de date și abordarea produsului

Домены: Plăți, Gameplay, Marketing, Risc, Conformitate.
Produs de date: proprietar, SLA prospețime, dicționar de câmp, teste, versiuni, metrica de consum.
Contracte între domenii: teste versionate, compatibile, bazate pe consum.

12) Fluxuri Fichestor și ML

Registrul caracteristicilor: descriere caracteristică, surse, transformări, SLO.
Consistență online/offline: un cod de transformare, întârziere materializare online ≤ 200-500 ms.
Monitorizarea driftului: PSI/KS, alerte automate și rollback-uri de model, control PII.
Jurnal de experimente: metadate, versiuni, reproductibilitate, hărți model.

13) Finmodel și optimizarea costurilor

Partiționarea și Z-ordine/Cluster de predicate frecvente.
Depozitare la rece și TTL pentru tabele neutilizate, VACUUM.
Vizualizări materializate numai pentru modele stabile de interogare.
Cote și bugete pentru locuri de muncă grele; chargeback de echipa.

14) Topologie regională și multi-chiriaș

Multi-regiune activă: replicarea temelor și a tabelelor, perimetre independente de conducte.
Failover/DR: obiective RPO/RTO, instantanee metadate orchestrator, verificare recuperare.
Multi-chirie: director/cheie/izolarea cotei, marcarea tenant_id.

15) Procese și RACI (pe scurt)

R: Platforma de date (ingera, stocare, orchestrare), Ingineria datelor (transformare).
R: Șeful departamentului de date/Responsabil de date.
C: Conformitate/Legal/DPO, Arhitectură, SRE.
I: BI/Analytics, Produs, Marketing, Finanțe.

16) SLO/SLI pentru fluxuri

prospețime: p95 întârziere Argint ≤ 15 min, Aur (zilnic) gata ≤ 06:00 blocare. timp.
Integralitate: ≥ 99. 5% din evenimente pe fereastră T.
Valabilitate: rata de eroare a verificărilor DQ <0. 5% din volum.
Disponibilitate: ≥ 99. 9% pentru API BI/Feature.

17) Tabelul și șabloane de partiționare

sql
-- Bronze: Deposit events
CREATE TABLE bronze. payment_deposits (
event_time TIMESTAMP,
event_id STRING,
user_pseudo_id STRING,
amount DECIMAL(18,2),
currency STRING,
psp_ref STRING,
payload VARIANT
)
PARTITION BY DATE(event_time)
CLUSTER BY (currency);

-- Silver: normalized model
CREATE TABLE silver. payments AS
SELECT event_id,
CAST(event_time AS TIMESTAMP) AS ts,
user_pseudo_id,
amount,
currency,
psp_ref
FROM bronze. payment_deposits
QUALIFY ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY ts) = 1;

18) Orchestrație și DevX

Infra-as-Code: depozite de conducte, teste, recenzii, GitOps.
Contracte de date CI: lintere de circuit, teste DQ înainte de implementare.
Cadru backfill: procese retro sigure cu R/W și constrângeri de idempotență.
Cataloage și șabloane: generatoare de cookie-cutter, cele mai bune practici.

19) Foaia de parcurs privind implementarea

MVP (4-6 săptămâni):

1. Event bus + ingera de 2-3 surse cheie (OLTP CDC, API gateway).

2. Lakehouse Bronze/Silver, format ACID, catalog și reguli DQ de bază.

3. 1-2 Cazuri de aur (zilnic GGR și pâlnie de conversie).

4. Valori de lag/integralitate, descendență de bază, RBAC și mascare PII.

Faza 2 (6-12 săptămâni):
  • Unități de streaming (p95 latență ≤ 5 min), Feature Store, RG/AML vitrine.
  • Strat semantic de valori, SLA pentru raportare; cost-tablouri de bord.
  • Regionalizare (SEE/UK), proceduri DSAR/RTBF, Legal Hold pentru artefacte.
Faza 3 (12 + săptămâni):
  • Data Mesh: domenii de produse, contracte bazate pe consumatori.
  • Operațiuni ML cu monitorizare drift, auto-negociere online/offline.
  • Simularea automată a modificărilor schemei (analiza impactului) și „ce-dacă” în funcție de cost.

20) Greșeli frecvente și cum să le evitați

Sarcini utile brute fără scheme: implementați schema întâi, înregistrați și validați CI.
Fără eliminare a duplicatelor - chei de evenimente și sincronizări idempotente în Silver.
Se amestecă PII cu analytics - mapări separate și câmpuri de mască.
Aur fără proprietar: atribuiți proprietarului, SLO și măsurători de consum.
Nu există o strategie de reprocesare: călătoria în timp, versiunea logică, controlul „dublei numărări”.
Valoare imposibil de gestionat: loturi, compresie, TTL, observabilitatea valorii.

21) Glosar (scurt)

CDC - Modificări de captură de la OLTP.
Outbox - publicăm tranzacțional evenimente de domeniu.
Filigran - evaluarea integralității fluxului pentru ferestre.
Lakehouse - lac de date + tabele ACID.
Produs de date - unitate de produse de date cu proprietar și SLO.
Feature Store - distribuția consecventă a caracteristicilor ML.

22) Linia de jos

Arhitectura fluxului de date este un sistem ușor de gestionat de aranjamente: contracte clare, observabilitate, securitate și costuri sub control. Urmând tiparele descrise (schema-first, bronz/silver/gold, CDC + Outbox, DQ și lineage, confidențialitate-by-design), platforma furnizează în mod fiabil afaceri, conformitate și ML cu date de calitate cu SLO-uri previzibile și costul de proprietate ușor de înțeles.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Telegram
@Gamble_GC
Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.