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.
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ă.
- Tipuri normalizate, cărți de referință, deduplicare prin „(event_id, event_time)”.
- Verificarea FK, standardizarea valutară/fusul orar, îmbogățirea.
- 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.
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.
- 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.